...

Identificazione dei Modelli e Controllo Ottimo

by user

on
Category: Documents
42

views

Report

Comments

Transcript

Identificazione dei Modelli e Controllo Ottimo
Identificazione dei Modelli e
Controllo Ottimo
Anno Accademico 2011-2012
Copyright © 2012
Pugliese Carratelli Giovanni
Salvati Angelo
Tufano Angelo
Viscuso Cesare
Indice
1 Metodi numerici per Ottimizzazione Statica
3
1.1
Definizioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Algoritmo numerico . . . . . . . . . . . . . . . . . . . . . . .
7
1.3
Metodi di discesa (Line Search) . . . . . . . . . . . . . . . . .
7
1.4
Steepest Descent Method . . . . . . . . . . . . . . . . . . . . 10
1.5
1.6
1.4.1
Passi dell’algoritmo
1.4.2
Interpretazione nello spazio . . . . . . . . . . . . . . . 11
1.4.3
Limiti dell’Algoritmo . . . . . . . . . . . . . . . . . . . 11
Metodo di Newton . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.1
Vantaggi . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.2
Svantaggi . . . . . . . . . . . . . . . . . . . . . . . . . 13
Metodi di Quasi Newton . . . . . . . . . . . . . . . . . . . . . 13
1.6.1
1.7
1.8
. . . . . . . . . . . . . . . . . . . 10
Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 14
Minimizzazione Vincolata . . . . . . . . . . . . . . . . . . . . 15
1.7.1
Metodo della Penalitá Esterna (Exterior Penalty) . . . 15
1.7.2
Metodo della Barriera . . . . . . . . . . . . . . . . . . 17
Optimization Toolbox di Matlab . . . . . . . . . . . . . . . . 19
1.8.1
Minimizzazione non vincolata . . . . . . . . . . . . . . 19
1.8.2
Minimizzazione Vincolata . . . . . . . . . . . . . . . . 19
1.8.3
Altri comandi . . . . . . . . . . . . . . . . . . . . . . . 19
INDICE
II
2 Problemi di Minimizzazione Vincolata
21
2.1
Metodo Variazionale . . . . . . . . . . . . . . . . . . . . . . . 21
2.2
Problemi di Controllo Ottimo T.D. . . . . . . . . . . . . . . . 22
2.3
Problema di Controllo Ottimo T.C. . . . . . . . . . . . . . . . 34
2.4
2.5
2.3.1
Principio del massimo di Pontryagin . . . . . . . . . . 36
2.3.2
Principio del Massimo con T Libero . . . . . . . . . . 37
2.3.3
Problema di Controllo Ottimo a Tempo Minimo . . . 38
2.3.4
Controllo Bang Bang . . . . . . . . . . . . . . . . . . . 38
Problema LQR T.D. . . . . . . . . . . . . . . . . . . . . . . . 42
2.4.1
Soluzione su orizzonte finito: DRE . . . . . . . . . . . 43
2.4.2
Soluzione su orizzonte infinito: ARE . . . . . . . . . . 44
Problema LQR T.C. . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.1
Soluzione su orizzonte finito: CRE . . . . . . . . . . . 48
2.5.2
Soluzione su orizzonte infinito . . . . . . . . . . . . . . 49
2.6
Metodi diretti . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.7
Controllo MPC . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.7.1
Esempio: Supply Chain Management . . . . . . . . . . 52
3 Il Problema dell’Incertezza
57
3.1
Richiami sulle variabili aleatorie . . . . . . . . . . . . . . . . . 58
3.2
Il Modello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.1
3.3
3.4
3.5
Ipotesi su v(k) e w(k) . . . . . . . . . . . . . . . . . . 64
Statistiche dello stato x(k) . . . . . . . . . . . . . . . . . . . . 66
3.3.1
Media . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.3.2
Covarianza . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.3
Correlazione in istanti diversi . . . . . . . . . . . . . . 69
3.3.4
Contaminazione dell’uscita . . . . . . . . . . . . . . . 70
Principio di Bellman . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.1
Caso deterministico . . . . . . . . . . . . . . . . . . . 71
3.4.2
Caso stocastico . . . . . . . . . . . . . . . . . . . . . . 72
Problema LQ Incerto . . . . . . . . . . . . . . . . . . . . . . . 72
3.5.1
Soluzione del problema
. . . . . . . . . . . . . . . . . 75
3.5.2
Stato non completamente accessibile . . . . . . . . . . 79
4 Problema della Stima Ottima - Filtro di Kalman
4.1
83
Generalitá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
INDICE
III
4.2
Ipotesi e Struttura del Predittore di Kalman . . . . . . . . . . 85
4.3
Studio del Predittore di Kalman . . . . . . . . . . . . . . . . 87
4.3.1
Condizione iniziale . . . . . . . . . . . . . . . . . . . . 87
4.3.2
Guadagno . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.3
Equazioni del Predittore . . . . . . . . . . . . . . . . . 90
4.3.4
Esempio teorico . . . . . . . . . . . . . . . . . . . . . . 91
4.4
Filtro di Kalman esteso . . . . . . . . . . . . . . . . . . . . . 93
4.5
Implementazione numerica . . . . . . . . . . . . . . . . . . . . 95
4.5.1
Algoritmi Square Root . . . . . . . . . . . . . . . . . . 97
4.5.2
Square Root Filter . . . . . . . . . . . . . . . . . . . . 98
4.5.3
Filtro di Chandrasekhar . . . . . . . . . . . . . . . . . 102
4.5.4
Square Root Information Filter . . . . . . . . . . . . . 103
5 Stima Parametrica
5.1
5.2
Stima ai Minimi quadrati . . . . . . . . . . . . . . . . . . . . 105
5.1.1
Stima di Gauss-Markov . . . . . . . . . . . . . . . . . 109
5.1.2
Condizioni sufficienti per l’esistenza del problema . . . 110
5.1.3
Stimatore ai Minimi Quadrati . . . . . . . . . . . . . . 112
5.1.4
Interpretazione geometrica
5.1.5
Algoritmo ricorsivo . . . . . . . . . . . . . . . . . . . . 114
5.1.6
Inizializzazione Convenzionale . . . . . . . . . . . . . . 118
5.5
5.6
Algoritmo ricorsivo . . . . . . . . . . . . . . . . . . . . 121
Stimatore a Minima Varianza . . . . . . . . . . . . . . . . . . 123
5.3.1
5.4
. . . . . . . . . . . . . . . 114
Minimi quadrati pesati . . . . . . . . . . . . . . . . . . . . . . 120
5.2.1
5.3
105
Best Linear Unbiased Estimator (BLUE) . . . . . . . 125
Stimatore a Massima Verosimiglianza
. . . . . . . . . . . . . 126
5.4.1
Introduzione . . . . . . . . . . . . . . . . . . . . . . . 126
5.4.2
La stima a verosimiglianza . . . . . . . . . . . . . . . 130
5.4.3
Proprietá . . . . . . . . . . . . . . . . . . . . . . . . . 131
Proprietá degli Stimatori . . . . . . . . . . . . . . . . . . . . . 131
5.5.1
Efficienza . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.5.2
Disuguaglianza di Cramer-Rao . . . . . . . . . . . . . 131
5.5.3
Stimatore non polarizzato . . . . . . . . . . . . . . . . 132
5.5.4
Consistenza . . . . . . . . . . . . . . . . . . . . . . . . 132
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.6.1
Esercizio 1
. . . . . . . . . . . . . . . . . . . . . . . . 134
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
INDICE
IV
5.6.2
Esercizio 2
. . . . . . . . . . . . . . . . . . . . . . . . 137
5.6.3
Esercizio 3
. . . . . . . . . . . . . . . . . . . . . . . . 139
6 Stima Bayesiana
143
6.1
Introduzione al problema . . . . . . . . . . . . . . . . . . . . 144
6.2
Stima Bayesiana . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.3
Stimatore Bayesiano . . . . . . . . . . . . . . . . . . . . . . . 147
6.3.1
Proprietá . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.4
Stimatore Bayesiano Lineare
6.5
Stimatore Bayesiano Lineare con piú sorgenti di informazione 152
6.6
. . . . . . . . . . . . . . . . . . 149
6.5.1
Sorgenti Incorrelate . . . . . . . . . . . . . . . . . . . 152
6.5.2
Sorgenti Correlate . . . . . . . . . . . . . . . . . . . . 153
Struttura del Filtro di Kalman . . . . . . . . . . . . . . . . . 154
7 Identificazione
7.1
7.2
Modello ARX . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.1.1
Rappresentazione Polinomiale . . . . . . . . . . . . . . 159
7.1.2
Modello a Errore di Equazione . . . . . . . . . . . . . 160
Modello ARMAX . . . . . . . . . . . . . . . . . . . . . . . . . 162
7.2.1
7.3
157
Modello a rumore omnicompresivo . . . . . . . . . . . 163
Problema di predizione . . . . . . . . . . . . . . . . . . . . . . 164
7.3.1
Predittore a un passo . . . . . . . . . . . . . . . . . . 165
7.3.2
Predittore a m passi . . . . . . . . . . . . . . . . . . . 166
7.3.3
Predizione Armax . . . . . . . . . . . . . . . . . . . . 167
7.4
Problema di Identificazione . . . . . . . . . . . . . . . . . . . 168
7.5
Identificazione ARX ai Minimi quadrati . . . . . . . . . . . . 171
7.5.1
7.6
Bias e consistenza della stima . . . . . . . . . . . . . . 177
Identificazione ARMAX ai Minimi Quadrati . . . . . . . . . . 179
7.6.1
Metodo della variabile strumentale . . . . . . . . . . . 183
7.6.2
Minimi quadrati estesi . . . . . . . . . . . . . . . . . . 186
7.7
Condizioni di Identificabilitá . . . . . . . . . . . . . . . . . . . 187
7.8
Stima dell’ordine . . . . . . . . . . . . . . . . . . . . . . . . . 189
7.8.1
PPCRE (Predicted PerCent Reconstruction Error) Criterion . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
7.8.2
7.9
Altri Criteri . . . . . . . . . . . . . . . . . . . . . . . . 191
Validazione del modello . . . . . . . . . . . . . . . . . . . . . 193
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
INDICE
V
7.9.1
Test di Bianchezza sui Residui . . . . . . . . . . . . . 193
7.9.2
Test di Indipendenza . . . . . . . . . . . . . . . . . . . 193
7.10 Metodo di Yule Walker . . . . . . . . . . . . . . . . . . . . . . 194
7.11 Modello AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.11.1 Formulazione di Yule-Walker . . . . . . . . . . . . . . 197
7.12 Modello MA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
7.12.1 Significato di Media Mobile . . . . . . . . . . . . . . . 204
7.13 Modello ARMA . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.13.1 Stima a Massima Verosimiglianza . . . . . . . . . . . . 206
7.13.2 Formulazione di Yule - Walker . . . . . . . . . . . . . 209
7.14 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
7.14.1 Tecnica della Variabile Strumentale in Matlab . . . . . 211
7.14.2 Stima Bayesiana . . . . . . . . . . . . . . . . . . . . . 213
8 Controllo Adattativo
8.1
8.2
215
Self Tuning diretto per il Pole Placement Deterministico . . . 216
8.1.1
Self tuning indiretto . . . . . . . . . . . . . . . . . . . 224
8.1.2
Self tuning diretto . . . . . . . . . . . . . . . . . . . . 224
Self Tuning per il Pole Placement Stocastico . . . . . . . . . . 227
8.2.1
Controllo a Minima Varianza . . . . . . . . . . . . . . 227
8.3
LQG Self Tuning . . . . . . . . . . . . . . . . . . . . . . . . . 232
8.4
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
8.4.1
Esercizio 1
. . . . . . . . . . . . . . . . . . . . . . . . 237
8.4.2
Esercizio 2
. . . . . . . . . . . . . . . . . . . . . . . . 237
A Matrice di Sylvester
239
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
Introduzione
Il presente lavoro é frutto della collaborazione di quattro studenti della Laurea Magistrale in Ingegneria dell’Automazione presso l’Universitá Federico
II di Napoli. Durante l’A.A. 2011/2012 le lezioni del corso Identificazione e
Controllo Ottimo, tenuto dal prof. Francesco Garofalo, sono state registrate, riascoltate, rielaborate e trascritte in ambiente LaTeX.
L’intento é quello di fornire ai futuri studenti del materiale di supporto allo
studio e alla preparazione dell’esame.
Il documento puó essere suddiviso in tre macro-sezioni:
• Nei Cap.1-6 parleremo di Controllo Ottimo; si affronteranno tutte le
problematiche relative alla ricerca e all’attuazione del controllo ottimo;
• Il Cap.7 é interamente dedicato all’ Identificazione; si illustreranno le
tecniche per l’identificazione dei modelli;
• Nel Cap.8 si introduce il Controllo Adattativo ed alcuni algoritmi di
Self Tuning.
2
INDICE
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
1
Metodi numerici per Ottimizzazione Statica
1.1
Definizioni
Prima di parlare dei metodi numerici, ricordiamo delle definizioni:
Def. 1.1.1 (Minimo locale in senso lato (stretto)). Una funzione f ha un
minimo locale in senso lato nel punto x0 se:
∃ un intorno Ix0 :
f (x0 ) ≤ f (x) ∀x ∈ Ix0
In senso stretto la disuguaglianza vale con il segno <.
Def. 1.1.2 (Minimo globale in senso lato (stretto)). Una funzione f:D→R
ha un minimo globale in senso lato nel punto x0 se:
f (x0 ) ≤ f (x) ∀x ∈ D
In senso stretto la disuguaglianza vale con il segno <.
1. Metodi numerici per Ottimizzazione Statica
4
Def. 1.1.3 (Condizioni del I e II Ordine). Il punto x0 é di minimo per la
funzione f (x) se:
• f 0 (x0 ) = 0
• f 00 (x0 ) > 0
Def. 1.1.4 (Derivata direzionale). Indica la velocitá di cambiamento della
funzione rispetto alla direzione assegnata:
∂f
f (x∗ + αd) − f (x∗ )
= lim
∂d α→0
α
Def. 1.1.5 (Gradiente). Esprime la direzione di massima variazione della
funzione:
~ = [ ∂f . . . ∂f ]T
∇f
∂x1
∂xN
Def. 1.1.6 (Hessiano). É la matrice delle derivate seconde:
Hf (~x) = [
∂f
]
∂xi ∂xj
Def. 1.1.7 (Matrice Hf semidefinita positiva1 ). É l’analogo delle condizioni
del I e II ordine nel caso multivariabile:
~xT Hf ~x ≥ 0 ∀x ∈ <n
Def. 1.1.8 (Matrice Hf definita positiva).
~xT Hf ~x > 0 ∀x ∈ <n − {0}
1
Guardando la definizione, ci rendiamo conto che con il vettore nullo non avrei nessuna
informazione sulla matrice H.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
5
In definitiva, quando l’Hessiano é semidefinito positivo, allora il punto
puó essere di minimo o di sella (equivalente del p.to di flesso in <n ).
Per dire che l’hessiano definito positivo sia una condizione sufficiente, devono
essere soddisfatte altre ipotesi che di solito si omettono, ma é necessario
elencarle qui di seguito:
Condizione sufficiente di minimo
• matrice Hf definita positiva;
~ |x=x = ~0;
• ∇f
0
• funzione derivabile due volte;
• f ∈ C 2 (V ) (funzione continua in x);
• x0 interno;
É importante annoverare queste condizioni perché se il punto é di frontiera,
il discorso non vale piú (es. funzione radice).
Cosa succede se il punto di minimo non é interno al dominio ma
si trova sulla frontiera?
Figura 1.1: Punto di minimo sulla frontiera
Supponiamo che questo insieme compatto sia il nostro insieme di ammissibilitá e che A sia il punto di minimo. Tutte le derivate direzionali che vanno
verso l’esterno non sono ammissibili. Ci vuole quindi una condizione necessaria sulle derivate direzionali poiché non per tutti gli α che puntano
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
6
all’interno le derivate direzionali sono ammissibili. Si avrá una condizione
del tipo:
∃ almeno un α > 0 che fa rimanere le derivate direzionali nell’insieme.
Esercizio
"
#
−1
0
0
−1
Questa matrice é definitiva positiva? Lo verifico attraverso la definizione
prendendo un vettore generico ~x di componenti(x1 , x2 ):
"
[x1 x2 ]
#"
−1
0
0
−1
x1
x2
#
=
−x21 − x22
≤
0
L’Hessiano conviene calcolarlo nei punti di stazionarietá, ovvero nei punti
in cui il gradiente si annulla. Calcolato l’Hessiano in questi punti, mi trovo
gli autovalori λ:
• tutti i λ > 0 ⇒ H definito positivo;
• tutti i λ < 0 ⇒ H definito negativo;
• qualche λ = 0 ⇒ non possiamo dire nulla su H;
Questo esempio ha solo scopo didattico, in quanto l’Hessiano di solito non
é costante, ma i suoi elementi dipendono da x1 , x2 .
Quelli presentati sono detti Metodi di Montecarlo: sono metodi nei quali
scelgo casualmente un numero xR2 e vado a verificare le condizioni di
minimo.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
1.2
7
Algoritmo numerico
Presa la successione (xi )i∈N , se converge a x0 significa che:
∀ε > 0
∃ν
| n>ν⇒
~
xn
−~x0 < ε
Ovvero, comunque scelgo ε, sicuramente da un certo punto in poi i termini
della successione xn approssimeranno x0 a meno di ε. In altri termini, posso
arrestare l’algoritmo quando l’errore é minore di una certa tolleranza; L’obiettivo di tutti i nostri algoritmi sará costruire questa successione
che converge a x0 .
A questo punto sorge spontanea una domanda: i termini di questa successione verificano le condizioni necessarie e sufficienti di minimo?
Sicuramente se uno di questi verificasse le condizioni di minimo, l’algoritmo
potrebbe arrestarsi. Peró nei casi comuni accade che nessuno di questi verifica le condizioni di minimo in modo esatto; ma sicuramente accade che,
se io mi sto avvicinando a un punto di minimo, man mano che mi avvicino
il gradiente tende al vettore nullo. Stiamo parlando di convergenza Puntuale, ovvero per ogni punto le componenti del gradiente tendono a zero.
Quello che invece stiamo assicurando noi é una convergenza Uniforme,
che é piú forte, in quanto stiamo garantendo che l’estremo superiore del
modulo del gradiente, che é una caratteristica di tutta la funzione, tende a
zero con un errore minimo:
sup
~
∇(f ) < ε
(1.2-1)
Analogo ragionamento si puó fare per la condizione del secondo ordine.
Posso dare una soglia di tolleranza anche alle condizioni sufficienti.
1.3
Metodi di discesa (Line Search)
Ad ogni step dell’algoritmo si ottiene xk (current point) nella direzione di
ricerca dk con il passo αk :
xk+1 = xk + αk dk
(1.3-1)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8
1. Metodi numerici per Ottimizzazione Statica
cercando di ottenere il decremento di f (x) lungo xk + αk dk attraverso interpolazioni polinomiali. Tramite questi metodi non é detto che si arrivi
al punto di minimo, ma sicuramente se l’errore diminuisce vuol dire che al
minimo mi sto avvicinando.
Facciamo un esempio nel caso monodimensionale: il passo e la direzione
sono sull’asse x:
Considero quindi un punto x0 , la direzione di ricerca puó essere sia a sinistra che a destra; a ogni k considero un passo αk . Per la direzione, cercando
un minimo, mi metto dove la funzione decresce. Prima di tutto dobbiamo
fissare le tolleranze (con che approssimazione vogliamo conoscere il minimo?), altrimenti l’algoritmo non sa quando fermarsi, perché deve testare
le condizioni sufficienti di minimo .
Oltre alla tolleranza su x c’é anche quella sul valore di x, ovvero su f (x),
perché bisogna sempre vedere quali sono le grandezze in gioco:
In figura vediamo cosa succede se non abbiamo assegnato una tolleranza a
f (x): supponiamo di voler ricercare il massimo, in funzione della mia tolleranza su x l’algoritmo si ferma a x∗ ; come vediamo l’errore su y é molto
grande, siamo lontani dal massimo effettivo.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
9
L’algoritmo quindi si fermerá quando entrambe le tolleranze sono verificate
(piú precisamente quando la peggiore delle due é verificata).
Nel caso conoscessimo la funzione f (x) (ma in realtá l’algoritmo conosce solo il valore della f in alcuni punti), facendo la derivata capisco la direzione
verso la quale devo muovermi; nel caso monodimensionale d~k é un numero
che vale ±1:
Figura 1.2: Algoritmo
0
• se f (x0 ) > 0 ⇒ vado a sinistra, perché la funzione sta crescendo;
0
• se f (x0 ) < 0 ⇒ vado a destra, perché la funzione sta decrescendo;
Per la scelta del passo, possiamo scegliere i punti xi+1 come intersezioni tra
le tangenti delle f (xi ) con l’asse reale (proprio come in figura). Questo é un
algoritmo che puó convergere.
Ma una scelta piú intelligente é scegliere il passo che minimizza la f (x):
αk = arg min f (x)
(1.3-2)
Vorrei quindi il passo che mi porta piú velocemente al minimo. Il problema peró é valutare la funzione in quei punti poiché l’algoritmo conosce
solo il valore della funzione nei punti che ha giá esaminato. Ne considero
quindi un’approssimante: prendo 3 punti, ne faccio l’interpolazione con
una parabola e scelgo il minimo. A questo punto scelgo α che minimizza
l’approssimante (e il minimo della parabola, ovvero il vertice, lo so calcolare
analiticamente) e spero che lo stesso α minimizzi anche la funzione reale.
Logicamente al crescere dell’ordine dell’approssimante, riesco ad approssimare meglio la funzione, ovvero l’intorno xk in cui l’approssimazione é valida
si allarga al crescere dell’ordine. Quindi potró prendere un αk piú grande e
arrivare piú velocemente al minimo.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
10
1.4
Steepest Descent Method
Sappiamo che geometricamente il gradiente é la direzione di massima variazione di una funzione. Allora l’idea é quella di scegliere come direzione
quella opposta al gradiente, poiché sará quella lungo la quale la funzione
decrescerá di piú:
~ (xk )
d~ = −∇f
(1.4-1)
Il passo lo scelgo esattamente come prima:
~
αk = arg min f (~xk + αd)
(1.4-2)
Con questo algoritmo per ogni punto ho direzioni diverse; facciamo un
esempio:
1. ~x1 → d~1
2. ~x2 → d~2
3. ~x3 → d~3
Al passo 4 dovró proiettare le direzioni, tramite il prodotto scalare, su d~4 .
1.4.1
Passi dell’algoritmo
Si parte da un punto x0 ∈ <n (k=0):
~ (xk ) = 0 fermati; altrimenti calcola la direzione come
• Step 1: Se ∇f
nell’equazione (1.4-1).
• Step 2: Calcola il passo come nell’equazione (1.4-2).
• Step 3:Calcola ~xk+1 come nell’equazione (1.3-1).
• Step 4: k = k + 1 e ritorna allo Step 1.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
1.4.2
11
Interpretazione nello spazio
Gli algoritmi di Steepest descent equivalgono ad approssimare la funzione
con un piano. Sto dicendo che attorno a xk la funzione si approssima con
un piano che é quello che passa per la direzione del gradiente. Sto in pratica
applicando il teorema del differenziale, ovvero sto dicendo che:
T
~ (~xk ) (~x − ~xk )
f (~x) = f (~xk ) + ∇f
(1.4-3)
In questo modo io sto provando a minimizzare l’approssimante, che risulta
valida localmente. Questa funzione ovviamente non ha il minimo, perché
lineare; allora possiamo pensare a una funzione del secondo ordine. Piú
aumento l’ordine dell’approssimante, piú allargo l’intorno di xk e posso sperare che il minimo sia in quell’intorno.
Ricapitolando: Stiamo prendendo un punto, utilizziamo le info sulla derivata prima o sul gradiente per avere una direzione, lungo quella direzione
cerchiamo di scegliere un passo per determinare il punto successivo. Questo passo é scelto come quel passo che minimizza maggiormente la funzione. Questa minimizzazione equivale alla minimizzazione di una funzione
di un’unica variabile reale. Poi abbiamo detto ma questo é equivalente a
considerare un’approssimante e fare il minimo in un intorno. Vuoi vedere
che esiste un’approssimante di ordine maggiore che fa in modo che il minimo ricada proprio in quell intorno? Se questa ipotesi é vera, io potrei
minimizzare queste approssimanti.
1.4.3
Limiti dell’Algoritmo
• Lentezza di convergenza, soprattutto se la curvatura della funzione é
molto variabile;
• Convergenza locale;
• Regole implicite di step-size (richiede tempo computazionale);
• Inefficienza di calcolo della soluzione nel caso di funzioni che presentano elevata convessitá.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
12
1.5
Metodo di Newton
Ora procediamo in un altro modo. Abbiamo un’approssimante del secondo
ordine della funzione reale:
~ (~x)T (~x − ~xk ) + 1 (~x − ~xk )T Hf (~xk )(~x − ~xk )
f (~x) = f (~xk ) + ∇f
2
(1.5-1)
Spero che abbia un minimo. Se ha un minimo, é contenuto nell intorno
in cui questa approssimazione é valida altrimenti non fa niente. Se questa
approssimazione é sufficientemente accurata, il minimo dell’approssimante
sicuramente converge al minimo della funzione reale. Sarebbe come approssimare con parabole successive. E non é detto che il minimo della funzione
reale sia nell’intorno dell’approssimante. Quindi, nuovamente, utilizzo l’approssimante del secondo ordine perché in questo modo essendo l’intorno piú
grande converge al minimo piú velocemente.
Per trovare il minimo dell’approssimante (e sicuramente la funzione ha un
minimo, poiché essendo quadratica é convessa) faccio il gradiente e lo pongo
uguale a 0:
~ (~xk )
~ (~x) = 0 + ∇f
~ (~xk ) + H(~xk )(~x − ~xk ) = 0 ⇒ (~x − ~xk ) = −(H)−1 ∇f
∇f
Abbiamo quindi trovato l’algoritmo:
~ (~xk )
xk+1 = xk − (H)−1 ∇f
(1.5-2)
In effetti il vantaggio di questo algoritmo é quello che in un unico colpo
riesco a scegliere sia il passo sia la direzione:
~ (~xk ) = sk
αk d~k = −(H T )−1 ∇f
(1.5-3)
Dove sk = xk+1 − xk é definito passo di Newton.
Ricapitolando: approssimiamo con un forma quadratica una funzione nello spazio e speriamo che la successione dei punti di queste approssimanti
converga al minimo. Da un punto di vista numerico, stiamo ipotizzando
che il gradiente sia stato fornito; per fare questo metodo dobbiamo fare pure
l’hessiano inverso e fornirlo all’algoritmo. E quindi il problema si complica.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
1.5.1
13
Vantaggi
• Convergenza locale veloce;
• Se f (x) é una funzione quadratica, una soluzione stazionaria é raggiunta in poche iterazioni;
1.5.2
Svantaggi
• Convergenza locale;
• Calcolo Hessiano a ogni iterazione;
• Complessitá computazionale.
1.6
Metodi di Quasi Newton
Il problema principale dei Metodi di Newton é il calcolo dell’Hessiano a ogni
iterazione. Cerchiamo quindi un algoritmo nel quale sostituire l’Hessiano
con una matrice della quale esiste una forma ricorsiva:
−1
~ −1 , ∇f
~ (~xk ), ∇f
~ (~xk+1 ), ~sk );
Bk+1
= f (B
k
~sk = ~xk+1 − ~xk
(1.6-1)
In questo modo basterebbe inizializzare la matrice B e con l’espressione di
cui sopra avró ad ogni passo l’espressione dell’inversa:
Assegnata
B0−1 ⇒
~ −1 , ∇f
~ (x0 ), ∇f
~ (~x1 ), ~s0 )
B1−1 = f (B
0
Questi metodi nascono dal fatto che a livello numerico il calcolo dell’Hessiano é molto oneroso (es. 10 variabili → matrice H con 100 elementi). In
questo modo sostituiamo l’Hessiano con un’approssimante.
Il funzionamento dell’algoritmo é identico al metodo di Newton con l’Hessiano sostituito; questo perché non ho sempre a disposizione l’hessiano, ma
ho sicuramente sempre a disposizione il valore della f (x) nei vari punti;
per questo motivo approssimeró il gradiente con l’equazione alle differenze
finite:
f (~xk+1 ) − f (~xk )
~ ∼
∇f
=
~xk+1 − ~xk
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
14
1.6.1
Algoritmo
Definito:
~ (k) = ∇f
~ (~xk+1 ) − ∇f
~ (~xk )
Y
(1.6-2)
i passi dell’algoritmo sono i seguenti:
1. Step 1: calcolo d~k ;
2. Step 2: calcolo α;
3. Step 3: calcolo ~xk+1 ;
4. Step 4: calcolo ~sk ;
~ (k);
5. Step 5: calcolo Y
La formula piú utilizzata negli algoritmi di Quasi Newton é la BFGS(dagli
autori Broyden, Flatcher, Goldfarb, Shanno):
−1
Bk+1
= Bk−1 +
~k + Y
~ T B −1 Y
~k )(~sk~sT ) (B −1 Y
~k~sT + ~sk Y
~ T B −1 )
(~sTk Y
k
k
k
k
k
k
− k
T
T
2
~
~
(~s Yk )
(~s Yk )
k
k
(1.6-3)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
1.7
15
Minimizzazione Vincolata
In questi problemi, si portano i vincoli all’interno della funzione obiettivo;
~ che porta in conto i
si dovrá minimizzare non piú una f (~x) ma una T (x)
vincoli, ovvero:
minf (~x)
~
x∈V
gi (~x) < 0
(1.7-1)
i = 1, ..., m
hi (~x) = 0 i = 1, ..., l
dove m sono vincoli di disuguaglianza e l di uguaglianza.
1.7.1
Metodo della Penalitá Esterna (Exterior Penalty)
T (~x) = f (~x) + rP (~x)
P (~x) =
m
X
i=1
(max(0, gi (~x)))2 +
l
X
(hj (~x))2
(1.7-2)
j=1
Con questo metodo vado a sommare alla mia f (~x) una quantitá positiva
quando il vincolo é violato, nulla altrimenti; l’algoritmo cercando di minimizzare T (~x), sceglie via via ~x che vanno verso la regione di ammissibilitá
(la quantitá positiva sommata ha minimo =0, che si trova proprio all’interno della regione di ammissibilitá). Il parametro r é il parametro di penalitá.
Se ci si allontana troppo dalla regione ammissibile, il termine rP (x) diventa
tanto piú grande quanto piú r é grande e la tendenza sará quella di indirizzare i minimi non vincolati verso la regione ammissibile proprio per ridurre
il valore di penalitá rP (x):
Figura 1.3: Metodo della penalitá esterna
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
16
É evidente che una difficoltá del metodo é sicuramente la scelta iniziale
di r.
Analizziamo la P (~x):
m
X
(max(0, gi (~x)))2
i=1
1. All’interno questa funzione restituisce 0 come massimo mentre all’esterno restituisce un numero positivo;
2. Sulla frontiera é continua a patto che g sia discontinua;
3. Sulla frontiera non é derivabile, in quanto la frontiera é discontinua
(fuori é positiva, all’interno é nulla);
4. Al crescere di k questa funzione mi porta la f (~x) fuori al dominio di
Ammissibilitá;
l
X
(hj (~x))2
j=1
1. Se ~x appartiene al dominio di ammissibilitá, hj = 0 per ipotesi;
2. Se ~x non appartiene al dominio di ammissibilitá, qualsiasi numero sia,
al quadrato, restituisce una quantitá positiva.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
1.7.2
17
Metodo della Barriera
Rispetto a prima, procediamo alla ricerca del minimo dall’interno2 ; supponiamo che esista una funzione che vicino alla frontiera vada a infinito,
lontano vada a zero:
T (~x) = f (~x) +
B(~x) = −
Pm
x))
i=1 log(−gi (~
B(~
x)
r
oppure
B(~x) = −
Pm
1
i=1 gi (~
x)
(1.7-3)
Figura 1.4: Metodo della Barriera
Se B(~x) = −
Pm
x))
i=1 log(−gi (~
:
~x → f rontiera ⇒ gi (~x) = 0 ⇒ log(0) =
−∞ ⇒ B(~x) = +∞
Figura 1.5: Grafico della funzione B(~x)
2
Barriera perché non permette di uscire dalla regione di ammissibilitá
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
18
1. Metodi numerici per Ottimizzazione Statica
N B: Al crescere di r il contributo del logaritmo all’interno della frontiera
é piccolo ( e non modifica il punto di minimo). Il problema é la scelta
iniziale di r: la sua scelta, come quella della tolleranza é commisurata
al problema che stiamo affrontando, r va dimensionata in funzione delle
grandezze in gioco.
Conviene mantenere la differenza di ordini di grandezza tra B(~x) e r limitata
(altrimenti si possono avere problemi di tipo numerico).
Il problema é solo sula scelta iniziale perché se giá per la prima volta é
garantito che quel contributo non modifichi la funzione di una certa quantitá
maggiore di Tolfun (Tolleranza), a maggior ragione é garantita per la volta
x)
successiva, perché al crescere di r questa quantitá ( B(~
r ) diventa decrescente.
N B2: La scelta di B(~x) come funzione logaritmica é migliore rispetto alla
scelta di B(~x) come funzione inversa, perché la funzione logaritmica cresce
piú lentamente e quindi quando r → ∞, in meno passi riesce a far diminuire
il contributo di B(~x).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
1. Metodi numerici per Ottimizzazione Statica
1.8
19
Optimization Toolbox di Matlab
1.8.1
Minimizzazione non vincolata
fminunc (0 m − f ile0 , x0 , options)
options = optimset(0 nome0 ,0 valori0 , . . . )
3
Sia valida la seguente Ipotesi: la successione xk converge al punto di minimo. Inoltre T olx ⇒ rappresenta la tolleranza sulla norma di s~k = ~xk+1 −~xk ;
T olf un ⇒ rappresenta la tolleranza sul decremento del valore della funzione.
Problema: come si sceglie lo stato iniziale? La scelta del valore x0
determina il punto di minimo locale del problema dove l’algoritmo ferma
⇒ é una scelta del tutto arbitraria. Non c’é minima garanzia che quello sia
anche il minimo globale; anzi potrebbe anche essere il peggiore dei punti di
minimo. Non c’é modo analitico per sceglierlo.
Le funzioni sulle tolleranze sono molto importanti, bisogna scegliere sempre
la massima tolleranza possibile.
1.8.2
Minimizzazione Vincolata
fmincon (0 m − f ile0 , x0 , A, b, l, u, @v, options)4
Vincoli lineari ⇒ Ax ≤ b, Vincoli Non Lineari ⇒ m-file
1.8.3
5
Altri comandi
1. A \ b Operatore Slash Retroverso: risolve il sistema lineare di
matrice A e termine noto b; se non ha soluzione, perché indeterminato
(numero di equazioni > numero incognite) restituisce la soluzione ai
minimi quadrati;
2. fzero (@m − f ile, x0 ): restituisce il primo zero che incontra;
3. fminsearch : utilizzato per problemi con poche variabili.
3
Per esempio: Nome=largescale e Valore=off ⇒ funzione utilizza di default l’algoritmo
di QUASI NEWTON.
4
l’m-file é della funzione obiettivo.
5
Si realizzano due m-file distinti per vincoli di uguaglianza e disuguaglianza
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
20
1. Metodi numerici per Ottimizzazione Statica
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
2
Problemi di Minimizzazione Vincolata
2.1
Metodo Variazionale
min
L(x)
L : <n → <
x ∈ D ⊆ <n
La L(x) rappresenta la funzione di costo. Risolvere questo sistema di controllo ottimo, significa ricondurlo a un set di equazioni (che in linea di
principio potrebbero non essere risolvibili).
Vediamo come funziona il Metodo Variazionale: suppongo di conoscere x∗
(in realtá é proprio quello che vogliamo trovare) e imponiamo una variazione
infinitesima δx.
Essendo x∗ un punto di minimo, risulterá:
L(x∗ ) ≤ L(x∗ + δx) ∀δx
(2.1-1)
Utilizzo adesso lo sviluppo di Taylor, dando un’approssimazione con un
termine costante, piú una variazione prima, piú una variazione seconda e
cosi via:
L(x∗ + δx) = L(x∗ ) + ∇L|x∗ δx + . . .
2. Problemi di Minimizzazione Vincolata
22
se δx é molto piccolo, i termini al quadrato,cubo,. . . possono essere trascurati. Abbiamo allora:
∗
∗
L(x
) ≤
L(x
) + ∇L|x∗ δx ⇒ ∇L|x∗ δx ≥ 0
(2.1-2)
Ma nello scrivere ∀δx abbiamo detto che la condizione (2.1-1) deve valere
per ogni perturbazione. Allora la (2.1-2) vale con il segno ≥ ∀δx e con il
segno ≤ ∀ − δx. Raggruppando le due condizioni abbiamo:
∇L|x∗ δx ≷ 0
e quindi:
∇L|x∗ = 0
Siamo giunti quindi alla Condizione necessaria di ottimalitá:
x = x∗
:
∇L|x∗ = 0
(2.1-3)
Si tratta di una condizione solo necessaria, in quanto troviamo i candidati
a essere soluzione del problema. Per la condizione sufficiente dovró considerare l’Hessiano.
2.2
Problemi di Controllo Ottimo T.D.
Nel controllo ottimo tempo discreto ci sono due ingredienti fondamentali:
1. la cifra di merito;
2. i vincoli;
Qual’é ora la cifra di merito che noi ci possiamo immaginare per un problema in tempo discreto?
Innanzitutto l’orizzonte dell’azione di controllo per noi sará il tempo
sul quale facciamo l’azione di controllo. Partiamo sempre da un tempo finito
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
23
e poi facciamo delle considerazioni per il tempo che si estende all’infinito1 .
Immaginiamo un orizzonte di controllo finito, che abbia origine in un
istante 0 e finisca all’istante N , oppure inizi all’istante k0 e finisca a k0+N .
Considerare l’intervallo [0, N ] o [k0 , k0+N ] diventa rilevante ai fini del controllo per quei sistemi che non sono stazionari.
Stabilito l’orizzonte, il sistema da controllare sará descritto da un’equazione
alle ricorrenze:
x(k + 1) = fk (x(k), u(k))
(2.2-1)
dove lo stato all’istante k + 1 é funzione dello stato e dell’ingresso all’istante
k. Anche la funzione dipenderá dallo stato considerato, ovvero la natura di
questa funzione é diversa da istante ad istante; peró tutte queste funzioni
stabiliscono sempre la relazione che associano a n stati con p ingressi =⇒ n
stati2 .
C’é un ulteriore vincolo, quello dato dalla condizione iniziale x(0) = x0 ,
che mi dice che tutte le traiettorie di questo sistema sono radicate da questa
condizione iniziale x0 . Anche x(0) é un vincolo vettoriale.
Poi potrebbero esserci altri vincoli, detti Terminali, ovvero si potrebbe
avere xi (N ) = x̄i per qualche3 i: impongo che, partendo da un certo stato
iniziale, si debba raggiungere un certo sottospazio nello spazio di stato all’istante N .
Se io per esempio nel mio stato blocco lo stato iniziale e quello finale, prima
di tutto si dovrebbe capire se esiste una traiettoria che porti il mio stato
dallo stato iniziale allo stato finale (problema raggiungibilitá per sistemi
non lineari; ma noi conosciamo la raggiungibilitá solo per i sistemi lineari).
Poi potrebbe esserci il caso che in cui esistono piú traiettorie che ci portano
dallo stato iniziale a quello finale e solo in questi casi ha senso il problema
1
Tempo necessario al sistema affinché vada a regime;
Noi omettiamo questo pedice k vicino alla f per non appesantire la notazione. Questo
non é altro che un vincolo, precisamente piú che un solo vincolo sono piú vincoli, perché
vale per k che va da 0 a N − 1 poiché dopo N − 1 siamo usciti fuori dall’intervallo. Quindi
sono N vincoli x0 = . . . , x1 = . . .
3
Scrivo solo per qualche i e non per tutte le i perché altrimenti il problema potrebbe
confliggere con il problema di raggiungibilitá del sistema.
2
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
24
di ottimizzazione4 .
Ritornando al caso in cui invece vogliamo raggiungere solo alcuni stati terminali, allora é molto verosimile che il mio problema abbia molte soluzioni,
se non proprio infinite. Proprio quando ci sono in ballo infinite soluzioni
allora il problema di controllo acquista maggiore importanza.
Def. 2.2.1. Un problema di controllo ottimo ha senso quando siamo di
fronte a una scelta, ovvero esistono piú traiettorie che dallo stato iniziale ci
portano a quello terminale.
Quindi assumiamo che i nostri vincoli siamo questi:


x(k + 1) = fk (x(k), u(k))



(2.2-2)
x(0) = x0




xi (N ) = xi
qualche
i
Ora vediamo qual é la cifra di merito alla quale noi ci vogliamo rivolgere. Vogliamo fare quest’azione di controllo, da 0 ad N , con questi vincoli; posto che esistano infinite sequenze di controllo che io posso ottenere, dobbiamo decidere cosa voglio minimizzare. Potrei minimizzare i costi
o massimizzare i benefici, noi scegliamo la prima e quindi utilizziamo la
minimizzazione dei costi.
Chiamo:
1. Ψ(x(N )) Costo terminale: rappresenta il costo del mancato rendezvous, ovvero io voglio andare in un posto in N passi e voglio cercare
di arrivare sul target quanto piú precisamente possibile.
2.
PN −1
i=0
L(x(i), u(i)) Costo di Transizione: é un costo che invece
dipende dalle transizione che io ho fatto, quindi dai vari passaggi: da
x(0) a x(1),da x(1) a x(2) e cosi via;
N −1
3. {u(i)}i=0
Variabile di decisione: é la sequenza delle u(i) al variare
di i sull’orizzonte di controllo.
Quindi il mio problema di ottimizzazione si scrive:
4
Poiché ci sono piú scelte e quindi bisogna scegliere quella che minimizza il mio indice
di costo.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
min
−1
{u(i)}N
i=0
Ψ(x(N )) +
N
−1
X
L(x(i), u(i))
25
(2.2-3)
i=0
Questo problema quindi si risolve attraverso la soluzione di equazioni. Ogni
u(i) é un vettore di dimensione p; essendo l’orizzonte pari a N , avremo un
vettore di dimensioni N ∗ p che rappresenta lo spazio delle mie decisioni.
Dare la soluzione significa dare un vettore di questo spazio N ∗ p.
Siccome N é finito, per quanto grande sia N , questo problema si puó sempre
formulare come un problema di ottimizzazione statica, perché quando io
mi metto nello spazio delle decisioni di dimensione N ∗ p é inutile che chiamo queste variabili u(0), u(1), . . . ; vorrei invece chiamarle come il vettore
w0 , w1 . . . wN p , dove ho perso la cognizione dell’istante di tempo, tanto la
mia decisione é un punto di quello spazio che io poi riporto nel tempo prendendone varie componenti.
In questo modo questo problema si puó formulare come un qualunque problema di ottimizzazione statica perché il tempo non c’é piú, ma c’é solo un
ordinamento di variabili che in qualche modo é collegata attraverso qualche
regola ad un istante di tempo; ma quando io avró riordinato queste variabili
il tempo sará sparito. Naturalmente questo modo di ragionare non é tanto interessante perché ci fa perdere la variabile temporale della decisione;
perché questa cosa nasconde in se un Processo Decisionale a Stadi.
Data la x(0), io decido la u(0) e genero la x(1); ora data la x(1) decido
la u(1) e genero la x(2), e cosí via fino a generare la u(N − 1) la quale
determina l’ultimo valore x(N ). In questo modo la mia decisione si deve
prendere soltanto all’istante considerato e non si deve prendere una decisione simultanea su tutta la sequenza. Quindi questo ragionamento non é
tanto interessante se io non pensassi al fatto di prendere la mia decisione in
controreazione.
Supponiamo infatti di avere tutta la sequenza delle u, anche se a noi non
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
26
2. Problemi di Minimizzazione Vincolata
sarebbe necessario avere tutta la sequenza delle u perché noi applichiamo
prima la u(0), poi la u(1) ecc. . . . Il fatto quindi di avere direttamente tutta la sequenza delle u é come se avessi giá la soluzione a ciclo aperto nel
senso che io ho giá la soluzione che poi noi applichiamo. Se io invece voglio
sfruttare la retroazione allora questa soluzione io la devo far ripetere alla x,
cioé dato x(0) io produco la u(0) che é funzione di x(0), successivamente
attendo una transizione e si ottiene x(1), la quale mi fa ottenere u(1) che é
funzione di x(1) e cosí via; in questo modo io nella mia cifra di merito faccio
dipendere la u dalla x, e quindi metto in atto questa decisione fatta a stadi
sulla transizione che si realizza.
Tutto questo ha dei confini labili perché si é legati al caso deterministico,
perché in questo caso c’é una relazione stretta tra la u e la x. Cioé in ambito
deterministico (non ci sono disturbi) e il fatto che io abbia applicato una
legge di controllo a ciclo chiuso a ciclo aperto non cambia nulla.
Quindi come faccio a risolvere questo problema decisionale a stadi? Cioé come faccio a trasformare il tutto in un set di equazioni da risolvere? Applico
il Metodo Variazionale:
1. ho la soluzione;
2. Trovo una proprietá che la soluzione deve avere;
3. Realizzo che la soluzione non la conosco e quindi vado a trovare tutti
quei punti che vanno a soddisfare quella proprietá del punto 2
Per ottimizzare devo considerare l’intero orizzonte.
La soluzione che io sto cercando ora non deve essere per forza di tipo retroazione di stato, ma con il metodo variazionale riesco ad avere una soluzione
di tipo generico che peró potrebbe non esser messa in retroazione di stato.
Def. 2.2.2. Mentre é certamente vero che una strategia di soluzione in
controreazione si puó certamente mettere come strategia a ciclo aperto, non
é vero che una strategia a ciclo aperto si puó mettere a ciclo chiuso.
Vediamo come procedere tramite il metodo variazionale:
• Primo passo: Se é nota la sequenza ottimale degli ingressi da applicare al mio sistema, allora é nota anche la traiettoria ottimale; infatti
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
27
poiché x(0) = 0 é fissata, allora dalla x(0) io non posso che transitare
alla x(1), dovuta all’applicazione della u∗ (0),perché l’equazione é deterministica e mi fa passare in un unico x(1), cosí si avrá lo stesso per
gli stati successivi.
• Secondo passo: Qual é la proprietá di cui gode la traiettoria ottimale?
min{u(i)}N −1 Ψ(x(N )) +
N
−1
X
i=0
L(x(i), u(i))
(2.2-4)
i=0
|
{z
J
}
−1 ∗
N
J sará funzione della sequenza di u(k) e di x(k), J ∗ = J(u∗ (k)N
k=0 , x (k)k=0 ).
Se la sequenza ottima u∗ (k) genera la traiettoria ottimale x∗ (k), allora
se la sequenza u∗ (k) viene perturbata di un δu(k), la traiettoria subirá
una perturbazione δx(k).
Se ragioniamo nel tempo continuo, perturbare una funzione significa
distorcere la funzione iniziale; diventa cosí un problema funzionale e
bisogna definire il concetto di norma della funzione. Per il caso discreto invece il ragionamento é piú semplice, perché io posso dire che la
mia traiettoria non sará piú x∗ (k) ma sará x∗ (k) + δx(k).
ste condizioni, l’indice di costo diventa
visto che
J∗
J∗
5
Sotto que-
+ δJ. Ovviamente δJ ≥ 0,
era il minimo, e quindi qualsiasi altro J é sicuramente
maggiore di J ∗ :
−1 ∗
N
J ∗ + δJ = J(u∗ (k) + δu(k)N
k=0 , x (k) + δx(k)k=0 )
(2.2-5)
Calcoliamoci ora il δJ:
δJ =
∂J
[·]
(2.2-6)
dove [·] é un vettore che contiene tutte le u(k) e tutte le x(k): il δJ lo
posso calcolare come il differenziale per variazioni delle componenti u
e x.
Trattandosi di un problema vincolato, utilizziamo la Lagrangiana per
5
Questo vale ovviamente anche per sistemi lineari poiché supponiamo di perturbare
poco la mia traiettoria.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
28
riportare il vincolo all’interno della funzione obiettivo:
N
−1
X
J = Ψ [x(N )]+
N
−1
X
L(x(i), u(i))+
i=0
λT (i + 1)(f (x(i), u(i)) − x(i + 1))
i=0
(2.2-7)
Ci rendiamo conto che li dove il vincolo é soddisfatto, la moltiplicazione tra λT (i + 1) e il vincolo non cambia nulla (poiché il vincolo é
espresso nella forma g(x) = 0). Essendo quest’ultima espressione ricca
di termini introduco la funzione Hamiltoniana6 :
def
H i = L(x(i), u(i)) + λT (i + 1)f (x(i), u(i))
(2.2-8)
Riscriviamoci allora J in forma piú congeniale7 :
J = Ψ [x(N )] +
= Ψ [x(N )] +
N
−1
X
i=0
N
−1
X
i=0
Hi −
Hi −
N
−1
X
i=0
N
X
λT (i + 1)(x(i + 1)) =
λT (i)(x(i)) =
i=1
= Ψ [x(N )] − λT (N )x(N ) +
N
−1
X
Hi −
i=0
= Ψ [x(N )] − λT (N )x(N ) + H 0 +
N
−1
X
λT (i)(x(i)) =
i=1
N
−1
X
i=1
Hi −
N
−1
X
λT (i)(x(i))
i=1
(2.2-9)
Valutiamo ora il δJ 8 .Notiamo che il differenziale si puó scrivere in
maniera piú leggera9 : se prendiamo il costo Ψ, esso é funzione solo
della x(N ), e quindi il primo termine della δJ é pari a:
∂Ψ
δx(N )
∂x(N )
6
7
(2.2-10)
H i (x(i), u(i), λ(i + 1))
Dove:
– H 0 (x(0), u(0), λ(1))
– Ho riportato le sommatorie a stesso indice;
8 ∂H 0
∂u(0)
9
non sono derivate ma gradienti perché sono vettoriali.
Perché sarebbe pesante la notazione, dovendo fare tutte le derivate parziali e poi
moltiplicare per il differenziale singolo.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
29
Abbiamo quindi:
δJ =
+
∂H 0
∂Ψ [x(N )]
δx(N ) − λT (N )δx(N ) +
δu(0)+
∂x(N )
∂u(0)
N
−1
X
"
i=1
#
∂H i
∂H i
δu(i) +
δx(i) − λT (i)δx(i)
∂u(i)
∂x(i)
(2.2-11)
É chiaro che la derivata di H rispetto a x0 , avendo posto noi il vincolo
iniziale, non é legittimo farla, perché la variazione deve essere sempre
fatta compatibilmente con i vincoli (per questo motivo l’abbiamo considerata nulla).
Ora possiamo sfruttare il grado di libertá creato introducendo i moltiplicatori di Lagrange.
Pongo quindi:

∂(Ψ[x(N )])

T


 λ (N ) = Ψx(N ) (x(N )) =
∂x(N )
i

def ∂(H )

i

 λT (i) = Hx(i)
(x(i), u(i), λT (i + 1)) =
∀i = 1, ...., N − 1
∂x(i)
(2.2-12)
in modo tale che i termini nella δJ si cancellano e otteniamo:
δJ =
N
−1
X
i
Hu(i)
(x(i), u(i), λT (i + 1))δu(i)
(2.2-13)
i=0
Ora noi ricordiamo che δJ doveva essere ≥ 0 ∀δu(i)(é come se il problema fosse non vincolato); ma del resto é possibile che la variazione
di u(k) possa avvenire sia in un verso che nell’altro. Inoltre l’Hamiltoniana é intrinsecamente positiva essendo la somma di un costo e di un
vincolo (che al piú é soddisfatto). Quindi tutto ció é possibile solo se
il gradiente dell’Hamiltoniana si annulla con quelle traiettorie in ogni
istante di tempo; ovvero arriviamo a dire che:
i
Hu(i)
(x(i), u(i), λ(i + 1)) = 0
(2.2-14)
• Terzo passo: Non é vero che io sto facendo una variazione, ma io
vado a trovare le λT le u e le x che soddisfano queste equazioni (vedi
sotto)e vado a vedere quali sono i candidati alle soluzioni ottime del
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
30
mio controllo:


λT (N ) = Ψx(N ) (x(N ))



T
λ (i) = H
(a)
T
(x(i), u(i), λ (i + 1))
x(i)



 H i (x(i), u(i), λT (i + 1)) = 0
u(i)
(b)
(2.2-15)
(c)
Abbiamo ottenuto quello che volevamo: trasformare il problema
in un set di equazioni.
Vediamo se é verificata la condizione necessaria di solubilitá, ovvero che il numero di equazioni sia uguale al numero di incognite. Le
nostre incognite sono: λ, x, u; ove x → n variabili, u → p variabili,
λ → n variabili10 . Da qui abbiamo (2n + p) incognite in ogni istante
di tempo.
Valutiamo le equazioni:
la (a) + (b) ⇒ ci restituisce n equazioni (poiché le componenti di x
sono n), la (c) ⇒ ci restituisce p equazioni (poiché le componenti di u
sono p). Le altre n equazioni ci sono date da:

 x(k + 1) = f (x(k), u(k))

x(0) = x0
(d)
(2.2-16)
(e)
La (b) é una funzione alle ricorrenze all’indietro nel tempo (λ(i) dipende da λ(i + 1)) e la (a) rappresenta la condizione terminale dalla
quale, tramite la (b) ricavo λ(N − 1), λ(N − 2) e cosi via.
Questo é un problema a due valori di frontiera11 ,é un problema
fortemente interdipendente.
Quanto visto fin ora serve a conoscere i candidati alla soluzione, ovvero non sono direttamente i minimi, ma devo controllare se questi
candidati sono una soluzione ottimale.
10
Numero uguale a x per il prodotto.
due equazioni differenziali che si risolvono una andando indietro nel tempo e l’altra
andando avanti nel tempo
11
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
31
Osservazioni: Nel nostro esempio, non ci sono vincoli sul controllo. Ma
se come nella realtá delle cose io dovessi avere un vincolo sull’ampiezza del
segnale di controllo, allora dovrei stare attento a dire che la variazione che
io faccio della u( k) deve essere coerente e rispettosa dei vincoli.
Cosa succederebbe se io avessi dei vincoli xi (N ) = xi per qualche i?
Succederebbe che quando faccio il gradiente rispetto alle componenti di
x(N ), allora ci sono alcune derivate che devo considerare necessariamente
nulle, perché non ammettono una variazione essendoci uno stato terminale
definito.
In altri termini, se avessimo una variazione:
x∗i (N ) + δxi (N )
(2.2-17)
per essere compatibile con il vincolo, dovrebbe essere necessariamente nulla
(δxi (N )).
Se avessi bloccato una delle componenti terminali, non avrei potuto scrivere
λT (N ) = Ψx (x(N )); infatti, se avessimo bloccato la prima componente,
tutte le componenti eccezion fatta per la prima devono verificare quella
condizione, perché per la prima la variazione é giá zero e non ho piú necessitá
di associar un valore di lambda per semplificare la mia espressione (come
avevamo fatto nella dimostrazione).
Allora mi viene meno una condizione da λ(N ) ma ne aggiungo una per dire
che quella componente terminale é fissata. In definitiva:
Def. 2.2.3. Il gioco delle condizioni iniziali e terminali, é a somma costante;
il numero delle equazioni é sempre lo stesso.
Come situazione estrema avremo tutto lo stato terminale bloccato, il che
corrisponde ad avere nessuna condizione sulle λT .
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
32
2. Problemi di Minimizzazione Vincolata
Esempio: Problema di minima energia
Vogliamo minimizzare questa cifra di merito:
min
N
−1
X
k=0
1 2
u (k)
2
sottoposta a questi vincoli:
x(k + 1) = x(k) + u(k)
x(0) = 10
(2.2-18)
x(N ) = 0
Ho scelto u2 perché rappresenta l’energia del segnale di controllo. Potremmo
porlo, generalizzando, come un problema di minima energia.
• Prima di tutto bloccando lo stato iniziale e terminale, bisogna porsi
un problema di controllabilitá. É controllabile questo sistema?
Ovviamente si, in quanto abbiamo una variabile di stato e una variabile di controllo. Con questa variabile di controllo io domino tutto lo
stato, posso fare quello che voglio con questo sistema.
In generale:
Def. 2.2.4. Quando le variabili di controllo sono pari alle variabili di
stato, il problema della controllabilitá non si pone in quanto la matrice
B é giá a pieno rango (C=B AB...).
• L’ottimizzazione ha senso se il problema ammette una molteplicitá di
soluzioni. Il nostro problema ammette una molteplicitá di soluzioni,
poiché l’orizzonte di controllo é piú lungo di quello strettamente necessario. Se fosse stato dell’ordine della dimensione del sistema, dovevo
pormi il problema, perché in quelle circostanze la situazione puó essere
addirittura unica.
• Svolgimento: Non ho condizioni terminali sulla lambda. Infatti giustamente non avevo messo il costo terminale perché sarebbe stato un
non senso in quella cifra di merito.
Perché dice tu la blocchi e vuoi che lo stato arrivi in quel punto li e
ci metti un costo terminale? diventerebbe una costante! Se io avessi
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
33
messo il costo terminale, siccome l’istante terminale é quello, il costo terminale sarebbe diventato un costo fisso, ma i costi fissi non
partecipano all’ottimizzazione, si devono pagare e basta.
1
H = u2 (k) + λ(k + 1)x(k) + λ(k + 1)u(k)
2


λ(k) = λ(k + 1)





 x(k + 1) = x(k) + u(k)



x(0) = 10










x(N ) = 0
Hu = u(k) + λ(k + 1) = 0 ⇒ u(k) = −λ(k + 1)
Il candidato a essere ottimo é unico in questo caso:
λ(k) = λ(k + 1)
costante ⇒ u∗ (k) = −λ
∀k ⇒ λ
x∗ (k + 1) = x∗ (k) − λ ⇒


x∗ (1) = x∗ (0) − λ = 10 − λ



x∗ (2) = x∗ (1) − λ = 10 − 2λ
..
.




avremo che x∗ (N ) = 10 − N λ.
(
Ma
x∗ (N )
=0
⇒λ=
10
N
⇒
u∗ (k) = − 10
N
x∗ (k) = 10 −
10k
N
Se io voglio risparmiare sull’energia del mio controllo, piú é lungo il
mio intervallo, piú devo ripartire piccole quantitá. L’esempio serve a
far capire che l’importante é avere un numero di equazioni al contorno sufficienti a risolvere le equazioni. La seconda questione é il fatto
che la u∗ é un espressione a ciclo aperto, non é funzione di x. Il
che significa dire che senza sapere quello che sta succedendo applico il
controllo, accada quel che accada.
Ma essendo le mie espressioni deterministiche, non puó accadere nulla,
o faccio il ciclo aperto o il ciclo chiuso, é sempre la stessa cosa.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
34
2. Problemi di Minimizzazione Vincolata
Perché abbiamo l’ispirazione a fare il controllo a ciclo chiuso? Nasce
dal fatto che la nostra modellistica é parziale, e quindi soffre di qualche approssimazione. E allora il nostro pensiero é che se io faccio una
misura su come stanno andando le cose e collego questa misura con la
mia azione di controllo, male non faccio. In questo momento, peró, é
importante capire che a ciclo chiuso o ciclo aperto non cambia nulla.
Del resto in questo caso é semplice esprimere u∗ (k) in funzione di x∗ (k).
Ma in linea di principio, non posso sempre trasformare una legge di
controllo a ciclo aperto in una a ciclo chiuso.
2.3
Problema di Controllo Ottimo T.C.
Avremo sempre un funzionale del tipo:
Z T
L(x(t), u(t))dt
J = Ψ(x(T ) +
(2.3-1)
0
La prima forma di problema che esaminiamo é la seguente:












min
u(·)
J
t ∈ [0, T )

s.a.





ẋ = f (x(t), u(t))




x(0) = x
N
N
0 x ∈ < ,u ∈ <
(2.3-2)
La minimizzazione di questo funzionale va fatta sulla sequenza ottima u∗ (t),
con t appartenente all’intervallo [0, T ), dove la parentesi aperta dell’intervallo ci ricorda che l’ingresso all’istante T produce un azione all’istante T +∆T
con ∆T infinitesimo.
Se chiudiamo la parentesi non cambia nulla nel calcolo dell’integrale, perché
l’estremo dell’intervallo é un punto di misura nulla.
Invece di applicare il Principio di Bellman, e quindi ottenere direttamente
una soluzione in retroazione dello stato, utilizziamo l’approccio variazionale,
trovando direttamente la u∗ (t) ottima che in ingresso al sistema produrrá
la x∗ (t) ottima. L’approccio variazionale ha il vantaggio di consentire di
risolvere il problema nella sua totalitá; é vero, troverete delle candidate ottime, peró effettivamente avrete una sequenza d’ingresso, che non é detto
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
35
possa essere scritto in maniera analitica, ma sicuramente in maniera numerica questo problema si puó risolvere.
Vediamo la metodologia di risoluzione:
1. immagino di conoscere il punto ottimo u∗ (t), x∗ (t);
2. applico una piccola perturbazione nel suo intorno:
u∗ (t) + δu(t); x∗ (t) + δx(t);
Che significa perturbare un punto funzionale? Supponiamo di essere
nel caso monodimensionale. La x∗ (t) parte da x0 e avrá un certo andamento
fino a T , che supponiamo di conoscere. Perturbare questa funzione significa
sommare un’altra funzione del tempo che mi fará cambiare leggermente il
suo andamento. Se poi tutte le funzioni perturbate le mettiamo nel funzionale, esso deve crescere o rimanere uguale, non puó decrescere altrimenti il
punto ottimo (u∗ ,x∗ ) non sarebbe minimo.
La dimostrazione si imposta come nel caso tempo discreto; si parte dalla
Lagrangiana:
J = Ψ(x(T )) +
RT
0
L(x(t), u(t))dt +
RT T
0 λ (t)(f (x(t), u(t)) − ẋ)dt
λ(t) ∈ <N
Dove λT (t)ẋ é una traiettoria di variabili aggiunte; utilizziamo l’integrale
perché il vincolo é definito per tutti gli istanti di tempo.
Definisco l’Hamiltoniana:
H(x(t), u(t), λ(t)) = L(x(t), u(t)) + λT (t)f (x(t), u(t))
e avró:
Z T
J = Ψ(x(T )) +
0
H(x(t), u(t), λ(t))dt −
Z T
[λT (t)ẋ]dt
(2.3-3)
0
Perturbiamo il nostro funzionale e ovviamente la lagrangiana perturbata
meno quella ottima deve essere maggiore uguale a zero, ovvero:
J(x∗ (t) + δx(t), u∗ (t) + δu(t), λ(t)) − J(x∗ (t), u∗ (t), λ(t)) ≥ 0
(2.3-4)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
36
Risolvendo il problema, avremo il seguente set di equazione differenziali:
 T

λ (T ) = Ψx(T ) (x(T ))





 −λ̇T = Hx (x(t), u(t), λ(t))



(a)
(b)
Hu (x(t), u(t), λ(t)) = 0 ∀t ∈ [0, T ]










ẋ = f (x(t), u(t))
(c)
(2.3-5)
(d)
x(0) = x0
(e)
Riconosciamo ancora una volta il problema a 2 valori di frontiera:
avendo 2 equazioni differenziali, una definita tramite una condizione iniziale
(d,e) e l’altra con una condizione terminale (a,b) (il segno meno davanti a λ̇
ci fa capire che é un equazione differenziale all’indietro). Il gradiente di H
rispetto a u (in ogni istante di tempo) nullo, rappresenta un vincolo statico.
In generale avremo 2n + m equazioni e 2n + m incognite.
2.3.1
Principio del massimo di Pontryagin
Bisogna minimizzare un funzionale del tipo:







































J
min
u(·)
t ∈ [0, T ]
s.a.
ẋ = f (x(t), u(t))
(2.3-6)
x(0) = x0
u∈U
xi (T ) = xi
xj (T )
liberi
i = 1, ..., p
j = p + 1, ..., n
U, l’insieme dei controlli ammissibili, non é un aperto. Se fosse aperto, la
soluzione sarebbe quella di prima, potremmo considerare tutte la variazioni
possibili. Mentre se é ad esempio un chiuso, e il punto ottimo si trova
sulla frontiera, non possiamo considerare tutte le variazioni e non possiamo
scrivere Hu = 0 per tutte le u! Definiti i vincoli, la soluzione di questo
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
37
problema sará:


λj (T ) = Ψxj (x(T )) j = p + 1, ....., n







−λ̇ = Hx (x(t), u(t), λ(t))





 H(x(t), u(t), λ(t)) M inimizzato rispetto














a
u
∀t ∈ [0, T ]
ẋ = f (x(t), u(t))
x(0) = x0
xi (T ) = xi
i = 1, ..., p
(2.3-7)
Osservazioni:
1. Le prime p λ non sono considerate, ma solo quelle da p + 1 a N .
2. H minimizzata rispetto a u se il problema é a minimizzare, H massimizzata rispetto a u se il problema é a massimizzare.
2.3.2
Principio del Massimo con T Libero
Ultimo problema é quello che prevede la minimizzazione rispetto a u e rispetto T . In questo caso T diventa una variabile di minimizzazione, quindi
il tempo sará soggetto a un problema di controllo ottimo, lo settiamo noi
per far si di riuscire a minimizzare quel funzionale e risolvere il problema.
Le condizioni sono le stesse di prima (equazione 2.3-6).
La soluzione del problema é la stessa di prima (equazione 2.3-7) alla quale
si aggiunge la condizione H(x(T ), u(T ), λ(T )) = 0, cioé l’hamiltoniano valutato nel punto terminale (che noi non conosciamo) é nullo. É sicuramente
un’equazione scalare e pareggia il conto che abbiamo un’incognita scalare
T . In questo caso é opportuno che ci sia il vincolo sullo stato terminale, nel
caso non ci fosse il problema avrebbe comunque soluzione ma non dal punto
di vista ingegneristico.
É inoltre opportuno che la u sia vincolata, perché se io voglio spostarmi
da un punto a un altro nel tempo minimo la u puó pure schizzare a infinito. Quindi queste condizioni non sono puramente matematiche, servono
per risolvere il problema dal punto di vista ingegneristico
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
38
2.3.3
Problema di Controllo Ottimo a Tempo Minimo
Partiamo dall’equazione 2.3-6, questo problema é parente di quelli visti prima, infatti basta porre Ψ(x(T )) = 0 e L = 1
12 .
La soluzione é 2.3-7 con la condizione H(x(T ), u(T ), λ(T )) = 0.
In questo caso si capisce che lo stato terminale deve essere specificato, e
bisogna vincolare anche l’ingresso di controllo altrimenti per minimizzare il
tempo saremmo portati a dire che u é infinito. Se i vincoli u e xi non ci fossero, il problema avrebbe comunque soluzioni, ma non avrebbero significato
fisico, ingegneristico, sarebbe semplicemente un problema matematico.
2.3.4
Controllo Bang Bang
Ne parliamo facendo un’applicazione del problema di controllo a tempo minimo.
Abbiamo un carrellino al quale applichiamo una forza di controllo u per spostarlo:
Di questo sistema vogliamo minimizzare T , aggiungendo quindi i vincoli
x(T ) = 0 (il carrellino deve tornare nell’origine), é opportuno vincolare la
u. Modello:



 ẋ1 = x2
ẋ = u
2


x(0) = x
0


minu(·),T T





s.a.

x(T ) = 0





(2.3-8)
(2.3-9)
−1 ≤ u ≤ 1
Per risolvere il problema:
12
J=
uet
RT
0
(1)dt = T , quindi bisogna minimizzare l’indice di costo J rispetto alla variabile
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
39
1. Scriviamo l’hamiltoniana e poi ci troviamo i valori di λ:
H = 1 + λ1 x2 + λ2 u
−λ̇1 = 0 ⇒ λ1 = c1
−λ̇2 = λ1 ⇒ λ2 = c2 − c1 t
Potrebbe essere λ2 una retta identicamente nulla? Si,con c1 = c2 = 0.
Ció implica H = 1, ma non é compatibile perché all’istante terminale
deve essere H(x(T ), u(T ), λ(T )) = 0.
2. Allora λ2 avrá le seguenti forme:
In corrispondenza di queste forme, siccome nella minimizzazione di H
rispetto a u troviamo solo λ2 , avremo i segnali di controllo in figura.
Queste tipologie di controllo sono dette Soluzioni Bang Bang (nel
senso che do o tutto o niente). Abbiamo queste soluzioni perché l’Hamiltoniana é lineare rispetto alla variabile u, e quindi il nostro ingresso
si trova sulla frontiera della regione di ammissibilitá del nostro segnale
di controllo.
Quindi ogni qualvolta H é lineare rispetto a u, abbiamo soluzioni bang
bang.
Ritornando al problema, per la soluzione adottiamo il metodo grafico (per
non fare tutti i conti). In particolare, considerando x10 , x20 rispettivamente
come la posizione e la velocitá iniziale:
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
40
2. Problemi di Minimizzazione Vincolata
1. Se u(t) = 1, si ottiene:
x2 (t) = x20 + t
1
x1 (t) = x10 + x20 t + t2
2
eliminando la variabile t si ottiene una famiglia di traiettorie paraboliche descritte dall’equazione:
1
1
x1 (t) = x22 (t) + x10 − x220
2
2
2. Se u(t) = −1, si ottiene:
x2 (t) = x20 − t
1
x1 (t) = x10 + x20 t − t2
2
eliminando la variabile t si ottiene una famiglia di traiettorie paraboliche descritte dall’equazione:
1
1
x1 (t) = − x22 (t) + x10 + x220
2
2
Tali famiglie di traiettorie possono essere rappresentate nel piano x1 x2 (detto piano delle fasi) come mostrato nella figura seguente:.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
41
É evidente che siano queste le curve, perché partendo da un punto che si
trova a destra dell’origine con velocitá negativa, con u = 1 lo stiamo rallentando fino a portarlo a velocitá nulla e continuiamo a spingere in quella
direzione. Se u = −1 si fanno le stesse considerazioni.
Allora per scegliere il nostro segnale di controllo, dobbiamo considerare la
condizione iniziale.
Graficamente, siccome la condizione terminale ci dice di riportare il carrello
nell’origine, consideriamo dei due grafici solo le curve passanti per l’origini:
1. Se la condizione é A ⇒ applico u = +1;
2. Se la condizione é B ⇒ applico u = −1;
3. Se la condizione é C ⇒ fino ad un certo δT applico u = −1 per
riportare C sulla curva che passa per l’origine, poi vado con u = +1;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
42
2.4
Problema LQR T.D.
−1
1
1 NX
J = xT (N )Qf x(N ) +
[xT (i)Qx(i) + uT (i)Ru(i)]
2
2 i=0
Qf ≥ 0;
Q ≥ 0;
(2.4-1)
R>0
Se il mio costo é quadratico, il rendez-vous si avrá non all’istante finale, ma
all’istante iniziale(ovvero a 0) perché é l’unico punto in cui il costo sarebbe
stato zero; quindi questo in realtá non si chiama problema LQ, ma LQR13 ,
perché il mio problema é di regolazione a zero del mio sistema. Qf e Q sono
semidefinite positive, R definita positiva poiché il costo del controllo é per
forza maggiore di zero (non esiste un controllo che non costi).
Scelta ottima: Voglio portare il mio sistema vicino a 0 in N passi.
Perché non resto sempre in zero14 ? Ovviamente perché c’é la condizione
iniziale: puó essere considerata come un disturbo, e quindi io con l’azione
di controllo devo riportare il sistema a 0 spendendo qualcosa.
Il problema é sottoposto al seguente vincolo:
x(i + 1) = Ax(i) + Bu(i)
(2.4-2)
Vediamo le equazioni generate per effetto del metodo variazionale:
1. definisco l’Hamiltoniana:
1
H i = [xT (i)Qx(i) + uT (i)Ru(i)] + λT (i + 1)[Ax(i) + Bu(i)]
2
2. Svolgendo i calcoli, il problema é ricondotto al seguente set di equa13
Regolatore Lineare Quadratico
Cioé non mi muovo dall’origine in modo tale che io non spendo niente ed il mio costo
é nullo.
14
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
zioni:
43
 (

λT (N ) = xT (N )Qf



n



λT (i) = xT (i)Q + λT (i + 1)A


 n
p uT (i)R + λT (i + 1)B = 0
(2.4-3)


(




x(i + 1) = Ax(i) + Bu(i)



n
x(0) = x0
Trasponendo le espressioni, la legge di controllo candidata ad essere é:
u∗ (k) = −R−1 B T λ(k + 1)
⇒
x(k + 1) = Ax(k) − BR−1 B T λ(k + 1)
(2.4-4)
2.4.1
Soluzione su orizzonte finito: DRE
La condizione λ(N ) = Qf x(N ) ci suggerisce di cercare una soluzione del
tipo λ(k) = P (k)x(k) con P (N ) = Qf ; se troveró un risultato congruente,
allora sará la soluzione:
P (k)x(k) = AT P (k + 1)x(k + 1) + Qx(k)
x(k + 1) = Ax(k) − BR−1 B T P (k + 1)x(k + 1) ⇒
⇒ x(k + 1) = [I + BR−1 B T P (k + 1)]−1 Ax(k)
T
h
P (k)x(k) = A P (k + 1) I + BR
−1
T
B P (k + 1)
i−1
A + Q x(k)
Siccome la x(k) deve essere qualunque, posso scrivere:

h
i−1

 P (k) = AT P (k + 1) I + BR−1 B T P (k + 1)
A+Q


(2.4-5)
P (N ) = Qf
Quella appena scritta é una DRE, Equazione di Riccati Discreta. É
sicuramente un sistema non lineare (ci sono matrici inverse, trasposte...),
ma si tratta di non linearitá di tipo debole. La nostra legge di controllo é
quindi:
u∗ (k) = −R−1 B T P (k + 1)[I + BR−1 B T P (k + 1)]−1 Ax(k)
(2.4-6)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
44
La legge di controllo é ottenuta direttamente a ciclo chiuso, e non era scontato. Lo sarebbe stato solo se avessimo utilizzato il Principio di Ottimalitá di
Bellman: questo principio infatti va alla ricerca di soluzione che si possono
esprimere come funzioni dello stato. Perché il meccanismo della programmazione dinamica, quello di andare a ritroso nel tempo, fa dipendere la
soluzione dallo stato e dall’istante nel quale state calcolando il problema di
ottimalitá. E questa catena a ritroso si ferma arrivati sulla condizione iniziale: é qui che conosciamo lo stato, ed avendo tutta la politica di controllo
calcolata in termini di stato, ancorché non noto, a quel punto potete andare
in avanti, perché avete incontrato il punto in cui lo stato lo conoscete.
Se andassi adesso a sostituire la u∗ nella cifra di merito, questa cesserebbe di essere funzione di u e diventerebbe una funzione quadratica in x. Il
risultato, alla fine dei conti, é estremamente semplice:
1
J ∗ = xT (0)P (0)x(0)
2
(2.4-7)
Allora se voi volete sapere quanto vale l’indice di qualitá, non vi mettete a
fare tutti i conti, ma risolvete l’eq. di Riccati (che puó essere risolta anche
off-line) e posso dire di poter sempre conoscere la sequenza P(0),P(1)...P(N).
Questo é vero anche per sistemi T.V., perché le info sul modello devono essere note.
Spesso questa cifra di merito la scrivo come la J ∗ (x0 , 0 − N ), perché in effetti dipende dalla soluzione dell’eq di Riccati e dalla condizione iniziale. E
naturalmente dovrei mettere la lunghezza del mio problema, poiché é chiaro
che l’eq.di Riccati inizia con una P (N ) = Qn .
Se io adesso partissi da 1 e arrivassi a N, avrei uno step in meno rispetto
a quello di prima, e una condizione iniziale qualunque; se come condizione iniziale mettessi quella del problema precedente, la soluzione di questo
problema sarebbe esattamente la stessa di prima, avremo una J(x(1), 1, N )
2.4.2
Soluzione su orizzonte infinito: ARE
Che succede se N tende all’infinito? In questo caso l’idea di avere un costo
terminale é sbagliata, perché non ci arrivo mai all’istante terminale.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
45
Def. 2.4.1. Nel caso di orizzonte infinito, la soluzione dell’eq di Riccati
proviene da una soluzione che arriva dall’infinito.
Ora, se questo sistema ricorsivo di calcolo della P (k) é stabile asintoticamente, le evoluzioni transitorie di questo calcolo devono sparire, perché
provengo dal futuro e il mio presente é infinitamente lontano dal futuro.
Il che vuol dire che in qualunque istante k io mi trovi, vedo una soluzione
che proviene dall’infinito. Questa soluzione si porta dietro una Q, che é
una quantitá costante, si comporta come se fosse un ingresso a gradino per
il nostro sistema.
Se questo sistema lo faccio evolvere appunto per un tempo infinito, ho una
soluzione di regime, il sistema non cambierá piú il suo stato. Analiticamente
ció significa:
P (k) = P (k + 1) = P
(2.4-8)
ovvero ottengo la Soluzione di Regime di Riccati:
P = AT P (I + BR−1 B T P )−1 A + Q
(2.4-9)
Osservazioni: In un’equazione algebrica non ho piú bisogno della condizione iniziale, perché nel regime il sistema non ricorda lo stato iniziale.
Ma cos’é la soluzione dell’eq di Riccati? É una matrice i cui elementi a un
certo punto non cambieranno piú.
In generale, la soluzione dell’equazione di Riccati posso sempre calcolarla
cosi: ho un Q, vado all’indietro e mi trovo la soluzione di regime. Tra l’altro, cosi facendo, io trovo una sola soluzione dell’eq di Riccati, perché se
il sistema é stazionario e vado all’indietro per un tempo sufficientemente
lungo, avró sempre una matrice.
Quando io invece impongo di trovare la soluzione come abbiamo fatto noi,
facciamo un altro ragionamento: dico che esiste la condizione di equilibrio,
e la posso trovare come soluzione dell’eq. algebrica di Riccati (DRE su orizzonte infinito). L’eq algebrica di Riccati peró potrebbe avere piú soluzioni;
quale sarebbe quella che si ottiene facendo la ricorsione all’indietro? In altre parole: mentre nella ricorsione all’indietro la soluzione é unica (perché
vado di passo in passo e ottengo sempre una matrice), in questo caso quando risolvo questa equazione potrei avere piú soluzioni e trovarmi di fronte
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
46
all’imbarazzante situazione di dire ma qual’é quella giusta?. Questo peró
é un problema relativo, perché alla fine l’eq. di Riccati la risolvo ricorsivamente, ma é comunque utile sapere questo ragionamento.
Su orizzonte infinito la mia strategia di controllo sará la seguente:
u∗ (k) = −R−1 B T P (I + BR−1 B T P )−1 Ax(k) = −Kx(k)
(2.4-10)
Ricapitolando: Un sistema stazionario, su orizzonte finito, ammette una
legge di controllo ottimo i cui guadagni sono variabili (tempo varianti); la
legge di controllo ottimo, su orizzonte infinito, finisce con essere una banale
retroazione di stato con la struttura della K ben assegnata.
Quando si fa una struttura di questo tipo, mi viene il legittimo dubbio di
dire: Ma questa legge di controllo é stabilizzante?( perché io poi alla
fine sono arrivato a dire che ho il sistema, ho fatto il controllo ottimo, ci ho
messo questa K e ho chiuso il ciclo di controllo).
Questo ciclo di controllo é asintoticamente stabile? Prima il problema dell’asintotica stabilitá non me lo ero posto perché eravamo su orizzonte
finito di tempo, mentre la stabilitá é una proprietá asintotica, quindi é solo
se faccio tendere N all’infinito me ne devo preoccupare.
La convergenza dell’indice di qualitá implica la stabilitá del sistema? In linea di principio no, perché nella composizione di Q (che é
semidefinita positiva, mentre se fosse definita positiva non dovremmo porci
il problema) potrebbe darsi che ci sono delle direzioni di Q per cui xT Qx = 0,
e queste direzioni sono proprio quelle dei modi instabili del sistema. Nella
cifra di merito, quindi, non si vedono i contributi dovuti ai modi instabili,
perché stanno proprio in quei sottospazi nei quali quella forma quadratica
vale 0.
Allora devo fare un’ipotesi, ovvero devo forzare il fatto che tutti i modi
devono comparire nella cifra di merito, e quindi la Q non puó essere piú
arbitraria, ma deve essere scelta in maniera oculata. A questo proposito,
ci ricordiamo che una matrice semidefinita positiva puó sempre essere vista
come fattorizzazione di due matrici (Q = C T C), garantendomi che la coppia
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
47
(A,C) sia completamente osservabile. In questo modo forzo la mia cifra di
merito a contenere in se tutti i modi. (C non é l’uscita del sistema, ma una
matrice di peso).
Problema di regolazione a zero dell’uscita
Si potrebbe pensare che come prima abbiamo ottenuto una retroazione di
stato, se adesso considero una cifra di merito come:
y T (N )Qf y(N ) +
N
−1
X
y T (k)Qy(k) + uT (k)Ru(k)
(2.4-11)
k=0
potrei avere una retroazione di uscita. Ma purtroppo non é cosi, perché
in realtá siccome y = Cx, é come se stessi di nuovo scrivendo xT C T QCx,
ovvero un termine quadratico in x. La soluzione sará di nuovo quella di
prima dove al posto di Q ci sará C T QC.
Problema del Tracking Ottimo
Vorrei che la mia y(k) seguisse una certa traiettoria g(k) assegnata in maniera ottimale. Posso costruire una cifra di merito basata sull’errore y(k)−g(k)
e andarlo a pesare quadraticamente. E avró quindi:
costo
terminale +
N
−1
X
[y(k) − g(k)]T Q[y(k) − g(k)]
(2.4-12)
k=0
La soluzione sará un’azione in feedforward.
2.5
Problema LQR T.C.
Definita la cifra di merito e le condizioni:













1
1
J = xT (T )Qf x(T ) +
2
2
ẋ = Ax(t) + Bu(t)
Z T
(xT (t)Qx(t) + uT (t)Ru(t))dt
0
(2.5-1)
x(0) = x0
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
48
In questo caso l’Hamiltoniana sará:
1
H = (xT (t)Qx(t) + uT (t)Ru(t)) + λT (t)(Ax(t) + Bu(t))
2
(2.5-2)
Il set di equazioni sará:


 λ(T ) = Qf x(T )





−λ̇ = Qx + AT λ



Ru + B T λ = 0










(2.5-3)
ẋ = Ax(t) + Bu(t)
x(0) = x0
La candidata ad essere ottima é:
u(t) = −R−1 B T λ(t)
2.5.1
Soluzione su orizzonte finito: CRE
Ipotizzo che la condizione terminale valga per ogni istante di tempo, risolvo
e vedo se é giusta; se la verifica risulta buona allora vuol dire che ho risolto
bene.
La condizione λ(T ) = Qf x(T ) ci suggerisce di ricercare le soluzioni tra le
λ(t) = P (t)x(t); in particolare so per certo che P (T ) = Qf . Quindi ho:
u = −R−1 B T λ(t) = −R−1 B T P (t)x(t)
−λ̇ = −(Ṗ x + P ẋ) = Qx + AT P x ⇒
(2.5-4)
⇒ −Ṗ x = P Ax − P BR−1 B T P x + Qx + AT P x
Dovendo valere per ogni x, ho:
−Ṗ = Q + AT P + P A − P BR−1 B T P
(2.5-5)
Che rappresenta l’equazione di Riccati a Tempo Continuo (CRE).
In questo caso, anche utilizzando l’approccio variazionale, la soluzione sará
comunque in retroazione di stato:
u(t) = −K(t)x(t)
(2.5-6)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
2.5.2
49
Soluzione su orizzonte infinito
La matrice P diventa costante. Quindi Ṗ = 0. L’equazione di Riccati si
semplifica e diventa:
Q + AT P + P A − P BR−1 B T P = 0
(2.5-7)
E l’azione di controllo avrá un guadagno tempo invariante:
u(t) = −Kx(t)
2.6
(2.5-8)
Metodi diretti
In generale un problema di controllo ottimo si risolve costruendo l’hamiltoniana, applicando il metodo variazionale e ottenendo un set di equazioni
differenziali a due punti di frontiera. Questi metodi, definiti Impliciti, non
si usano piú, perché hanno problemi numerici e sono onerosi dal punto di
vista computazionale.
Quello che si utilizza spesso negli ultimi 30 anni sono i Metodi Diretti: prevedono di trasformare questo problema in Programmazione non Lineare statica, e poi utilizzare una delle routine del Matlab o uno dei suoi tools. Il problema della trasformazione é data dal vincolo dinamico: ~xk+1 = f (~xk , ~uk ).
Facciamo delle ipotesi semplificative:
1. La funzione di costo é convessa e il sistema é LTI : xk+1 = Axk + Buk ;
2. Non esiste nessun vincolo sullo stato terminale: Ψ(x(N )) = 0; o meglio, lo stato terminale é totalmente specificato ed uguale al vettore
nullo: x(T ) = 0
3. Supponiamo N finito. Escludiamo il caso in cui l’orizzonte sia infinito.
Se, infatti, fosse infinito, potrei ricondurmi a un problema su orizzonte
finito ed ottenere una soluzione sub-ottimale di questo problema di
minimizzazione mettendo N sufficientemente grande15 e ponendo lo
stato terminale uguale a 0. Ovviamente la scelta di N dovrá in ogni
caso dipendere dal minimo di J.
15
quanto grande non lo sa nessuno, bisogna provare
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
50
2. Problemi di Minimizzazione Vincolata
Sotto queste ipotesi, il problema diventa il seguente:
min
~
u
N
−1
X
l(~x(i), ~u(i))
(2.6-1)
i=0


s.a







~xk+1 = Axk + Buk





~
x(T ) = ~0


~x(0) = x0






~u ∈ U






~x ∈ X
Ovviamente nel momento in cui riesco a raggiungere lo scopo che mi sono
prefissato, cioé trasformare questo problema in un problema di Programmazione non Lineare statica, riesco a calcolare la sequenza delle u in un’unica
soluzione; non ci sará qualcosa di ricorsivo, come nel caso LQ in cui calcoliamo le u una per volta. Ció che faccio in realtá é determinare tutta la u
ad ogni istante temporale in un’unica procedura di minimizzazione. Questo
é leggermente diverso da quello che abbiamo visto nel controllo LQR, in
cui si presuppone per analogia con la condizione terminale che il controllo
sia lineare rispetto allo stato. Infatti, nel controllo LQR, supponiamo che
u = kx, e che quindi la u ottimale sia esprimibile in forma di retroazione.
Ma chi ha detto che deve essere cosí? Sono io che la cerco cosi furbescamente perché so che poi posso dimostrare che quella é la scelta ottimale. Ma
in generale questo non é vero. Ora cerchiamo una soluzione in anello
aperto. Se poi vogliamo esprimerla in funzione dello stato possiamo sempre farlo, ma sará un’ipotesi, non un qualcosa di necessario che si fa per
risolvere il problema.
La soluzione risulterá essere una sequenza del tipo [u0 , ..., un−1 ] su orizzonte
finito; [u0 , ..., un−1 , 0, ..., 0] su orizzonte infinito.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
2.7
51
Controllo MPC
Il modello é il seguente:
min
k+N
X−1
~
u











l(~x(i), ~u(i))
(2.7-1)
i=k
s.a
~xk+1 = Axk + Buk
~x(k + N ) = ~0










~u ∈ U
~x ∈ X
Ad ogni k mi determino il controllo ottimo che mi porterebbe lo stato a 0
nei successivi N campioni. Ad ogni k risolvo questo problema (é oneroso) e
dalla u ottimale che mi viene considero solo il primo campione.
u
[
primo
k
|{z}
, . . . , uk+N −1 ]
campione
É evidente che questo controllo si puó utilizzare solo quando ci sono particolari sistemi (perché particolarmente oneroso): sono sistemi con dinamiche
molto lente (ad esempio un camion che porta merce al porto in 8 ore), e quindi nonostante i calcoli complessi, se io impiego 6 ore a calcolare il controllo
con il pc non succede nulla. In definitiva si puó applicare questo controllo
a sistemi con dinamiche molto piú lente di quelle che servono a calcolare il
controllo. Sicuramente é un controllo che non puó essere seguito nell’ordine
delle migliaia di Hertz (eppure una banda di 1KHz non é elevata, lo é per
un sistema meccanico, ma giá per i sistemi audio (20KHz) é improponibile
come controllo).
Il vantaggio consiste nel fare un’ottimizzazione legata al futuro, si tiene conto di come evolve il sistema: ecco perché Model Predictive. Si hanno
vantaggi quando ci sono dei disturbi, perché la legge di controllo non
é unica. Non é un controllo adattativo, ma la legge si modifica ogni k
per tenere conto degli (n − 1) campioni successivi.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
52
2.7.1
Esempio: Supply Chain Management
Consideriamo n magazzini. Indichiamo con xi (k) la quantitá di merce contenuta nel magazzino i-esimo (i varia da 1 a n ovviamente e rappresenta la
variabile spaziale, k é la variabile temporale). Abbiamo m links (linee di collegamento unidirezionale). Con uj (k) indico la quantitá di bene trasportata
sul link j-esimo all’istante k. Voglio vedere Come minimizzare i costi
di trasporto e massimizzare il guadagno. Dovremo quindi costruire
un opportuno funzionale di costo. Definiamo quindi le matrici di incidenza
del grafo:
AIN :
Aij =
AOU T :

1
se
j
0
j
non
Aij =
entra
in
i;
entra
in
i;
esce
da
i;

1
se
j
0
j
non
esce
da
i;
Come rappresentiamo la dinamica di questo sistema? La quantitá
di merce contenuta all’istante (k +1) é uguale a quella contenuta nell’istante
k piú quello che entra meno quello che esce:
xk+1 = xk + Ain uk − Aout uk
Dove uk rappresenta il vettore di tutte le quantitá che sono sugli archi
all’istante k. Possiamo riscriverla come:
xk+1 = Ixk + (Ain − Aout )uk
Possiamo facilmente notare che il sistema non é asintoticamente stabile. Avrá
tutti gli autovalori sulla circonferenza di raggio unitario, e quindi non possiamo dire nulla sulla stabilitá del sistema (sist. semplicemente stabile).
Iniziamo a definire i vincoli:
1. indicando con xmax la capienza del magazzino: 0 ≤ xi ≤ xmax (vincolo
sullo stato);
2. indicando con umax la massima capacità dei link : 0 ≤ uj ≤ umax
3. Aout u x . Il simbolo sta ad intendere componente per componente, perché sto scrivendo che un vettore é ≤ di un altro vettore, non
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
53
significa nulla. Questa condizione sta a significare che ció che esce dai
nodi non puó essere maggiore di quello che c’é.
Fissiamo le idee su questa rete logistica (n = 5, m = 9) :
Indichiamo con S(u(k)) i costi di trasporto (Shipping cost). Con W (x(k))
i costi di immagazzinamento (Warehouse cost). Le espressioni esplicite
sono16 :
W =
n
X
(xi + x2i )
i=1
S=
X
ui −
iI1
X
ui
iI2
I1 rappresenta l’insieme degli indici tali che un arco esce da un nodo ed
entra in un’altro (nel nostro caso da 1 a 7). I2 invece é l’insieme degli indici
per cui l’arco esce da un nodo e non vi rientra piú (8 e 9; in effetti queste
vanno messe a parte perché io devo massimizzare W , 8 e 9 rappresentano
le quantitá che vanno al mercato e quindi un guadagno).
Allora il mio funzionale sará:
J=
∞
X
(Si + Wi )
i=0
Il limite superiore della sommatoria é infinito perché non mi interessa di
riuscire a minimizzare questo funzionale in un numero finito di passi.
In questo modello non esiste un vincolo sul tempo di transito. Quindi, per
noi, ad ogni k c’é uno spostamento. Ovviamente si tratta di un modello, se
tra il nodo 1 e 2 ci sono 100km e tra 2 e 3 ci sono 5km, non é detto che
nello stesso k io ho lo stesso spostamento; se peró, non pensiamo ai trasporti
16
rappresentano un modello, probabilmente sperimentalmente sono quelle che hanno
dato migliori risultati
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
54
reali, ma ai magazzini della Federico II che sono quasi equidistanti e bene o
male il tempo per raggiungerli é lo stesso e ci si muove sempre con lo stesso
mezzo di trasporto, allora il modello é buono. É un buon modello anche per
i buffer di un webserver).
Scomponiamo la sommatoria in due:
•
Pn
xi
i=1 ~
= [1
|
•
Pn
x2i
i=1 ~
• ~rsT = [1


}

~x
 1
 .. 
1 . . . 1]  . 
{z
~xn
T
~
rw
= ~xTi I~xi
1··· − 1
− 1]
In generale, se volessi pesare i costi, avrei una matrice Hw ; allora riscrivo il
funzionale in questo modo:
J=
X
T
~xT Hw ~x + ~rw
~x + ~rsT ~u
k
Considero adesso un nuovo vettore ~vk = [~uk ; ~xk ]. Allora riscrivo:
"
J=
vkT
k~
P
#
Hw
0
0
0
~vk + [~rsT
T ]~
~rw
vk
⇓
J=
X
~vkT HT OT ~vk + ~rT ~vk
(2.7-2)
k
Questa funzione é quadratica, ma non si puó applicare il controllo LQ
perché ci vorrebbero solo i termini quadratici. Peró é una funzione convessa (forma quadratica, ammette un unico minimo); vediamo allora
come ragionare per ricondurci a un problema statico. Prima di tutto le
variabili decisionali sono la sequenza delle u, quindi (u0 , . . . , un−1 ). Ma é
sufficiente mettere queste? No, perché i vincoli devono essere tradotti sulle
variabili decisionali. E fino a quando analizzo i vincoli sulle u va bene, ma
quando passo ai vincoli sullo stato come faccio se su x non ho proprio variabili decisionali? Nel momento in cui io scelgo (u0 , . . . , un−1 ) come vettore
delle variabili decisionali (che poi in realtà sono (n − 1) ∗ m perchè ogni
u ha m componenti) non posso imporre vincoli sullo stato, perché lo stato
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2. Problemi di Minimizzazione Vincolata
55
non appartiene alle variabili decisionali. Quindi, ora come ora, non potrei
trasformare il problema in programmazione non lineare statica. E questo é
solo uno dei problemi.
Allora cosa prendo come variabili decisionali? Prendiamo le v calcolate ad ogni k: [u0 , ..., un−1 , x1 , ..., xn ].
La x0 é assegnata, infatti non é una variabile. Su xn abbiamo la condizione
terminale. Ci rendiamo conto che in realtá le x dipendono dalle u, sono
legate dalla dinamica del sistema. Quindi devo essere in grado di esprimere
la dinamica del sistema come un vincolo su tutto l’insieme dei tempi che
sto considerando, e non lo posso esprimere in forma ricorsiva. Allora quello
che devo fare é togliere la ricorsione, devo esprimere lo stato in funzione
dell’ingresso in modo non ricorsivo. Ma questo, per un sistema LTI é banale,
basta ricordare la Formula di Lagrange:
~xk = Ak ~x0 +
k−1
X
Ak−h−1 Buh
(2.7-3)
h=0
La Formula di Lagrange mi dice che al generico istante k lo stato é funzione
degli ingressi precedenti e dello stato iniziale; anzi mi dice una cosa ancora
piú forte, ovvero che lo stato é una combinazione lineare degli ingressi precedenti tramite la sommatoria di convoluzione.
L’idea ora é quella di ricondurci a una forma del tipo Aeq a = beq (a é il
vettore delle variabili decisionali). Questa forma é statica e con fmincon si
puó passare al Matlab.
Particolarizzando la formula all’istante N e scrivendo la sommatoria in
modo esteso abbiamo:
~x(N ) − AN ~x0 = [AN −1 B




~u
 0 
 .. 
N −2
A
B . . . B]  . 
~un−1
Questa equazione statica traduce il vincolo dinamico. L’unico appunto che
dobbiamo fare é che il vettore delle variabili decisionali contiene anche gli
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
56
2. Problemi di Minimizzazione Vincolata
stati quindi in realtá abbiamo :


~u0
 . 
 . 
 . 
[A
N −1



~
un−1 
B . . . B|0 . . . 0] 


 ~
 x1 
 . 
 .. 


~xn
Ovvero tanti 0 quanto sono le ~x, in maniera da non variare il vincolo dinamico. Abbiamo effettivamente ottenuto Aeq a = beq con beq = x(N ) − An x0
che risulta essere un vettore noto, Aeq = [An−1 B . . . B|0 . . . 0]. Abbiamo
quindi il nostro vincolo statico da passare al Matlab.
Vediamo come tradurre gli altri vincoli:
Aout u x vale per ogni k; Aout u − Ix 0 con la matrice identitá di ordine
opportuno (dipende dalle ~x). Riscriviamo quindi come:
[AOU T − I . . . n
volte]~vk ~0
(2.7-4)
Resta il vincolo sui limiti inferiori e superiori: basta creare due vettori
LB(LowerBound) = [0...0] e U B(U pperBound) = [umax ; xmax ], in modo
che i vincoli 0 ≤ xi ≤ xmax e 0 ≤ uj ≤ umax diventino:
 
0


umax


 .. 
 . 
 
0
 
 ⇔ LB ≤ ~
vk ≤ 
vk ≤ U B
. ≤ ~


 .. 
x


max
 


0
(2.7-5)
..
.
Logicamente, se cade l’ipotesi di tempo invarianza il discorso non vale piú.
Avremo Aeq = [An−1 B . . . B|0 . . . 0] con tutte le matrici A che dipenderanno
da k. Inoltre potrei applicare quanto detto anche se J non fosse convessa,
avendo in questo caso dei minimi candidati.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
3
Il Problema dell’Incertezza
Trattiamo ora il problema dell’incertezza, descritta in maniera stocastica.
Cos’é l’incertezza? Ci sono due categorie di incertezza che andremo a considerare: la prima categoria é quella che chiamiamo Incertezza di modello,
cioé il modello rappresenta in maniera approssimata una parte della realtá;
inoltre si aggiunge la discretizzazione del modello che porta con se tutti gli
errori possibili. Per riagganciarci a questa realtá dobbiamo Modellare l’Incertezza.
Modellistica dell’incertezza: di per se é un paradosso Come faccio a modellare una cosa incerta? In effetti non é cosi, l’incertezza la possiamo graduare,
da una cosa molto incerta possiamo arrivare a una cosa poco incerta, e
quindi attraverso questa graduazione dell’incertezza riusciamo a modificare
il nostro modello considerando un’aliquota che terrá conto di questa variabilitá e quindi renderá i nostri risultati non deterministici.
Naturalmente esiste anche la rappresentazione deterministica, che non tratteremo, dell’Incertezza: supponiamo di avere a che fare con un sistema
lineare e che la sua matrice A é incerta nei suoi parametri, ovvero A non
vale A ma A0 + δA.
Posso fare, in una logica di controllo robusto, il mio progetto su A0 , e poi
uso l’elasticitá del controllo (é giusto pensare che ci sia una continuitá tra
3. Il Problema dell’Incertezza
58
la variazione dei parametri e un certo indice prestazionale; se non fosse cosi,
appena ci muoviamo da A0 siamo fregati, vorrebbe dire che c’é un’altissima
densitivitá) in modo tale che la prestazione garantita nel caso nominale non
si discosta molto al variare dei parametri.
É la logica del controllo robusto, basti pensare ai margini di stabilitá che
non fanno altro che garantirci un’elasticitá del nostro controllo.

 x(k + 1) = f (x(k), u(k))

(3.0-6)
y(k) = g(x(k))
In realtá oltre al problema della modellistica vera e propria, c’é un problema legato alle misure, perché il nostro processo in generale é caratterizzato da un’equazione di stato x(k + 1) = f (x(k), u(k)) e un’equazione di
misura y(k) = g(x(k)). Ma una delle fonti d’incertezza é la misura stessa;
quindi quando vado ad esaminare il dato y e dico che é disponibile la misura
dell’uscita, devo pensare che sia disponibile con la precisione relativa allo
strumento utilizzato per effettuare la misura.
Per rappresentare l’incertezza utilizzo la via delle variabili aleatorie.
3.1
Richiami sulle variabili aleatorie
La variabile aleatoria é:
Def.
3.1.1. É una funzione che associa ad ogni esito di un processo
aleatorio, un distinto numero reale.
Una variabile che pur rimanendo se stessa, cioé non perdendo l’identitá,
puó assumere piú valori. Ad esempio nel lancio del dado, la variabile aleatoria é a 6 valori. Nulla vieta che la variabile aleatoria possa essere a infiniti
valori. Naturalmente ci possono essere esiti piú frequenti degli altri; allora,
per caratterizzare la variabile aleatoria v costruisco la funzione densitá
di probabilitá fv : non conosco il valore di v ma so che l’insieme dei valori
che v puó assumere é caratterizzato da certe probabilitá rappresentate da
questa pdf. Ma la caratterizzazione data dalla funzione densitá di probabilitá é parziale: non sapró mai quale valore assume, resta sempre incognita
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
59
la v fino a che non si é realizzata, ma quando si é determinata é un dato,
non piú una variabile aleatoria.
I momenti della distribuzione li calcoliamo attraverso l’operatore Valore
Atteso: E[χ] =
R∞
xFχ (x)dx.
−∞
A volte useremo la notazione: Fχ (x), dove X sará la variabile aleatoria e x
sará uno dei valori che la variabile aleatoria X puó assumere.
Perché siamo ossessionati dalla Gaussiana? Perché nella Gaussiana la
conoscenza completa della distribuzione si ottiene caratterizzando due soli
momenti; infatti nell’espressione della gaussiana ci sono solo due parametri,
media e varianza, che hanno un significato probabilistico ben chiaro.
Ricordiamo altre definizioni, ragionando sulla nostra incertezza v(k):
• Stazionarietá del I ordine: le densitá di probabilitá calcolate per
ogni istante di tempo sono uguali. (Abbiamo detto che v(k) é fatta da
tante variabili aleatorie v(0), v(1), v(2), ..., allora stiamo dicendo che
ad ogni variabile aleatoria é associata sempre la stessa fv (v).
In ogni istante di tempo trovo sempre la stessa curva). Naturalmente
la stazionarietá del I Ordine implica che le medie e le varianze siano
le stesse.
• Indipendenza statistica: se io prendo a caso 2 variabili aleatorie,
ad esempio v(i) e v(j), e vado a considerare la densitá di probabilitá
congiunta (sarebbe la densitá di probabilitá multivariata, invece di
pensare alla campana in 2D pensate a quella in 3D), puó darsi che
le densitá di probabilitá congiunte siano diverse dal prodotto delle
densitá di probabilitá: (f (v(i), v(j)) 6= f (v(i)) ∗ f (v(j))).
Il fatto che in i si sia realizzato un valore, non varia la probabilitá dei
valori che si realizzeranno in j.
Quando invece c’é questa interazione, c’é un condizionamento tra le
variabili aleatorie e le loro densitá di probabilitá:
(f (v(i), v(j)) = f (v(i)) ∗ f (v(j)))
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
60
• Covarianza:
cov(v(k)v(k + N )) = E {[v(k) − E [v(k)]] [v(k + N ) − E [v(k + N )]]}
(3.1-1)
É un momento del secondo ordine calcolato in istanti differenti. Non é
altro che un differenziale rispetto alla media, é uno scostamento della
variabile rispetto alla media.
• Matrice di Covarianza:


σv21



E v(k)v (k) = 


h
T
i
·
.
σv2n






(3.1-2)
Questa matrice sulla diagonale avrá proprio le varianze al quadrato;
fuori dalla diagonale ci sono le covarianze e siccome cov(v1,v2)=cov(v2,v1),
questa matrice ha un carattere di simmetria.
• Correlazione:
corr(v(k), v(k + N )) = E [v(k)v(k + N )]
(3.1-3)
• Varianza:
É il momento centrato rispetto alla media, equivale quindi a calcolare
la Covarianza in N=0.
• Coefficiente di Correlazione:
C=
corr(v(k), v(k + N ))
δv(k)δv(k + N )
(3.1-4)
Mi da conto del livello di dipendenza 0 ≤ C ≤ 1
• Stazionarietá in senso stretto(forte):
Il processo stazionario deve essere stazionario del I ordine e inoltre devono essere uguali le distribuzioni di probabilitá congiunte: f (v(k), v(k+
N )) deve essere sempre la stessa per ogni N.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
61
• Stazionarietá in senso lato:
Se solo la covarianza é identica per ogni N.
Ricapitolando: Un processo é stazionario del I Ordine se tutte le densitá
di probabilitá sono le stesse. Ma questo non basta a definire la stazionarietá,
perché potrebbe esserci un certo livello di correlazione tra il valore che noi
abbiamo in un istante di tempo ed un valore di v in un istante successivo.
Allora analizzo questo incrocio di valori che possono realizzarsi attraverso
le distribuzioni congiunte. Se queste pdf congiunte sono sempre uguali, mi
sono garantito del fatto che questo processo é completamente translabile
nel tempo; non é che non ci sono le correlazioni, ma rimangono uguali
in ogni istante. In questo caso quindi il processo sará stazionario in senso
forte. Se si verificano solamente le proprietá dei momenti del II Ordine, il
processo sará stazionario in senso debole.
3.2
Il Modello
A questo punto assumiamo che l’incertezza sia descrivibile attraverso una
variabile aleatoria in ogni istante.
Se non conosco la distribuzione totale, posso pensare di conoscere solo alcune
caratteristiche della mia v, come ad esempio il valore medio, oppure la
varianza1 .
Ipotesi: L’incertezza é una variabile aleatoria e ha carattere additivo. Cioé
l’incertezza la incapsulo in v, con k ben preciso. É certo peró, che anche se
questa variabile la descrivessi con completezza dando tutta la pdf, di questa
variabile non conoscerei il valore.
Ed é questo il punto interessante. Ora se volessi introdurre questa incertezza
nel mio sistema dovrei scrivere:
x(k + 1) = f (x(k), u(k), v(k))
(3.2-1)
Avremo quindi un legame di tipo non lineare tra la variabile di interesse e l’incertezza. Ed é per questo motivo che facciamo un’ assunzione
1
momento centrale del secondo ordine, ovvero la sua distribuzione attorno al valore
centrale
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
62
molto piú forte, consideriamo che l’incertezza si somma alla parte
deterministica:
x(k + 1) = f (x(k), u(k)) + v(k)
Dove v(k) é definito rumore di processo. Si hanno dei vantaggi: il primo
é che questo modello ha una componente deterministica e una aleatoria, é
vero che si contaminano l’una con l’altra, peró riesco a separarle; e molto
di ció che diremo é dipendente da questa ipotesi.
Allo stesso modo avremo l’incertezza di misura additiva:
y(k) = g(x(k)) + w(k)
dove w(k) prende il nome di rumore di misura.
Perché avevo fissato k? Perché in realtá la mia incertezza puó variare
istante dopo istante.
Def.
3.2.1. La v(k) é un Processo Stocastico, ovvero una sequenza
indicizzata di variabili aleatorie.
Devo considerare non una v che é sempre la stessa e ha sempre la stessa
densitá di probabilitá, ma potrei considerare una v(k) che porta con se una
sequenza di variabili aleatorie indicizzate con k, ognuna con la sua densitá
di probabilitá.
Si chiamano occasionalmente tutte v, ma in realtá la v1 é diversa dalla v2
e cosi via;diversa nel senso che ha caratteristiche probabilistiche differenti,
avrá valori che si possono realizzare con probabilitá differenti.
Il modello aleatorio puó allora essere rappresentato da queste equazioni:
(
x(k + 1) = f (x(k), u(k)) + v(k)
y(k) = g(x(k)) + w(k)
(3.2-2)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
63
Volendone fare uno schema a blocchi, avremo:
dove z −1 rappresenta un ritardatore.
Vediamo che compaiono due ulteriori ingressi al mio sistema. Allora la
rappresentazione la possiamo sintetizzare in questo modo:
Dove u(k) di per se é deterministico, siamo noi a darlo al nostro sistema;
mentre gli altri due ingressi (che possono essere pensati come ingressi di
disturbo) li mettiamo sopra per segnalare il fatto che questi ingressi sono
Ingressi Remoti, ovvero non é possibile conoscerne i valori (quindi non
pensate di farci feedforward, di poterli misurare, quelli stanno li e bisogna
solo subirli).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
64
3.2.1
Ipotesi su v(k) e w(k)
1.








w (k)
v (k)


 1
 1
 .. 
 .. 
v(k) =  .  w(k) =  . 
vn (k))
(3.2-3)
wn (k))
sono vettori di processi stocastici;
2. Assumo che ognuno di questi processi stocastici siano stazionari almeno in senso debole, ovvero che le loro medie siano costanti; in
particolare a media nulla:
E[v(k)] = 0
E[w(k)] = 0
(3.2-4)
Assumiamo E[v(k)] = 0 perché se io conosco il valor medio posso
scomporre v(k) = b + e(k) con b a valor medio nullo. Fare un ipotesi
cosi forte non é limitante, perché nel caso in cui b non fosse a valor
atteso nullo, rientrerebbe come valore costante e quindi di pertinenza
deterministica.
3. É assegnata la varianza.
Dobbiamo dare indicazioni della dispersione attorno al valor medio.
La dispersione é misurata dalla covarianza che in questo caso coincide
con la correlazione (perché il valor atteso é nullo), calcolate peró per
N=0 (abbiamo quindi la varianza).
4. Con le Hp fatte fino alla 3, non é escluso che nello stesso istante di
tempo ci possa essere correlazione tra due processi stocastici differenti
(ad esempio v1 e v3).
Quindi, oltre ad avere le varianze, dobbiamo dare anche la mutua
correlazione tra una vi all’istante k e una vj allo stesso istante k.
Assegno quindi la matrice di covarianza:
E[v(k)v T (k)] = V
E[w(k)wT (k)] = W
(3.2-5)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
65
V, W non dipendono da k perché ho assunto che il processo sia stazionario almeno in senso lato, e quindi le covarianze sono identiche in
ogni istante di tempo.
5. Non sappiamo ancora cosa succede in istanti di tempo diversi; allora:
E[v(k)v T (k + N )] = 0 ∀N 6= 0
E[w(k)wT (k + N )] = 0 ∀N 6= 0
(3.2-6)
Vuol dire che non c’é correlazione tra l’esito del processo in un istante
con l’esito del processo in qualsiasi istante successivo. Si dice anche
che la covarianza é impulsiva, nel senso che é diversa da zero solo
quando N=0.
Sotto queste ipotesi abbiamo il massimo dell’incertezza: ogni volta che scatta
un’istante di tempo io non ho modo, dal dato dell’istante precedente di poter
dire qual’é il dato nell’istante successivo.v(k), w(k) sono Rumori Bianchi:
Def. 3.2.2. Un Rumore Bianco é un processo stocastico, stazionario
almeno in senso lato, il cui valor medio é nullo, la matrice di covarianza ha
un valore finito, e la covarianza é impulsiva. Ha un livello di incorrelazione
totale tra istanti di tempo successivi.
Quando l’incorrelazione diventa indipendenza statistica?
L’indipendenza é qualcosa di piú forte, poiché richiede che le distribuzioni
di densitá di probabilitá congiunte siano uguali al prodotto delle singole.
Allora posso dire che con un rumore bianco cosi definito, se le densitá di
probabilitá fossero gaussiane allora sarebbero indipendenti.2 .
Perché scegliamo il rumore bianco? É una sorta di caso peggiore; ma
c’é anche il Teorema di Weyl che stabilisce che ogni processo stocastico φ(k) é esprimibile come somma di infiniti valori precedenti di processi
bianchi. La φ(k) sará un rumore colorato:
φ(k) =
+∞
X
αi v(k − i)
(3.2-7)
i=0
2
Molto spesso parlando uno confonde l’indipendenza con l’incorrelazione;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
66
3.3
Statistiche dello stato x(k)
Se io alimento un sistema lineare con del rumore bianco (a maggior ragione
per un sistema non lineare), il rumore contamina lo stato del sistema e lo
rende un processo stocastico.
Preso quindi un sistema del tipo:

 x(k + 1) = Ax(k) + v(k)

(3.3-1)
x(0) = x0
nel quale ometto B perché rappresenta il contributo deterministico, é una
componente che non fa altro che sommarsi alla componente aleatoria, le
considerazioni che faremo non variano (se non di una costante). La condizione iniziale x(0)=x0 é assegnata; piú che dire di conoscere lo stato iniziale
del sistema dovremmo dire di conoscere la matrice di covarianza dello stato
iniziale.
La risposta di questo sistema sará:
x(k) = Ak−k0 x0 +
k−1
X
Ak−h−1 v(h)
(3.3-2)
h=k0
Per caratterizzare il processo aleatorio x(k) dovró darne delle statistiche.
3.3.1
Media
Basta applicare il valore atteso e ottengo:
E[x(k + 1)] = AE[x(k)] +
E[v(k)]
= AE[x(k)]
(3.3-3)
| {z }
0, rumore bianco
La media del processo stocastico x(k) si modifica nel tempo secondo la
legge A ∗ E[x(k)]. Quindi se io volessi vederlo in termini di media3 ho :
mx (k + 1) = A ∗ mx (k). Dato che la media cambia in ogni istante di tempo,
si puó certamente dire che il processo stato non é stazionario.
Potrebbe diventare stazionario se il valor medio iniziale mx (0) = 0: allora
avrei sempre 0; é come se il sistema avesse un’evoluzione libera sempre,
salvo che non lo metta nell’equilibrio dove non evolve.
3
indicheremo con mx la media del processo aleatorio;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
3.3.2
67
Covarianza
Insieme alla misura del valor medio, a noi interessa anche una misura della
dispersione intorno al valor medio.
Cerchiamo di capire come varia la matrice di auto-correlazione dello
stato del mio sistema. Valutiamo la quantitá E[x(k) ∗ xT (k)], per semplicitá
di notazione la chiameremo P (k).
Questa matrice dovrá dare informazioni sulla distribuzione intorno al valore
medio; questa matrice quindi varia nel tempo.
Infatti4 :
P (k + 1) = E[x(k + 1)xT (k + 1)] =
= E[Ax(k) + v(k))(Ax(k) + v(k))T ] =
= A E[x(k)xT (k)] AT + A E[x(k)v T (k)] + E[v(k)xT (k)] AT + E[v(k)v T (k)]
|
{z
=P (k)
}
|
{z
=0
}
|
{z
=0
}
|
Notiamo che la quantitá E[x(k)v T (k)] = 0 essendo la matrice di correlazione
tra la x e la v, ove la v(k) nel nostro processo ha effetto solo sulla x(k + 1),
ed ha la caratteristica di essere bianco, quindi senza memoria. Si giunge alla
seguente espressione, l’evoluzione della matrice di correlazione P:
P (k + 1) = AP (k)AT + V
(3.3-4)
Immaginiamo ora che la x(0) non sia uno stato certo, ma sia uno stato
incerto (visto che poi la x(1) sará incerta). Quindi sostituiamo l’ipotesi
x(0) = x0 con un’ipotesi piú realistica e consona al nostro modello.
Supponiamo quindi di conoscere il valore atteso dello stato iniziale e di conoscere anche la matrice di covarianza (o di correlazione) per caratterizzare
la dispersione intorno a questo valor medio:
E[x(0)] = x0
E[x(0)xT (0)] = X0
(3.3-5)
P (0) = X0 , in questo modo io posso risolvere l’equazione alle ricorrenze
P (k + 1) = AP (k)AT + V , ove V non ha un pedice che dipende dal tempo
4
Al terzo passaggio posso portare fuori l’operatore E perché lineare;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
{z
=V
}
3. Il Problema dell’Incertezza
68
essendo un processo stazionario e quindi é una quantitá costante.

 P (k + 1) = AP (k)AT + V

(3.3-6)
P (0) = X0
Quest’equazione é simile all’equazione di Riccati senza la parte non lineare;
del resto ricorda di piú l’equazione di Lyapunov.
Supponiamo che la matrice A sia contrattiva, ovvero abbia tutti autovalori
all’interno del cerchio unitario (quindi operi come un numero minore di 1).
Sotto quest’ipotesi, la pre-moltiplicazione e post-moltiplicazione per la matrice A determina una contrazione della covarianza P (k), quindi se non ci
fosse questo termine V l’incertezza tenderebbe a collassare.
Se per esempio l’incertezza fosse presente solo all’istante di tempo iniziale,
fosse quindi di natura impulsiva, allora il sistema tenderebbe ad eliminare
quest’incertezza via via nel tempo e ritornare cosí ad un sistema di tipo
deterministico.
Nel nostro caso, invece, alimentiamo sempre con un’incertezza V e quindi
ho un duplice effetto: da un lato la contrazione dovuta alla componente
deterministica del mio sistema e dall’altro l’incertezza additiva V sempre
presente.
Come facciamo a risolvere quest’equazione alle ricorrenze?
In
maniera iterativa:
P (1) = AP (0)AT + V
2
P (2) = A(AP (0)AT + V )AT + V = A2 P (0)AT + AV AT + V
..
.
quindi:
k
P (k) = A P (0)A
Tk
+
k−1
X
Ah V A T
h
(3.3-7)
h=0
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
69
Se ora volessi cercare il valore di P (k) che si ottiene per k → ∞ potrei
farlo in due modi:
1. Impongo direttamente la soluzione di regime, ottenendo un’Equazione
Discreta di Lyapunov: P = AP AT + V ;
2. svolgo il seguente limite:
P (∞) = lim P (k) =
k→∞
+∞
X
h
Ah V AT = P
h=0
k
dove Ak P (0)AT → 0 se k → ∞ e A é contrattiva
3.3.3
Correlazione in istanti diversi
Andiamo ora a calcolare la matrice di correlazione tra lo stato x(k + N ) e
x(k). A me interessa sapere come evolve questo tipo di correlazione, quindi
mi interessa vedere, come nel caso precedente, quanto vale P (k+N +1, k+1):
P (k + N + 1, k + 1) = E[x(k + N + 1)xT (k + 1)] =
= E[(Ax(k + N ) + v(k + N ))(Ax(k) + v(k))T ] =
= A E[x(k + N )xT (k)] AT + E[v(k + N )xT (k)] AT +
|
{z
=P (k+N,k)
}
|
{z
}
=0
+ AE[x(k + N )v T (k)] + E[v(k + N )v T (k)]
|
{z
=0
}
I due termini nulli lo sono per via della smemoratezza del rumore bianco.
Ora valuto x(k + N ) partendo da k0 = k + 1:
x(k + N ) = Ak+N −(k+1) x(k + 1) +
k+N
X−1
Ak+N −h−1 v(h) =
h=k+1
|
{z
=0
}
= AN −1 x(k + 1) = AN −1 (Ax(k) + v(k)) =
= AN x(k) + AN −1 v(k)
La sommatoria in se per se non é nulla, ma l’abbiamo considerata uguale a
zero perché rappresenta i contributi del rumore in istanti di tempo successivi
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
70
a k e nel valore atteso non é correlata con v T (k). Allora abbiamo:
E[x(k + N )v T (k)] = E[(AN x(k) + AN −1 v(k))v T (k)] =
= AN E[x(k)v T (k)] +AN −1 E[v(k)v T (k)] =
|
{z
=0
}
|
{z
=V
}
= AN −1 V
Otteniamo l’espressione finale della dinamica della correlazione tra l’istante
k + N + 1 e k + 1:
P (k + N + 1, k + 1) = AP (k + N, k)AT + AN V
(3.3-8)
Anche in questo caso c’é un effetto di smorzamento della correlazione dovuto
ad AN , infatti man mano che N aumenta, AN (nell’ipotesi che A sia contrattiva) diventa piú piccola e quindi il contributo di AN V diventa sempre
piú piccolo.
3.3.4
Contaminazione dell’uscita
Naturalmente la contaminazione dello stato, ovvero il fatto sia diventato
un processo aleatorio, determina la contaminazione dell’uscita del sistema;
y(k) diventa un processo aleatorio.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
3.4
71
Principio di Bellman
3.4.1
Caso deterministico
Sia dato un sistema che ha inizio nell’istante k0 fino ad arrivare all’istante
k0 + N . Supponiamo ora di aver risolto questo problema di controllo ottimo
e di poter disporre del controllo ottimo, ovvero conosco la u∗ (k0 ), u∗ (k0 +
1) . . . u∗ (k0 + N − 1); ció significa che, data la condizione iniziale che é anche
ottima x(k0 ), conosceró la x(k0 + 1) (dovuta all’applicazione di u(k0 )) e cosí
via fino a x(k0 + N ).
Se ho risolto il problema quindi la mia J diventa una J ∗ . Per essere pi ú
precisi la J ∗ sarebbe una J ∗ di k0 ma anche di x(k0 ) perché dipende sia da
k0 ma anche dal valore che la x assume in k0 (ometto la dipendenza da N
perché l’orizzonte é fisso).
Vediamo Cosa succede se ora considero un altro problema di ottimizzazione
che peró ha lo stesso istante terminale, ma che inizia in un istante i (k0 <
i < k0 + N ) e stato iniziale x(i) (io sto utilizzando esattamente la stessa
cifra di merito, cambio solo gli indici della sommatoria).
É un problema diverso, peró se questa x fosse per caso x∗ (k0 + i), cioé una
di quelle che io avrei attraversato nella condizione ottima, allora io potrei
dire che la soluzione di questo problema é contenuta nella soluzione ottima
precedente, perché basta che io prenda quella sottosequenza delle u che
vanno da i a N e avrei ottenuto cosí la soluzione del mio problema.
Questo é il principio di Bellman nel caso deterministico:
Def. 3.4.1. Ogni segmento di traiettoria ottimale é essa stessa ottimale
per un problema che inizia in un istante di tempo intermedio quando peró
la condizione iniziale é uguale a una condizione intermedia attraversata dal
problema originale.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
72
3.4.2
Caso stocastico
Supponiamo di conoscere la u∗ , ovvero supponiamo di conoscere la soluzione ottima. Ora non posso dire di conoscere la traiettoria ottimale perché
la traiettoria ottimale é collegata alla realizzazione del processo stocastico
v(k).
Posso per esempio mettermi nell’istante i e aspettare, ogni volta ottengo
uno stato diverso dovuto all’applicazione della stessa sequenza ottima di
controllo; quindi io nell’istante i vedo una sezione del fascio di traiettorie.
Il principio di Bellman stabilisce che tutto quello finora detto é vero a partire da una condizione iniziale che abbia probabilitá non nulla di essere
attraversata dalla traiettoria ottimale generata. Quindi data una soluzione
del problema su un intervallo lungo, prendo un problema su un intervallo
piú breve, considero come stato di partenza uno di quegli stati che aveva
probabilitá non nulla di essere attraversato, allora diró che la soluzione del
mio problema é quel segmento della soluzione che ritenevo di avere nota.
Ovvero:
Def. 3.4.2. La formulazione del principio di Bellman nel caso stocastico,
é identica a quella del caso deterministico ma questa x∗ (i) non é la x∗ (i)
ottima di prima, ma é una x(i) di quelle che ha probabilitá non nulla di
essere attraversata.
3.5
Problema LQ Incerto
La versione LQ stocastica é la versione piú elementare del problema di
controllo ottimo stocastico; é senza vincoli e con rumore incorrelato e dunque
é l’unica che si riesce a risolvere analiticamente.
Utilizziamo il seguente modello incerto:
x(k + 1) = Ax(k) + Bu(k) + v(k)
v(k) é il W.N., ovvero senza memoria.Sono note delle statistiche sulla condizione iniziale:
E[x(0)] = x0
E[x(0)xT (0)] = X0
L’indice di qualitá da minimizzare é:
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
73
−1
1
1 NX
min [ xT (N )Qf x(N ) +
xT (h)Qx(h) + uT (h)Ru(h)]
2 h=0
u(·) 2
Il primo termine é il costo terminale ed il secondo é detto costo di transizione ed u(·) indica tutta la sequenza (non una funzione).
Ebbene questa cifra soffre di incertezza. É di per se incerta, non possiamo quindi parlare strettamente di costo. Al massimo possiamo parlare
di valore atteso del costo.
Volendo interpretare questo valore atteso dell’indice di qualitá potrei dire
che dovendo pagare ogni volta quest’azione di controllo, in media ho speso
il meno possibile (ovvero vuol dire che qualche volta mi é andata bene ma
qualche volta mi é andata anche male, peró mediamente ci sono andato bene).
Quindi il mio problema diventa5 :
−1
1 T
1 NX
min E[ x (N )Qf x(N ) +
xT (h)Qx(h) + uT (h)Ru(h)]
2
2 h=0
u(·)
Alla base di tutto ció, per continuitá con il controllo LQ, ipotizzo che lo
stato sia completamente accessibile.
Posso quindi ricercare la mia soluzione, come funzione dello stato perché
ritengo che lo stato io lo possa misurare sebbene sia un variabile aleatoria6 .
Differentemente da x la v(k) non é accessibile essendo un rumore remoto.
Posso pertanto fare delle misure su x; x é a priori un variabile aleatoria, ed
a posteriori un numero (vettore, una realizzazione).
L’ipotesi di piena accessibilitá non é ragionevole comunque, visto che se
anche non c’é possiamo costruire un osservatore? E pertanto, perché in
seguito vogliamo rimuoverla?
Lo stato x lo possiamo conoscere tramite y, applicando un trasformazione
di uscita e costruendo un dispositivo che elabora le informazioni esterne e
genera un stima dello stato (osservatore di Luemberger).
Ma la produzione di questa stima é fatta sulla base di una variabile aleatoria: cioé facciamo un stima indiretta, perché misuriamo y ( che é accessibile
) e attraverso questa facciamo inferenza su x. Questo é un caso di non com5
6
Per ipotesi il sistema è stazionario, per questo motivo la sommatoria va da 0 a N-1;
é una variabile aleatoria, essendo funzione di variabili aleatorie come la v
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
74
pleta informazione, visto che vorremo conoscere la x ma dobbiamo passare
attraverso la y. E pertanto l’accessibilitá totale si ha quando é direttamente
accessibile con i suoi valori; se non lo sará, sará accessibile un’altra variabile
di dimensione piú piccola (come la y).
Se la y é un canale piú stretto di x, per avere informazioni sulla x devo avere un meccanismo di accumulazione dove con la storia dei dati posso fare
un’inferenza, anche se non istantanea. É per questo motivo che l’osservatore di Luemberger ha un struttura dinamica, al fine di lasciare sedimentare
le informazioni ed avere un segmento temporale di informazioni su cui fare
inferenza.
Ebbene noi sappiamo risolvere certamente il problema deterministico:
min L(u)
u
(3.5-1)
Con L indichiamo una certa funzione di costo. In ambito aleatorio l’equivalente del suddetto problema potrebbe essere un problema dove ho una
L(X, Y, u), cioé una funzione di costo funzione di due variabili aleatorie, X
ed Y (che possono avere delle realizzazioni).
Questa é un funzione di costo incerta, é come se andassi a fare la spesa e il
costo é legato alla realizzazione delle variabili aleatorie X ed Y . Facciamo
allora l’ipotesi che questa funzione abbia un solo minimo (sempre lo stesso)
al variare di X ed Y pertanto posso avere una soluzione ottima (il minimo)
come7 : u∗ (x, y) .
Se guardo il problema ex-post cioé dopo che si sono realizzate x ed y, avró
un problema di tipo deterministico; se lo guardo a priori X ed Y sono variabili aleatorie. E pertanto ammetto di avere accesso a X ed Y dopo che si
realizzano, cioé quando faccio la spesa conosco i costi. É dunque l’ipotesi
di piena accessibilitá.
L’ipotesi di avere piena accessibilitá dello stato banalizza il problema di cui
parliamo perché visto che lo stato é misurabile8 , conosciamo le determinazioni delle variabili aleatorie (x(k)) e conoscendole possiamo conoscere le
determinazioni delle variabili aleatorie (v(k)) che hanno reso aleatorio lo
stato stesso.
7
osservazione: é come si mi fossi parametrizzato la soluzione rispetto alle possibili
realizzazioni delle variabili aleatorie;
8
Direttamente, e non tramite osservatori;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
75
X ed Y posso assumere valori su tutto R e pertanto risolvo:
min L(X, Y, u)
u
(3.5-2)
Posso guardare il problema in due modi:
1. essendo il minimo funzione di solo X ed Y posso andare a considerare
il valore atteso di minL(X, Y, u) risolvo il problema come se X e Y
u
non fossero determinate e poi vado a calcolare il valore atteso della
mia soluzione.
In questo caso é come se non considerassi le variabili aleatorie; facendo
il valore atteso, la cifra di merito non é piú funzione di X ed Y , poiché
sono state assorbite con la media;
2. Posso fare anche il contrario prendendo:
min E[L(X, Y, u)]
u(x,y)
(3.5-3)
allora faccio il valore medio della funzione di costo e poi faccio la
minimizzazione tra tutte le u funzioni di x ed y.
Un lemma del controllo stocastico dice che le due strade portano a identici
risultati:
Def. 3.5.1. É sempre possibile scambiare l’operatore min con quello di
valore atteso E[·]
Cioé posso fare il minimo astrattamente; applicando il minimo ho un
risultato in funzione di X ed Y ed applico il valore atteso per avere un numero! In sostanza faccio prima una media dei costi e poi risolvo il problema
oppure faccio la media dei risultati delle soluzioni del problema.
3.5.1
Soluzione del problema
Applichiamo il principio di Bellman e l’algoritmo della programmazione
dinamica con orizzonte da 0 a N . Sviluppiamo un procedura all’indietro
dove cerchiamo di fare dipendere la nostra decisione dallo stato iniziale,
da dove partiamo. Con questa procedura all’indietro, esprimendo tutto in
funzione di orizzonte piú grandi, arriviamo dove la condizione é nota (in
forma statistica o deterministica).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
76
Caso Deterministico
Sul costo finale non c’é nulla da dire; per far uscire l’equazione di Riccati
riscriviamo:
1
JN = xT (N )Qf x(N )
2

 P (N ) = Q
f



NB: questa P (k) non ha nulla a che vedere con P (k) = E[x(k)xT (k)]. In
questo caso rappresenta solo una matrice di peso. La J dipende da x(N )
essendo Qf noto.
Questo problema é condizionato dalla conoscenza di x(N −1), questa quindi
non é un incognita. Devo minimizzare conoscendo x(N − 1); devo scegliere
u(N − 1) che influenza x(N ). Valutiamo quindi JN −1 :
1
1
1
JN −1 = xT (N )P (N )x(N ) + xT (N − 1)Qx(N − 1) + uT (N − 1)Ru(N − 1)|x(N − 1) =
2
2
2
1
= [Ax(N − 1) + Bu(N − 1)]T P (N )[Ax(N − 1) + Bu(N − 1)]+
2
1 T
1
+ x (N − 1)Qx(N − 1) + uT (N − 1)Ru(N − 1) =
2
2
1 T
1
= x (N − 1)[AT P (N )A + Q]x(N − 1) + uT (N − 1)[B T P (N )B + R]u(N − 1)+
2
2
1 T
T
+ u (N − 1)B P (N )Ax(N − 1)2
2
(3.5-4)
[osservazione: la v c’é solo nel caso stocastico]. Ho scritto tutto in funzione
di u(N − 1) con x(N − 1) assegnato (stocastico o deterministico); allora c’é
un pezzo della minimizzazione che va fuori visto che non dipende dalla u ed
é proprio quella che dipende dalla x(N − 1), essendo questo fissato. Tutto
dipende da u(N − 1), ci sará un pezzo lineare in u ed un pezzo quadratico;
allora minimizzando:
1
JN −1 = xT (N − 1)[AT P (N )A + Q]x(N − 1)+
2
1
+
min
[ uT (N − 1)M u(N − 1) + xT (N − 1)LT u(N − 1)]
u(N −1)/x(N −1) 2
(3.5-5)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
77
dove abbiamo fatto le seguenti posizioni:
M = [B T P (N )B + R]
LT = AT P (N )B
(3.5-6)
Ora facciamo la minimizzazione e per trovare il minimo annullo il gradiente
e trovo i candidati per cui opero il minimo dato x(N − 1):
uT (N − 1)M + xT (N − 1)LT = 0
(3.5-7)
Facendo la trasposta avremo:
M T u(N − 1) + Lx(N − 1) = 0
(3.5-8)
E se M é invertibile allora9 :
u∗ (N −1) = −(M T )−1 Lx(N −1) = −[R+B T P (N )B]−1 [B T P (N )A]x(N −1)
(3.5-9)
Questa quantitá, sommata alla parte che non era inclusa nella minimizzazione, ci porta alla soluzione del problema di controllo ottimo dato x(N − 1).
Ma in realtá noi il dato non lo conosciamo: il gioco allora é di andare a
ritroso nel tempo trovando soluzioni che dipendono da N − 2, N − 3 fino ad
arrivare alla condizione iniziale che é nota. Posso quindi calcolare la u andando in avanti avendo la legge di controllo in controreazione. Se io adesso
ho trovato il minimo (Formula 3.5 − 9) e lo sostituisco nella cifra di merito
(Formula 3.5 − 5), anche questa sará una forma quadratica in x(N − 1):
1
JN −1 = xT (N − 1)[AT P (N )A + Q − LT (M T )−1 L]x(N − 1)
2
(3.5-10)
facendo la seguente posizione:
P (N − 1) = AT P (N )A + Q − LT (M T )−1 L
abbiamo:
1
JN −1 = xT (N − 1)P (N − 1)x(N − 1)
2
(3.5-11)
9
é rispettata la condizione di minimo del secondo ordine poiché la derivata seconda di
u é pari a M, ed essendo M somma di due matrici definite positive é anch’essa definita
positiva: M>0 per cui u é il minimo
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
78
Ho quindi l’equazione di Riccati.
Siamo arrivati a dire che JN −1 é uguale ad un forma quadratica in x(N −1).
Nel problema al passo 1 [ovvero in N]con orizzonte 0 la JN ottimale era una
forma quadratica in x. L’ho inserita in JN −1 e ho trovato ancora una forma
quadratica in x(N − 1). E ció succederá ancora scalando gli indici. Fino a
quando arrivo in x(0) dove ho:
1
J0 = xT (0)P (0)x(0) ⇒ 10 u∗ (0)
2
Da u(0) ricavo x(1), da x(1) ricavo u(1) e cosi via. Cioé il valore della
equazione di Riccati ci consente assieme alla condizione iniziale di calcolare
il valore della cifra di merito. Ma la cosa importante é che io ho risolto la
procedura indietro nel tempo ottenendo soluzioni funzioni dello stato.
Caso stocastico
Quello che cambia é che si danno delle statistiche (valore atteso e varianza)
non essendo note le condizioni iniziali in maniera precisa.
E cosi facendo quello che cambia é il secondo passo (il primo é uguale in
N) dove devo calcolare il valore atteso di E[JN −1 ] date le statistiche. Avró
pertanto :
1
JN = E[ xT (N )Qf x(N )]
2
(3.5-13)
1
JN −1 = E[ [Ax(N − 1) + Bu(N − 1) + v(N − 1)]T P (N )[Ax(N − 1)+
2
1
1
+ Bx(N − 1) + v(N − 1)] + xT (N − 1)Qx(N − 1) + uT (N − 1)Ru(N − 1)]
2
2
(3.5-14)
Dato che x(N −1) é indipendente da v(N −1)(che agisce su x(N )), avremo11 :
E[x(N − 1)v(N − 1)] = 0
E[v(N − 1)Bu(N − 1)] = 0
infatti u∗ (0) = −[R + B T P (1)B]−1 [B T P (1)A]x(0) dove x(0) é noto e P (1) lo ricavo
dall’equazione di Riccati:
10
P (N − 1) = AT P (N )A + Q − LT (M T )−1 L
P (N ) = Qf
(3.5-12)
Quindi poiché conosco x(0) e poiché ricavo P(1), posso calcolare u(0)
11
anche la seconda espressione é valida perché non c’é correlazione;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
79
Allora l’introduzione di v(N − 1) porta un’unica modifica all’indice di costo:
1
1 T
∗
T
JN
−1 = E[v (N − 1)P (N )v(N − 1)] + x (N − 1)P (N − 1)x(N − 1)
2
2
(3.5-15)
Con l’incertezza peggiora quindi l’indice di costo.
Possiamo dire quindi che avere considerato il valore atteso dei costi e averne
fatto la minimizzazione, ha cancellato l’incertezza della cifra di merito, e
non é sorprendente che la soluzione sia la stessa del caso deterministico ma
concettualmente molto diverso, perché:
u∗ = −L(k + 1)x(k)
con
x(k) misurato
(3.5-16)
Mentre nel caso deterministico x(k) ha un andamento unico e quindi u∗ é
sempre lo stess,; nel caso stocastico x(k) non é sempre lo stesso, quindi se
ripeto l’esperimento non é detto che negli stessi istanti di tempo applico lo
stesso controllo!
3.5.2
Stato non completamente accessibile
Nel problema con non completa accessibilitá, é come se conoscessi solo X o
solo Y e quindi vi é un’aleatorietá di cui non riesco a liberarmi. Scriviamo
allora il problema nei termini LQ:
min
−1
u(k)N
0
N
−1
X
1
E[xT (N )Qf x(N )+
xT (k)Qx(k) + uT (k)Ru(k)]
2
k=0
E[x(0)] = x0
cov[x(0)] = Σ0
x(k + 1) = Ax(k) + Bu(k) + v(k) ∀k
v(k) ∈ W N (0, V ]
u(k) ∈ <m
(3.5-17)
(u libera)
y(k) = Cx(k) + Dw(k)
w(k) ∈ W.N.(0, W )
corr[v(k), w(k)] = 0
• Le informazioni sullo stato iniziale sono statistiche del primo e del
secondo ordine. V al solito é W.N . U é libera essendo elemento di
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
80
<m . x non é accessibile direttamente ma vi é una variabile y(k) =
Cx(k) + w(k) combinazione delle variabili di stato.
In sostanza abbiamo una misura di combinazioni di variabili di stato [o
almeno di parte di esse, quindi non necessariamente tutte; C potrebbe
infatti essere un segmento di matrice identitá]. La misura é corrotta
da rumore e w(k) é un processo stocastico sempre W.N. con media
nulla e covarianza nota. Faccio anche un ipotesi di incorrelazione tra
v(k) e w(k).
• In questo scenario voglio minimizzare l’indice di qualitá e voglio scegliere u(k) che dovrá essere un funzione di ció che conosco (o ció che
misuro):
u(k) = η(y(0), ...y(k − 1))
(3.5-18)
I dati che abbiamo a disposizione sono quelli fino all’istante immediatamente precedente a k. Se lo volessi fare con tutti i dati fino a
k dovrei cercare di avere soluzione istantanea del mio problema, ma
anche questo si puó fare e vedremo come. Queste informazioni fino a
k − 1 sono ovviamente misure e dunque informazioni a posteriori.
Ma in realtá la η é funzione anche delle informazioni a priori, ovvero di
A,B,C,V,Σ0 , etc. La scelta é pertanto model based in questo caso.
• L’informazione che é rappresentata da:




y(0)




..


.
y(k − 1)
(3.5-19)
b; posso pertanto
viene usata per fare un inferenza statistica sulla x
scrivere:
b(k|k − 1)
x
(3.5-20)
ovvero la stima di x all’istante k note le informazioni sino a k − 1.
Fatta la stima prendo la soluzione deterministica del problema [L(k)]
b(k|k − 1):
di controllo ottimo e la moltiplico per x
b(k|k − 1)
u(k) = −L(k)x
(3.5-21)
b.
Ho fatto una scelta arbitraria sostituendo la x con x
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
3. Il Problema dell’Incertezza
81
Non posso avere certezza che questa sia proprio la soluzione del problema perché sto facendo riferimento al problema dove non c’era alcun
riferimento ad un conoscenza indiretta di x tramite y; la soluzione era
infatti u(k) = −L(k)x(k).
Abbiamo applicato il principio della certezza equivalente: uso tutta
l’informazione disponibile per stimare lo stato e uso quanto calcolato come
se fosse lo stato vero.
Presa questa strada allora il mio problema si sposta e diventa quello di avere
una buona stima.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
82
3. Il Problema dell’Incertezza
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
4
Problema della Stima Ottima - Filtro di Kalman
4.1
Generalitá
b(k|k − 1).
Vogliamo determinare la migliore stima x
Ma migliore in che termini? Potrei dire che se conoscessi la x(k), ma non
la conosco, potrei costruire il vettore errore commesso:
b(k|k − 1)
e(k) = x(k) − x
(4.1-1)
Costruisco pertanto il vettore di differenza tra il vettore vero dello stato ed
b(k|k − 1) ed ho coordinata per coordinata l’errore.
x
Ebbene io vorrei rendere piccolo questo errore; come faccio? E allo stesso tempo che vuol dire rendere piccolo un errore? Per questo errore posso
considerare il valore atteso e ovviamente cercare di averlo pari a 0. E per
quanto riguarda la dispersione attorno al valor medio potrei considerare la
matrice di covarianza nulla. Allora i due elementi che indicano la bontá
della stima sono:
E[e(k)] = 0
n
cov[e(k)] = E [e(k) − E[e(k)]][e(k) − E[e(k)]]T
o
(4.1-2)
=0
4. Problema della Stima Ottima - Filtro di Kalman
84
O meglio, vorrei questi elementi il piú vicino possibile allo 0.
Def. 4.1.1. Lo stimatore é una funzione che genera la stima; é pertanto
qualcosa che prende in ingresso dati e produce dati. Se i dati provengono da
un processo stocastico lo stimatore é una funzione di variabile aleatorie e in
quanto tale é esso stesso una variabile aleatoria a priori. A posteriori
é un numero.
Uno stimatore é pertanto una struttura che produce una stima.
La struttura dello stimatore é assegnata:
b(k + 1|k) = x
b(k + 1|k − 1) + L(k)(y(k) − yb(k|k − 1))
x
(4.1-3)
Assegnata la struttura vado ad ottimizzare i parametri: cerco la migliore
K(k). Per farlo devo minimizzare un certa quantitá come faccio nel caso
dell’ottimizzazione non statica. Sono problemi funzionali.
Quando obbligo la funzione a far parte di un data struttura il problema di
ottimizzazione diventa di tipo parametrico. Cerco allora i migliori parametri, non la migliore funzione.
Detto questo, nel caso considerato ho assegnato la struttura e pertanto cerco i migliori parametri K(k).
In matematica diremo che abbiamo rimosso tutte le classi di equivalenza a
meno di una e pertanto ho un problema parametrico per la scelta di K(k).
Il mio stimatore si compone di due elementi:
b(k + 1|k − 1) , dove in k − 1 ho tutte le informazioni
1. un predittore x
sino alla y(k−1) e posso spingermi a fare da k−1 a k+1 una previsione
sullo stato successivo condizionata alle informazioni fino a k.
2. una correzione K(k)[y(k) − yb(k|k − 1)] , cosi detta perché opera
su un dato appena arrivato, cioé y(k). Siamo a k ed elaboriamo le
informazioni creando la differenza tra il valore y(k) misurato ed il
valore predetto dell’uscita a quell’istante1 .
1
Il valore dell’uscita in quell’istante é una specie di finzione che sto facendo, fingo
di non sapere che il dato é quello e mi spingo a fare una previsione, é un tentativo di
predizione dell’uscita sulla base delle informazioni dello stato;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
85
Noto il modello posso sbilanciarmi a dare questa espressione, con w a valor
medio nullo:
b(k|k − 1)
yb(k|k − 1) = C x
Ebbene questa predizione é disallineata con l’uscita vera misurata; essendovi
gli effetti del rumore di misura quindi posso parlare di errore di predizione
dell’uscita:
ε(k) = y(k) − yb(k|k − 1)
(4.1-4)
Osserviamo che differentemente da quanto accade per lo stato, la y(k) é
misurabile mentre yb(k|k − 1) é generata dall’algoritmo ed é un numero dopo
che si é realizzata ⇒ Cioé la ε(k) é nota!.
L’idea alla base di questa struttura, é avere una correzione tanto piú intensa
quanto maggiore é l’errore che faccio nella predizione dell’uscita.
4.2
Ipotesi e Struttura del Predittore di Kalman
Vogliamo effettuare un stima dello stato in ambito stocastico; abbiamo un
sistema dinamico tempo discreto lineare affetto sia da incertezza di processo
(che agisce direttamente sullo stato del sistema) sia da incertezza di misura
(che agisce sull’uscita). Il sistema con cui abbiamo a che fare é quindi il
seguente:
x(k + 1) = Ax(k) + Bu(k) + v(k)
(4.2-1)
y(k) = Cx(k) + w(k)
Assunzioni:
1. v(k) e w(k) sono Rumori Bianchi, quindi sono caratterizzati da una
media nulla e da una perfetta incorrelazione tra i campioni successivi:
(
T
E[v(l)v (m)] =
Q l=m
0
l 6= m
(4.2-2a)
(
T
E[w(l)w (m)] =
R l=m
0
l 6= m
(4.2-2b)
Q,R sono matrici di covarianza.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
86
2. Ipotizziamo anche che i due rumori sono incorrelati tra di loro, ovvero
dati v(k), w(k) si abbia:
E[v(l)wT (m)] = 0
(4.2-3)
3. Inoltre i rumori di processo e di misura sono incorrelati dagli stati
all’istante corrente, stiamo supponendo che il rumore di processo sia
correlato allo stato solo all’istante successivo.
4. Sullo stato iniziale noi supponiamo di conoscerne il valore atteso e
la sua distribuzione, ovvero la matrice di covarianza della condizione
iniziale che chiamiamo P (0):
E[x(0)] = x0
E[(x0 − x0 )(x0 − xT0 )] = P (0)
(4.2-4)
Voglio trovare una stima dello stato del sistema.
Lo facciamo tramite la seguente struttura2 :
b(k + 1|k) = Ax
b(k|k − 1) + Bu(k) + L(k)[y(k) − C x
b(k|k − 1)]
x
(4.2-5)
costituita da 2 termini: una é la copia dell’impianto, ed un’altra é una correzione sulla base dell’errore di stima: facciamo una predizione in base alla
stima che avevamo all’istante precedente basata sul modello del sistema e
poi facciamo una correzione in base all’errore di stima.
Questa struttura che abbiamo appena visto si chiama Predittore di Kalman , perché c’é (k + 1|k), quindi non sfrutto l’ultima informazione che mi
é arrivata all’istante k + 1.
Per chiamarsi invece propriamente Filtro di Kalman dovremmo sfruttare
anche quest’ultima informazione (ovvero dovremmo avere (k + 1|k + 1)).
Anche se é piú propriamente utilizzato il predittore rispetto al filtro.
2
Per capire l’utilizzo di questa struttura, si rimanda il lettore alla fine del capitolo sulla
Stima Bayesiana.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
4.3
87
Studio del Predittore di Kalman
Analizziamo la qualitá della stima fornita dalla struttura assegnata (v.
eq.(4.2-5)).
4.3.1
Condizione iniziale
La prima cosa che ci conviene studiare é l’errore di stima e(k); in particolar
modo l’evoluzione dell’errore, ovvero e(k + 1), sará:
b(k + 1|k) =
e(k + 1) = x(k + 1) − x
+ v(k) − Ax
− L(k)[y(k) − yb(k|k − 1)] =
b(k|k − 1) − = Ax(k) + Bu(k)
Bu(k)
b(k|k − 1)] + v(k) =
= Ae(k) − L(k)[Cx(k) + w(k) − C x
= [A − L(k)C]e(k) − L(k)w(k) + v(k)
(4.3-1)
La dinamica dell’errore di stima, sebbene non sia mai verificabile, é data
dalla precedente espressione. Non avremo mai una realizzazione, ma dato
che abbiamo informazioni a priori posso dirne la media:
E[e(k + 1)] = [A − L(k)C] E[e(k)]
(4.3-2)
Vorremmo dallo stimatore un valore atteso nullo per l’errore. L’unico modo
che ho é imporre che E[e(0)] = 0, cioé se parte da stato nullo ci resta:
b(0)] = 0
E[e(0)] = E[x(0) − x
(4.3-3)
Def. 4.3.1. Se é noto il valore medio della condizione iniziale dello stato,
considero questa come condizione iniziale del filtro.
Allora lo stimatore non é polarizzato, ovvero é a media nulla.
Def. 4.3.2. Uno stimatore é non polarizzato quando il suo valore medio
coincide con il valore vero.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
88
4.3.2
Guadagno
A questo punto per decidere come progettare la L(k) bisogna ottimizzare
un’altra caratteristica del filtro: valuto la matrice di covarianza dell’errore
di stima.
Ho un errore di stima a media nulla, vorrei che fosse il meno disperso possibile intorno a questo valor medio nullo (cioé quanto piú é stretta la covarianza
meglio é).
La matrice di covarianza all’istante k + 1 dipenderá dalla scelta di L all’istante k, quindi la possiamo vedere come una P (k + 1|k).
É chiaro che dire che minimizzo una matrice non ha senso; quello che posso fare é minimizzare la forma quadratica associata alla matrice, poiché la
matrice di covarianza é per definizione una matrice semidefinita positiva,
quindi quando vado a considerare la forma quadratica ad essa associata
sará ≥ 0. In pratica il problema che voglio risolvere é:
min αT P (k + 1|k)α
(4.3-4)
L(k)
Si dimostra che la minimizzazione é indipendente dalla scelta di α.
Se abbiamo inizializzato bene il filtro, il valore atteso dell’errore di stima é
b(0) = x(0)). Si ha:
nullo (deriva dalla scelta x
P (k + 1|k) = E



[e(k + 1|k) − E[e(k + 1|k)]][e(k + 1|k) − E[e(k + 1|k)]]T


|
{z
=0
}
|



=
} 

{z
=0
T
= E[e(k + 1|k)e (k + 1|k)] =
n
o
= E [(A − L(k)C)e(k) + v(k) − L(k)w(k)][(A − L(k)C)e(k) + v(k) − L(k)w(k)T ] =
= E[Ae(k)eT (k)AT ] − E[Ae(k)eT (k)C T LT (k)] − E[L(k)Ce(k)eT (k)AT ]+
+ E[L(k)Ce(k)eT (k)C T LT (k)] + E[v(k)v T (k)] + E[L(k)w(k)wT (k)LT (k)]
(4.3-5)
v(k) e w(k) non dipendono dallo stato all’istante k e quindi non dipendono
nemmeno dall’errore all’istante k; significa che quando vado a fare i prodotti
misti mi trovo correlazione nulla.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
89
La stessa cosa vale tra il rumore di misura e il rumore di processo.
P (k + 1|k) = A E[e(k)eT (k)] AT − A E[e(k)eT (k)] C T LT (k)+
|
{z
P (k|k−1)
−L(k)CP (k|k − 1)AT
}
|
{z
P (k|k−1)
}
+ L(k)CP (k|k − 1)C T LT (k)+
(4.3-6)
+Q + L(k)RLT (k)
Che in maniera compatta possiamo scrivere come segue:
P (k + 1|k) = [A − L(k)C]P (k|k − 1)[A − L(k)C]T + Q + L(k)RLT (k)
(4.3-7)
Utilizziamo il metodo del Complemento dei quadrati per portarci questa
formula in una forma piú agevole al fine di semplificare i calcoli. Infatti
supponendo per esempio di dover trovare la x che minimizza αx2 + βx,
allora se lo riscriviamo come (γx + η)2 + µ, il termine µ non dipenderá da x
e per minimizzare la formula basterá annullare il termine quadratico in x,
ottenendo:
αx2 + βx = γ 2 x2 + η 2 + 2γxη + µ
Ovvero:

√

γ
=
α






β
η= √
2 α





β2

 µ = −η 2 = −
(4.3-8)
4α
Ritorniamo allora all’equazione (4.3-6). Ci rendiamo conto che:
• i termini [AP (k|k − 1)AT + Q] non dipendono da L(k) e quindi non
rientrano nella minimizzazione;
• il termine L(k)[CP (k|k − 1)C T + R]LT (k) rappresenta un termine
quadratico in L(k);
• i termini −AP (k|k − 1)C T LT (k) − L(k)CP (k|k − 1)AT rappresentano il doppio prodotto tra L(k) e AP (k|k − 1)C T .
A questo punto per far comparire il quadrato all’interno della nostra minimizzazione aggiungiamo e sottraiamo la quantitá S cosi definita:
S = AP (k|k − 1)C T [R + CP (k|k − 1)C T ]−1 CP (k|k − 1)AT
(4.3-9)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
90
A questo punto possiamo affermare che:
L(k)[R + CP (k|k − 1)C T ]LT (k) − AP (k|k − 1)C T LT (k) − L(k)CP (k|k − 1)AT + S − S =
= [L(k) − AP (k|k − 1)C T (R + CP (k|k − 1)C T )−1 ](R + CP (k|k − 1)C T )[L(k)+
− AP (k|k − 1)C T (R + CP (k|k − 1)C T )−1 ]T − S
(4.3-10)
Dato che l’ultimo termine S (4.3-9) non dipende da L(k), per minimizzare
l’indice di costo bisogna annullare il termine quadratico imponendo:
L(k) = AP (k|k − 1)C T [R + CP (k|k − 1)C T ]−1
4.3.3
(4.3-11)
Equazioni del Predittore


L(k) = AP (k|k − 1)C T [R + CP (k|k − 1)C T ]−1






b(k + 1|k) = Ax̂(k|k − 1) + Bu(k) + L(k)[y(k) − C x̂(k|k − 1)]
x



P (k + 1|k) = [A − L(k)C]P (k|k − 1)[A − L(k)C]T + Q + L(k)RLT (k)










b(0) = x(0)
x
P (0| − 1) = P (0)
(4.3-12)
Questa é la scelta ottimale che minimizza la cifra di merito; con questa L(k)
difatti io avró il predittore di Kalman con la minima matrice di covarianza.
Nel set di equazioni devo riportare anche le condizioni iniziali: visto che
l’errore ha media nulla, coincidono la covarianza della condizione iniziale
e la covarianza dell’errore e quindi si puó inizializzare P (0| − 1) = P (0).
Questo perché la condizione iniziale del filtro é stata presa pari al valore
atteso della condizione iniziale.
La P (k + 1|k) rappresenta l’equazione di aggiornamento dell’Incertezza.
Per ottenere le equazioni del filtro basta considerare le equazioni un passo
avanti (k = k + 1). Dal punto di vista implementativo, risulta tipicamente preferibile implementare il predittore anzicché il filtro. Ció é dovuto
al fatto che per ottenere la stima bisogna effettuare una certa quantitá di
operazioni matematiche che richiedono tempo di elaborazione. All’istante di campionamento k, dovendo acquisire y(k) non sará quindi possibile
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
91
rendere immediatamente disponibile (cioé in un tempo nullo) la stima. In
altri termini all’istante k + 1 potró certamente rendere disponibile la stima
b(k + 1|k) data dalle (4.3-12) mentre la stima x
b(k + 1|k + 1) sará disponibile
x
solo all’istante k + 2.
4.3.4
Esempio teorico
Prendiamo un sistema del primo ordine senza ingresso3 :
x(k + 1) = ax(k) + v(k)
(4.3-13)
y(k) = x(k) + w(k)
utilizziamo le equazione del filtro (4.3-12):
b(k + 1|k) = ax
b(k|k − 1) + l(k)(y(k) − x
b(k|k − 1))
x
p(k + 1|k) = a2 p(k|k − 1) + q − l(k)a p(k|k − 1)
l(k) =
a p(k|k − 1)
=
r + p(k|k − 1)
1+
(4.3-14)
a
r
p(k|k − 1)
(4.3-15)
Valutiamo il comportamento del guadagno al variare della matrice di covarianza r del rumore di misura e della matrice di covarianza p dell’errore di
stima :
• il guadagno é basso se
r
p(k|k−1)
é elevato.
Ció capita se r é elevato (ho molta incertezza sulla misura), o p é basso
(ho molta fiducia nella stima, ovvero suppongo che l’errore di stima
abbia una covarianza piccola).
• il guadagno é elevato se
r
p(k|k−1)
é basso.
Ció capita se r é piccola (quindi ho un’uscita molto affidabile),o p elevato (ovvero ho poca fiducia nella stima che ho effettuato).
Ricapitolando: se ci fidiamo delle uscite piuttosto della stima che
abbiamo ottenuto allora prendiamo un l(k) elevato per spostarci subito dalla stima che abbiamo effettuato e correggerla il piú velocemente
possibile. Se invece abbiamo delle uscite di cui ci fidiamo poco mentre
la stima risulta affidabile, prendiamo un l(k) piccolo.
3
Utilizziamo lettere minuscole perché si tratta di vettori;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
92
Vediamo ora cosa succede a p(k + 1|k):
a p(k|k − 1)
ap(k|k − 1) =
r + p(k|k − 1)
a2 p2 (k|k − 1)
= a2 p(k|k − 1) + q −
=
r + p(k|k − 1)
((
((
((
((
a2 p(k|k − 1)r + (
a2(
p2(
(k|k
− 1) + qr + qp(k|k − 1) − (
a2(
p2(
(k|k
− 1)
=
r + p(k|k − 1)
(4.3-16)
p(k + 1|k) = a2 p(k|k − 1) + q −
Supponiamo ora q = 0, il che equivale a dire che esiste solo il rumore di
misura r e non quello di processo:
p(k + 1|k) =
a2 p(k|k − 1)r
1
1
1 1
⇒
= 2
+
(4.3-17)
r + p(k|k − 1)
p(k + 1|k)
a p(k|k − 1) a2 r
Sulla base del parametro a possiamo vedere cosa succede a p(k):
• Per a ≤ 1, ovvero se il sistema é asintoticamente o semplicemente stabile, abbiamo che il termine
1
(a2 r)
> 0; quindi abbiamo un
ingresso positivo costante che porta il sistema a divergere. Per a < 1
l’inversa di p(k+1|k) sta divergendo (sta andando all’infinito) e quindi
p(k + 1|k) → 0.
Quindi in assenza di rumore di misura, per un sistema asintoticamente stabile o semplicemente stabile, la matrice di covarianza dell’errore
00 p00
va a zero.
• Per un sistema instabile (a > 1), l’inverso della matrice di covarianza converge verso una valore di regime, perché ha un ingresso costante
contrattivo, e identicamente anche la p(k + 1|k) sta convergendo verso
una valore di regime.
Questo valore di regime puó essere calcolato anche diversamente, ovvero
imponendo p = p(k + 1|k) = p(k|k − 1) ottenendo quella che viene chiamata Equazione Algebrica di Riccati (non essendo piú un’equazione alle
differenze).
p=
a2 rp
r+p
⇒ p(p + r(1 − a2 )) = 0 ⇒

p = 0
 p = −r(1 − a2 )
(4.3-18)
Questa equazione ha due soluzioni che variano a secondo del valore di a:
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
93
• Per a < 1 una soluzione é 0 ed un’altra é negativa (non ha senso fisico
perché la covarianza deve essere positiva o nulla).
• Per a = 1 ci sono due soluzioni che sono entrambe nulle.
• Per a > 1 ci sono due soluzioni, una nulla ed una positiva. La positiva
é proprio la soluzione di convergenza della matrice di covarianza (nel
nostro caso si tratta di varianza essendo p un vettore).
In casi piú complessi di un sistema del primo ordine, o si risolve la p in
maniera algoritmica (tramite Matlab), oppure si suppone che la p convergerá
ad un valore di regime e quindi pure il guadagno convergerá ad un valore di
regime essendo la 00 l00 funzione di 00 p00 .
Posso considerare come soluzione subottimale a questo problema invece
di una l(k) tempo variante, che é l’unica che puó minimizzare quella cifra
di merito che ho impostato, una l(k) costante con valore pari al valore di
regime a cui la l(k) perverrebbe a seguito della convergenza al valore di
regime della p. Quindi per fare questo devo risolvere l’equazione algebrica
associata all’equazione di Riccati: pongo p(k + 1|k) = p(k|k − 1), la risolvo
(non a mano ma tramite il comando di Matlab lqe oppure kalman) e ricavo
il guadagno del filtro.
4.4
Filtro di Kalman esteso
Nel precedente paragrafo abbiamo considerato solo modelli di tipo lineare
tempo-invariante. É possibile mostrare che l’ ottimalitá del filtro di Kalman
é preservata anche nel caso di modelli lineari tempo-varianti. Tale caratteristica ha spinto i ricercatori a studiare la possibilitá di usare lo stimatore
anche per sistemi che non rispettassero le ipotesi sulle quali si basa il procedimento per ricavare la struttura del filtro. Un’applicazione molto comune é
ad esempio il cosiddetto Filtro di Kalman esteso che consiste nell’applicazione del filtro di Kalman ad un sistema non lineare utilizzando nelle (4.3-12)
le matrici del modello linearizzato intorno alla stima immediatamente precedente. Anche se efficace in molte situazioni pratiche va sottolineato che
allo stato non esistono dimostrazioni rigorose riguardo sia all’ottimalitá che
alla convergenza del filtro di Kalman esteso.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
94
Consideriamo il modello non lineare stocastico:
(
x(k + 1) = f (x(k), u(k)) + v(k)
y(k) = g(x(k)) + w(k)
(4.4-1)
Supponiamo di conoscere un modello dell’incertezza, ad esempio v(k) ∈
W.N.(0, V ) e w(k) ∈ W.N.(0, W ); inoltre é noto il modello della transizione
di stato f ed é noto il modello della funzione di uscita g.
Quindi noi possiamo prelevare da questo sistema delle uscite che chiamiamo
y(k) che sono misurate ma corrotte da rumore.
Il nostro problema é capire come creare lo stato x̂(k) in maniera indiretta?
La fase di predizione come si puó fare visto che ora noi conosciamo un
modello che é di tipo non lineare?
Il filtro di Kalman esteso si ottiene dalle (4.3-12):


L(k) = A(k)P (k|k − 1)C T (k)[R + C(k)P (k|k − 1)C T (k)]−1





ŷ(k)


}|
{
z




x̂(k
+
1|k)
=
f
(x̂(k|k
−
1),
u(k))
g(x̂(k|k
−
1)))
+
L(k)(y(k)
−



|
{z
} |
{z
}
P redizione
correzione



P (k + 1|k) = [A(k) − L(k)C(k)]P (k|k − 1)[A(k) − L(k)C(k)]T + Q + L(k)RLT (k)







b(0) = x(0)
x





P (0| − 1) = P (0)
(4.4-2)
dove:
∂f
|
∂x(k) x=x̂(k|k−1)
∂g
|
C(k) =
∂x(k) x=x̂(k|k−1)
A(k) =
(4.4-3)
Quindi nella logica di questo stimatore predizione + correzione, la L(k)
é calcolata su un modello linearizzato dell’impianto non lineare mentre la
parte predizione viene fatta con l’intero modello di tipo non lineare.
Il modello é tempo variante perché ad ogni istante linearizzo intorno a un
diverso x̂(k|k − 1).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
4.5
95
Implementazione numerica
Partiamo dal il classico modello di un sistema a T.D. con rumore di processo
~vk e rumore di misura4 w
~ k:

~
xk+1 = Ak ~x + B~uk + Gk~vk

(4.5-1)
~yk = Ck ~xk + w
~k
Calcolato il guadagno ad ogni passo, tramite una procedura di minimizzazione tra istante k e istante k + 1 che ci permette di non considerare la
tempo varianza o invarianza della matrice A, siamo giunti alle espressioni
del predittore di Kalman, che riscriviamo in questo modo:
Rke = R + Ck Pk|k−1 CkT
Lk = Ak Pk|k−1 CkT Rke−1
Pk+1|k = Ak (I − Pk|k−1 CkT Rke−1 Ck )Pk|k−1 (I − Pk|k−1 CkT Rke−1 Ck )T ATk + Gk Qk GTk
(4.5-2)
Ci rendiamo conto che Pk|k−1 é memorizzata, Ak , Ck , Gk le conosco dal
modello. Lk é il guadagno; Qk e Rk sono rispettivamente la matrice di covarianza del rumore di processo e del rumore di misura.Pk+1|k dal punto di
vista stocastico é la matrice di covarianza dell’errore che si minimizza per il
calcolo del guadagno. Con Rke indichiamo in forma compatta il fattore che
viene invertito.
Che differenza c’é tra filtro e predittore di Kalman?
Il filtro utilizza tutti i campioni fino a quello attuale, cioé l’istante in cui
determino la stima é l’istante in cui ho a disposizione l’ultima misura. Per
il predittore ho, invece, la stima k stante k − 1.
Con abuso di linguaggio si parla sempre di filtro di Kalman ma, soprattutto dal punto di vista numerico, la differenza é fondamentale: se noi
vogliamo usare le equazioni del filtro e non quelle del predittore dobbiamo
necessariamente avere a disposizione la misura; il che vuol dire che la misura
arriva con lo stesso periodo di campionamento con cui eseguo l’algoritmo5 .
Ma, nella pratica, nulla garantisce che la misura arrivi in tempo
4
La notazione sui rumori puó essere invertita; per generalitá si suppone che il rumore
di processo entri con una funzione di trasferimento Gk ;
5
Se eseguo l’algoritmo ogni 10−3 secondi devo avere un misura almeno ogni 10−3
secondi.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
96
Il predittore non richiede di avere la misura all’istante k. É un problema di
sincronismo tra il processo di calcolo e le misure; se il tempo che impiego
ad eseguire l’algoritmo é inferiore al periodo di campionamento dello strumento di misura allora il problema non si pone affatto perché ho sempre
una misura a disposizione altrimenti il problema é sentito e devo usare un
predittore.
Il Filtro di Kalman, in quanto algoritmo di stima, é uno stimatore lineare che stima la distribuzione di probabilitá dello stato; infatti, se si
suppone che i rumori siano gaussiani, anche lo stato sará gaussiano e quindi
sará sufficiente conoscere media e varianza per conoscere delle statistiche di
qualsiasi ordine. E la media, nelle espressioni del filtro, sta nella6 x̂:
x̂k+1|k = Ak x̂k|k−1 + Bk uk − Lk (Ck x̂k|k−1 − ỹk )
(4.5-3)
La valutazione della matrice di covarianza é fondamentale: se la matrice P
ha un norma elevata, possiamo concludere che non si puó fare affidamento
sulla stima.
Ora vediamo come si implementa quanto visto nell’equazione (4.5-2).
Se facessimo un’implementazione diretta, dovremo invertire la matrice Rke .
Potremo, quindi, utilizzare il metodo di Gauss che utilizza una decomposizione LU 7 . Questo algoritmo presenta due problemi:
- Onerositá computazionale, pari a O(n3 ); spesso i filtri saranno
real time e bisogna rispettare dei vincoli di calcolo, ovvero qualsiasi
operazione da evitare deve essere evitata. Pertanto da un punto di
vista computazionale le equazioni (4.5-2) non sono quanto di meglio
si possa fare;
- Si perdono le proprietá della matrice di covarianza dell’errore; infatti, nelle (4.5-2) non si sfruttano le ipotesi su P che é sim6
A volte si utilizzano come notazione della stima dei pedici piuttosto che il ˆ·
La decomposizione LU prevede la fattorizzazione di una matrice A in una matrice L
triangolare superiore e U triangolare inferiore:
7
A = LU
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
97
metrica e definita positiva. Se perde le sue proprietá, P potrebbe non
essere piú una matrice di covarianza. Questo puó derivare da errori
di round off e da approssimazioni numeriche.
Sarebbe quindi opportuno che l’algoritmo preservasse le proprietá di P. Non
é peró possibile trovare un algoritmo che conservi le proprietá di P e che sia
contemporaneamente meno oneroso di Gauss.
Bisogna, quindi, sacrificare un po’ di potenza di calcolo per avere stabilitá
numerica. Tuttavia in alcuni casi particolari si possono costruire algoritmi
che hanno efficienza computazionale O(n3 ) (ad esempio quando il problema
é tempo invariante oppure Q ed R sono diagonali).
Vedremo delle tecniche che consentono di risolvere alla radice il problema
della perdita di struttura di P, dando piú importanza al metodo piuttosto
che all’algoritmo numerico vero e proprio.
4.5.1
Algoritmi Square Root
Per preservare le proprietá di P si ricorre a degli algoritmi in cui non si
propaga realmente P ma si sfruttano le sue proprietá per ricavarne una fattorizzazione. Questi metodi sono tutti basati sulla fattorizzazione di P. Io
fattorizzo e porto in conto solo i suoi fattori.
Altro punto fondamentale di tutti questi algoritmi é che una volta fattorizzata la matrice di covarianza P lo Schema di Calcolo si articola in questo
modo:









U = 





(4.5-4)
Si costruisce una matrice a blocchi che contiene gli elementi calcolati al
passo k che si chiama Pre-Array. Poi si moltiplica per una matrice U e si
ottiene un matrice che si chiama Post-Array i cui blocchi contengono gli
elementi al passo k + 1. La matrice U é una matrice che rende triangolare
il Pre-Array ed a sua volta é ortogonale.
Il Pre-Array in generale non é triangolare, puó esserlo. Il Post-Array é
triangolare a blocchi e contiene dei termini che dipendono da guadagno,
matrice di covarianza, matrici e rumori al passo k + 1.
In alcuni algoritmi questa cosa sembra non essere vera perché il Pre-Array
a volte non dipende solo dagli elementi al passo k ma da tutti gli input
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
98
dell’algoritmo: ad esempio, al passo k potrei conoscere la matrice Ak+1 e
inserirla nel Pre-Array.
Ricapitolando: In alcuni casi il Pre-Array dipende dagli elementi calcolati
al passo k + 1, ma sono sempre input del filtro di Kalman.
Le due cose piú importanti sono:
a) individuare come si fattorizza la matrice di covarianza;
b) individuare come si calcola questa matrice ortogonale che triangolarizza il Pre-Array;
Ogni algoritmo ha queste due componenti.
4.5.2
Square Root Filter
P viene decomposta tramite il metodo di Cholesky. Questo metodo
prevede di decomporre una matrice simmetrica e definitiva positiva8 .
Pertanto la matrice di covarianza P all’istante k la decompongo in questo
modo:
Pk = Sk SkT
(4.5-5)
Dove Sk , definito come fattore di Cholesky della matrice di covarianza, é una
matrice triangolare inferiore (o superiore, ma noi per scelta la prendiamo
inferiore). Il concetto é: prendo P e la fattorizzo, nell’algoritmo non metto
P ci metto i suoi fattori; per cui puó succedere qualsiasi cosa perché quando
poi ricostruisco P le sue proprietá sono preservate (non é possibile che la
Sk non resti triangolare, é un’ipotesi dell’algoritmo, perché gli elementi che
sono 0 restano tali perché non vengono calcolati per un motivo di efficienza.).
Dicendo che é triangolare, sto giá supponendo che non ci siano auto valori nulli per la matrice Sk ? S, ma vedremo che possibile rimuovere questa
ipotesi; quando si utilizza la fattorizzazione di Cholesky, come stiamo facendo in questo filtraggio square root, P non puó avere auto valori nulli.
É vero comunque che se S avesse un autovalore nullo, P potrebbe avere un
auto valore nullo?Si, Numericamente succede a causa di errori di arrotondamento, round off, . . . se capita uno zero sulla diagonale ci sará anche uno
zero tra gli auto valori. Lo square Root Filter soffre di questo problema.
8
non semidefinitiva positiva; la forma quadratica associata non puó essere nulla e gli
auto valori sono strettamente positivi
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
99
La fattorizzazione di Cholesky é robusta anche se non si adotta il pivoting.
Cosa significa pivotare con il metodo di Gauss? Si prende il massimo sulla
riga, si permutano le righe e poi si divide per il massimo. Questo garantisce la stabilitá numerica dell’algoritmo di Gauss. Con la fattorizzazione di
Cholesky, anche se questo non viene fatto, la stabilitá permane.
Allora la fattorizzazione di Cholesky si puó scrivere in forma esplicita;
supponiamo che P sia 3 per 3:




l11

Sk = 
l21 l22 0 
l31 l32 l33
Per ottenere P basta seguire la (4.5-5). Ci rendiamo conto che nel prodotto
2 ) e quindi devo fare la
compariranno dei termini al quadrato (es: P11 = l11
radice quadrata.
Questo é un altro problema dell’ algoritmo Square Root perché le estrazioni di radice quadrata sono onerose; se le potessi risparmiare sarebbe meglio
(in termini di calcolatore).
Devo infatti chiamare una funzione che calcoli uno sviluppo in serie di Taylor arrestato ad un potenza tale che l’errore sia minore della tolleranza9 .
Nel calcolo della radice si fa lo sviluppo fino ad un ordine sufficientemente alto dove il termine di arresto é dato dal confronto tra la tolleranza e
l’errore stimato dalla formula di Lagrange (Es. tol=10−3 , errore Stimato
Lagrange=10−4 allora arresto lo sviluppo!).
Nel caso dell’algoritmo Square Root ció viene fatto almeno per gli elementi
9
Come si calcola sin(x)? Si fa la serie di Taylor e si includono dinamicamente un
numero di termini tale che l’errore residuo, che si puó determinare con la formula di
Lagrange, sia minore di una tolleranza. La formula del resto di Lagrange consente di
stimare almeno l’ordine dell’errore. Quando questo ordine di grandezza é minore della
tolleranza allora ho calcolato la funzione. Ugualmente si fa per la radice, e quindi calcolo i
termini fino a che non sono soddisfatto. Mi troveró una serie di somme e potenze; ma non
le derivate, poiché essendo giá calcolata la serie di Taylor, si esprime tutto nella forma
polinomiale di Horner.É un forma che mette in evidenza la x fino a che non si ha
un forma senza potenza che permette di ridurre tutto a moltiplicazioni e addizioni. Un
esempio di applicazione della formula é il seguente:
a3 x3 + a2 x2 + a1 x + a0
x(a3 x2 + a2 x + a1 ) + a0
x[x(a3 x + a2 ) + a1 ] + a0
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
100
della diagonale, sebbene ci siano altre radici nascoste, e quindi visto l’onere
di queste radici l’algoritmo puó diventare abbastanza pesante visto che tra
l’altro viene fatto ogni passo di campionamento. Se potessimo, quindi, sarebbe meglio evitarle.
A questo punto vediamo come si comporta lo Square Root Filter. Si fattorizzano le matrici di covarianza del rumore di processo e di misura in questo
modo10 :
1
1
1
2
1
Rk = Rk2 RkT 2
Qk =
Da notare che l’esponente
1
2
(4.5-6)
Qk QTk 2
si utilizza solo in questo caso, mentre nella
(4.5-5) avevamo indicato il fattore di Cholesky con Sk .
Ipotizziamo che Rk e Qk siano definite positive. C’é una differenza con il
filtro di kalman: nelle ipotesi K.F., R é definita positiva perché altrimenti
il procedimento di minimizzazione non arriva a compimento, é un ipotesi
fondamentale per calcolare il guadagno. Invece Q é semi definita positiva.
Consideriamo il Pre-Array:

1
R2
 k
0
1
Ck Sk

0
1
2
U =
Ak Sk Gk Qk

1
e2
Rk
Hk

0
0
(4.5-7)
Sk+1 0
1
Rk2 ,Qk2 sono triangolari inferiori per convenzione.
Concentriamoci su come funziona: io costruisco il Pre-Array che dipende da
1
cose che conosco, tipicamente calcolate al passo k; Rk2 la conosco perché é il
fattore di Cholesky della matrice Rk , Sk é il fattore di Cholesky della matrice
di covarianza al passo k. L’algoritmo non propaga proprio P bensi solo Sk :
1
Sk quindi non lo devo calcolare. Ak , Gk sono disponibili dal modello e Qk2
é la fattorizzazione di Cholesky di Qk . La matrice Hk si dimostra essere
1
collegata al guadagno: Lk = Rke 2 Hk .
Sk resta triangolare per costruzione? Si, perché dal punto di vista numerico
10
Quando si utilizza la fattorizzazione di Cholesky, i termini della fattorizzazione a volte
si chiamano radici quadrate della matrice e si indicano con l’esponente 12 . Ma non é che
vedendo la radice quadrata facciamo la radice elemento
√ √ per elemento! Si utilizza questa
notazione solo per analogia visiva al caso numerico 2 2 = 2.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
101
non si fa il prodotto riga per colonna ma il calcolo della (4.5-7) viene fatto
tramite un ciclo for: gli elementi che sono nulli restano tali perché non sono
proprio calcolati, il che permette di risparmiare tempo computazionale ed
essere piú precisi.
Allora, se avessi un modo per conoscere questa U, facendo idealmente il
prodotto righe per colonne (guardate il Post-Array) ottengo Sk+1 da Sk . Per
ottenere la U , si puó utilizzare l’algoritmo di Gram-Schmidt11 oppure
in questo contesto si puó determinare con il Metodo Householder12 .
Osservazioni:
Ma il Post-Array come é stabilito, perché ha quella forma?
U non é qualsiasi, é ortogonale che triangolarizza, queste due ipotesi portano i blocchi del Post-Array ad avere proprio quella struttura.
Il ciclo for che dobbiamo fare per passare da pre a a post array non é dipendente dalla matrice U? Certo, nel ciclo si calcola anche la U; nel solo ciclo
determino U e faccio idealmente il prodotto.
Lo Square Root Filter serve solo ad avere maggiore stabilitá e a garantire
le proprietá sulla matrice di covarianza P. Non é meno oneroso.
11
L’ortogonalizzazione Gram-Schmidt é un algoritmo che permette di ottenere un insieme di vettori ortogonali a partire da un generico insieme di vettori linearmente indipendenti in uno spazio vettoriale dotato di un prodotto scalare definito positivo (fonte:
Wikipedia);
12
Una trasformazione di Householder in uno spazio tridimensionale é la riflessione dei
vettori rispetto ad un piano passante per l’origine. In generale in uno spazio euclideo
essa é una trasformazione lineare che descrive una riflessione rispetto ad un iperpiano
contenente l’origine. La trasformazione di Householder é stata introdotta nel 1958 dal
matematico statunitense Alston Scott Householder (1905-1993). Questa puó essere usata
per ottenere una fattorizzazione QR di una matrice.(fonte: Wikipedia);
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
102
4.5.3
Filtro di Chandrasekhar
Si basa sull’ipotesi di tempo invarianza del sistema. Se il sistema é Tempo
invariante si puó fattorizzare l’incremento della matrice di covarianza:
Pk|k−1 − Pk−1|k−2 = ∆P = Lk ΣLTk
(4.5-8)
Questo incremento ∆P si puó fattorizzare in una matrice triangolare inferioreLk ,
una matrice triangolare superiore LTk e una matrice Σ fatta in questo modo:


I




Σ=











I
−I
(4.5-9)
−I
Sulla diagonale avró 1 o −1. Il numero di blocchi I é tipicamente diverso
dal numero di blocchi −I.
Dopo la fattorizzazione, troviamo i Pre e Post Array e la matrice ortogonale
che triangolarizza.
e 21
R
 k−1


CLk−1 
Hk−1 ALk−1
e 21
R
 k

U=
Hk

0 
ALk
(4.5-10)
e1
e1
2
Se compare Rk−1
nel Pre-Array e compare Rk 2 nel Post-Array allora vi é
una formula ricorsiva: ad ogni passo non devo fare una fattorizzazione di
Cholesky, Rk é propagato. É anche meno oneroso. Anche in questo caso
e1
il guadagno Lk = Hk Rk 2 . Per innescare l’algoritmo al passo 0 devo solo
dare un valore iniziale al guadagno, tramite la formula ricorsiva non dovró
fare piú nulla.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
4. Problema della Stima Ottima - Filtro di Kalman
4.5.4
13
103
Square Root Information Filter
La differenza rispetto agli altri é che invece di fattorizzare la matrice di
covarianza si fattorizza l’inversa della matrice di covarianza:
−1
Pk|k
= TkT Tk
(4.5-11)
in questo caso, avendo messo k|k, parliamo palesemente del filtro. Allo
stesso modo si fattorizza l’inverso14 di Qk e Rk :
−1
− 12
−1
− 12
2 T
Q−1
k = (Qk ) Qk
(4.5-12)
Rk−1 = (Rk 2 )T Rk
Valgono le stesse ipotesi iniziali in cui Qk doveva essere definita positiva?
Da un punto di vista algoritmico, sebbene la fattorizzazione di Cholesky
Standard valga solo per matrici definite positive si puó dare un estensione
anche per matrici semi definite positive mettendo una matrice diagonale tra
le due matrici Tk nella (4.5-11). Poi decidiamo il Pre e il Post Array:
− 12
Q
k


Tk A−1
k Gk


U
0
0
Tk A−1
k
−1
2
Ck+1
Rk+1

 −1
2
 Qk+1
 
Tk x̂k|k  =  0

1
0
−
2
Rk+1
~yk+1

∗
∗
Tk+1
~εk+1|k+1 

0
0

Rk+1
(4.5-13)
Con ∗ indichiamo degli elementi che non ci interessano. Questa volta la
moltiplicazione per U é a sinistra, ma potrei riportarlo allo schema di calcolo classico trasponendo tutto (U = U T perché ortogonale).
La cosa piú importante da ricordare é che questo algoritmo propaga il fattore di Cholesky dell’inversa della matrice di covarianza dell’errore. Altre
13
Ha una interpretazione algebrica molto significativa. Il guadagno del Filtro di Kalman noi lo abbiamo calcolato con un tecnica a minima varianza, cioé abbiamo preso la
matrice di covarianza e con una espressione collegata alla sua norma l’abbiamo minimizzata. Il guadagno, peró, si puó anche calcolare minimizzando l’errore quadratico medio,
cioé impostando un problema ai minimi quadrati. Quando faccio il problema ai minimi
quadrati la ΦT Φ viene diagonale a blocchi; per fattorizzare questa matrice si puó usare
un certa tecnica che conduce a questo algoritmo. Perció questo filtro é molto importante,
é basato sui minimi quadrati.
14
1
−2
Per abuso di notazione questi fattori si indicano come Qk
di Cholesky dell’inversa.
−1
2
e Rk
intendendo i fattori
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
104
4. Problema della Stima Ottima - Filtro di Kalman
particolaritá é che quando vado a propagare la media dell’errore:
−1
~xk+1|k+1 = Tk+1
~εk+1|k+1 + Bk ~uk
(4.5-14)
c’é una stranezza: quando faccio l’aggiornamento della stima in un unico
passo faccio sia la predizione che la correzione.
Dalla (4.5-13) é richiesta anche l’invertibilitá di A, ma essendo Tempo variante non é facile collegare le proprietá degli auto valori alla stabilitá perché
gli auto valori cambiano ogni istante.
Ricapitolando: Riferendoci alle equazioni (4.5-2) possiamo dire che quanto piú la norma di Q é bassa tanto piú si perdono le proprietá di P. Cioé
piú é preciso il modello tanto meno si riesce a stimare correttamente; é
paradossale, ma é cosi. L’algoritmo va in divergenza quando gli elementi
di Q sono bassi, ovvero quando il modello é preciso ed affidabile. Volendo usare queste equazioni si devono aumentare artificiosamente Q ed R (si
inietta del rumore stabilizzante). Quindi il filtro Kalman non si fa mai come nelle equazioni (4.5-2), ma si utilizza un forma fattorizzata di Cholesky
della matrice di covarianza dell’errore. Una volta fatta la fattorizzazione
nell’ algoritmo propago non piú P ma il fattore di Cholesky. Nel caso dello
Square Root Filter uso direttamente il fattore di Cholesky della matrice di
covarianza, nel caso dello Square Root Information Filter uso il fattore di
Cholesky dell’inversa della matrice di covarianza.
Questi algoritmi dipendono dalla possibilitá di costruire U, che é ortogonale
e triangolarizza il Pre-Array. Nel Post-Array si spera di trovare termini
che permettano di fare formule ricorsive. Sebbene il prodotto Pre-Array per
U non si fa; si fa un ciclo for che fa solo concettualmente il prodotto e
risparmia sui calcoli.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
5
Stima Parametrica
Un problema di Stima parametrica é un problema nel quale a partire dalle
determinazioni di una variabile aleatoria si fa inferenza su un parametro
fisso incognito utilizzando un modello di generazione dei dati.
5.1
Stima ai Minimi quadrati
y é un’informazione che dipende in qualche modo da x e dall’incertezza.
Supponiamo per semplicitá che il legame che esiste tra la x e la y sia di tipo
lineare y(k) = ϕ(k)x + w(k), dove w(k) é una variabile aleatoria a media
nulla (se la media non fosse nulla non si fa altro che avere una polarizzazione
delle y(k)) e di cui si conosce la matrice di covarianza W ; y(k) é un vettore
che rappresenta i dati che ho; si suppone che di solito si abbiano molti dati
(anche per poche incognite, che per noi sono le x).
Ognuna delle equazioni ha la stessa struttura:


y(1) = ϕT (1)x + w(1)



..
.



y(N ) = ϕT (N )x + w(N )
(5.1-1)
La k potremmo considerarla come una variabile temporale e dire che gli
esperimenti si stanno susseguendo nel tempo. Oppure possiamo interpre-
5. Stima Parametrica
106
tare la k come variabile spaziale, dicendo che il primo esperimento si fa in
un luogo, poi il secondo esperimento (identico al primo) in un altro luogo,ecc. . . .
Possiamo quindi vedere questi esperimenti o come esperimenti simultanei
fatti in luoghi differenti, o come esperimenti non simultanei fatti in tempi
successivi. Quindi k per ora la consideriamo come una variabile generica
che puó esprimere o il luogo o il tempo.
Per il momento supponiamo che le ϕ(k) siano dei dati certi (nei processi
di Identificazione, invece, queste ϕ(k) saranno delle quantitá aleatorie).
Come si risolve un problema di questo tipo? Si risolve a lotti o
ricorsivamente?
A lotti significa che io ho un parametro ed N esperimenti: per esempio ho
fatto fare la misura di un tavolo (1 parametro) con lo stesso metro da 10
persone diverse, e si sono avuti 10 valori diversi che differiscono di poco tra
loro. C’é ovviamente un errore di misura.
Perché non misuro direttamente x invece di misurare prima y e
poi cercare di ricavare la x? Ovviamente perché la x non é sempre misurabile: ad esempio nella misura di una resistenza, io misuro una tensione
e conoscendo la corrente determino il valore della resistenza. Facciamo sempre una misura indiretta: ad esempio nella misura della temperatura con
un termometro, esso non misura direttamente la temperatura ma indica la
misura della temperatura attraverso una scala graduata, ricavandola dalla
dilatazione del mercurio.
Cosa succederebbe se non ci fosse incertezza?
Se non ci fosse incertezza sarebbe inutile scrivere per esempio 10 equazioni
per conoscere 3 parametri, ma mi basterebbero 3 equazioni per 3 parametri
essendo un sistema di equazioni lineari. Quindi si avrebbe:
y = Φx ⇒ x = Φ−1 y
Se é vera questa identitá allora basta avere tanti esperimenti quante incognite e si deve poter invertire la matrice Φ(k). Infatti il problema é trovare
degli esperimenti che siano tra di loro linearmente indipendenti in modo tale
da garantire che la matrice Φ(k) sia invertibile (e noi faremo questa assunzione di esperimenti indipendenti, anche nel caso stocastico).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
107
Peró il segno di = é praticamente impossibile da realizzare nella realtá. In∼ invece di =, allora
fatti se io ponessi nel sistema di equazione il segno di =
esisterebbe una variabile ε che rappresenta lo scarto di ogni equazione, ovvero la differenza tra l’equazione con = e quella con il ∼
=. Il sistema quindi
posso riscriverlo con il segno = aggiungendo ε :
y∼
= Φx ⇒ y = Φx + ε
Se vogliamo ricavare x dobbiamo minimizzare ε, o meglio minimizzare lo
scarto quadratico:
minεT ε = min ky − Φxk2
x̂
x̂
(5.1-2)
Cioé voglio trovare quella x̂ che mi da la minima norma di questa quantitá. Stiamo parlando della Logica dei minimi quadrati deterministici,
poiché io non ho detto che ε é aleatorio. La soluzione di questo problema a
minimi quadrati in ambito lineare é:
x̂ = (ΦT Φ)−1 ΦT y
(5.1-3)
Bisogna utilizzare la pseudo inversa a sinistra perché Φ(k) non é invertibile.
Come ragioniamo in presenza di incertezza?
Se non ci sono informazioni su w e si vuole minimizzarlo, uso la tecnica
della pseudo inversa che non fa altro che minimizzare wT w (che corrisponde
a εT ε di prima).
Supponiamo di possedere una stima che proviene dal nostro set
di equazioni, come faccio a vedere se questa stima é buona?
Faccio quello che facevo con il filtro di Kalman dal momento che x̂ non
lo potró mai andare a confrontare con il vero x (poiché non lo conosco).
Quindi vedo la capacitá predittiva di x̂ in relazione alla variabile che invece
io posso confrontare. Quando io scrivo Φ(k)x̂, ho generato una ŷ, cioé ho
generato la migliore ŷ sullo stato di descrizione dell’incertezza che io ho
fatto precedentemente.A questo punto y − ŷ rappresentano delle quantitá
confrontabili tra di loro: questa quantitá non é altro che lo scarto tra il dato
vero e la predizione e diventa poi l’indice di qualitá della bontá della mia
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
108
stima. Se y − ŷ é piccolo allora vuol dire che la mia stima é buona. La
migliore stima é appunto quella che minimizza la norma di y − ŷ.
~y = Φx + w
~yˆ = Φx̂
y lo interpretiamo come un dato, y − ŷ no. Se io minimizzo y − ŷ allora
indirettamente sto minimizzando x − x̂.
Nella logica dei Minimi quadrati si minimizza questo indice di costo:
min ky − ŷk2 = min kΦ(x − x̂) + wk2
x̂
x̂
(5.1-4)
Dove in generale x é il parametro fisso incognito e quindi da stimare. La
matrice Φ(k), che avrá un numero di righe pari alle N misure (che come
detto precedentemente sono dei dati certi), é detta matrice dei regressori.
Cosa significa minimizzare lo scarto? Cerchiamo di capirlo con un
esempio: se, in ambito deterministico, ho due punti per i quali voglio far
passare una retta, imposto i parametri della retta affinché questa situazione
si verifichi, risolvendo un sistema lineare di 2 equazioni in due incognite.
Ora se io voglio una retta che passa per tre punti, nascono dei problemi:
infatti io scrivo 3 equazioni, se sono fortunato una delle tre equazioni é
linearmente dipendente da una delle altre e quindi la elimino e ritorno al
caso precedente. Se sono sfortunato, ovvero le 3 equazioni sono tutte e 3
linearmente indipendenti, allora io posso avere due situazioni:
• Per questi 3 punti non passa alcuna retta e quindi non c’é alcuna
soluzione;
• Esiste un’unica retta che passa per i 3 punti;
Se peró noi diciamo di voler trovare una retta che non passi precisamente
per questi punti, ma che almeno ci passi vicino, allora vuol dire che la retta
trovata non soddisfa tutte e 3 le equazioni, anzi puó essere che noi cosí facendo non rispettiamo nessuna delle 3 (ovvero abbiamo aggiunto un ε in ogni
equazione) peró io faccio in modo che la somma di tutti gli ε sia la minore
possibile in norma quadratica. Ho fatto quella che si chiama interpolazione,
ottenendo una retta che non soddisfa nessuna delle 3 equazioni, peró interpola al meglio i 3 punti. Il problema dell’interpolazione non é un problema
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
109
che riguarda la struttura lineare della funzione, ma riguarda come la funzione é rappresentata in termini di parametri. Cioé se noi diciamo di voler far
passare una retta per dei punti, la retta ha la proprietá di essere lineare sia
nei parametri che nelle incognite y = mx + n, perché é lineare da qualunque punto la guardiamo, a meno che sia m che x siano variabili. Se scrivo
invece un’equazione del tipo y = ax2 + by + c, allora qui vediamo che la
y in funzione di x é quadratica, ma se la vedo in termini di interpolazione
( ovvero devo pensare come se x ed y fossero dei dati noti) cioé la guardo
in funzione dei parametri a, b, c allora questa funzione é lineare rispetto ad
essi.
5.1.1
Stima di Gauss-Markov
Nel discorso fatto nel paragrafo precedente, non abbiamo utilizzato l’informazione che avevamo sulla conoscenza della matrice di covarianza del
rumore w.
Utilizziamo la W nella cifra di merito di Gauss-Markov, pari a:
min ky − ŷk2W −1 = min[(y − ŷ)T W −1 (y − ŷ)]
x̂
x̂
(5.1-5)
Perché mettiamo W −1 ? Ipotizziamo che W sia diagonale, cioé che i vari
rumori nello spazio siano indipendenti uno dall’altro; ora dire che io peso
l’inversa della matrice di covarianza significa dire che siccome l’inverso della
dispersione sará l’accoppiamento, allora io peso di piú quegli scarti che sono
poco rumorosi, attribuendo quelli che sono molto rumorosi a degli accidenti.
Naturalmente la soluzione é sempre la stessa:
x̂ = (ΦT W −1 Φ)−1 ΦT W −1 y
(5.1-6)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
110
5.1.2
Condizioni sufficienti per l’esistenza del problema
Quando ha senso risolvere un problema con il metodo dei minimi quadrati?
Prima chiariamo la simbologia:
1. grandezza misurata: la indico con ∼;
2. grandezza ideale: senza simboli;
3. grandezza stimata: la indico con x̂;
Supponiamo che:
• x ∈ <n ;
• supponiamo che la misura sia vettoriale: ỹ ∈ <p ;
• nell’intervallo di tempo di misurazione i parametri x non variano, variano solo le matrici C, le misure e gli errori. Se x variasse avremmo
bisogno del filtro di Kalman;
• C ∈ <p∗n ,
e ∈ <p ;
Faccio quindi le misure fino all’istante N . Ora possiamo costruire una variabile stack Y di tutte le misure, ovvero sono le misure incolonnate. Φ
sará data dall’incolonnamento di [C1 , . . . , CN ] e stesso dicesi per etot , ovvero é l’incolonnamento di tutti gli N errori. Ci siamo quindi ricondotti a un
sistema del tipo:
Ỹ = Φx + etot
Supponiamo che l’errore non ci sia e che quindi le misure siano esatte. In
quali condizioni x si puó calcolare come soluzione del sistema ỹ = Φx?
Supponiamo Φ ∈ <N p∗n , se la matrice ha rango pieno posso fare:
x = Φ−1 ỹ
Quindi la prima condizione per avere un problema ai minimi quadrati
é che devo avere un numero di misure maggiore del numero di incognite:
N > n. Altrimenti si tratta di risolvere un sistema lineare: se le misure
sono minori di n, il sistema sappiamo risolverlo comunque, basta trattare
l’incognita come parametro, si porta a secondo membro.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
111
Anche se questa condizione é rispettata, chi ci dice che questa non
ha soluzioni? Dipende ovviamente dal rango di Φ:
ρ[Φ] ≤ n
Visto le dimensioni di Φ, al piú il suo rango puó essere pari al numero delle
colonne n. Quando questo sistema, che ha un numero di equazioni maggiore del numero di incognite (é supervincolato), puó avere soluzione? Dal
Teorema di Rouché Capelli sappiamo che se il vettore dei termini noti é
linearmente dipendente dalle colonne di Φ, vuol dire che esiste una combinazione lineare delle colonne di Φ tale che questa combinazione lineare
é proprio uguale a ỹ. I coefficienti di questa combinazione lineare sono la
soluzione del sistema.
Quindi il problema dei minimi quadrati ha senso quando ỹ ∈
/ al sottospazio
generato dalle colonne di Φ:
Chiaramente l’uguaglianza senza errore non puó valere, non esiste quella
combinazione lineare se ỹ ∈
/ a quel sottospazio. Se non esiste quella combinazione lineare, allora io posso pormi il problema dei minimi quadrati, cioé
vediamo se esiste un errore che posso aggiungere a qualche vettore di quel
sottospazio in modo tale che mi dia proprio ỹ.
Il problema dei minimi quadrati é: Se esiste, qual’é il vettore di
questo sottospazio che mi da l’errore minimo? Se siamo in uno spazio vettoriale, il vettore che minimizza l’errore é quello ortogonale a x:
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
112
In definitiva, un problema ai minimi quadrati ha senso quando:
• N > n;
• il sistema y = Φx non ha soluzione; se non ha soluzione, quindi non
appartiene a quel sottospazio generato dalle colonne di Φ, introduco
l’errore e cerco di minimizzarlo. Cerco quel vettore all’interno del
sottospazio tale che l’errore sia minimo in norma. La soluzione é data
dal Principio di Ortogonalitá.
Sempre dal Teorema di Rouché Capelli possiamo affermare che, nell’ipotesi
che il rango sia N , se tutti i minori di ordine N + 1 hanno determinante
nullo, allora y é dipendente linearmente da Φ: in questo caso non ha senso
porsi il problema ai minimi quadrati, perché la soluzione appartiene a quel
sottospazio. Ancora peggio se il rango é minore di N , perché a quel punto
anche i minori di ordine N saranno nulli.
5.1.3
Stimatore ai Minimi Quadrati
Ora vogliamo scrivere lo stimatore:
x̂ = (ΦT Φ)−1 ΦT Y
(5.1-7)
Non devo guardare piú y come dati ma devo guardare y come variabile
aleatoria Y , ovvero prima che essa si sia determinata. Ricordiamo che Y é
un vettore di variabili aleatorie prima che si siano verificate.
In quanto variabile aleatoria, quanto vale la media dello stimatore?
Per semplicitá di notazione riportiamo y o Y indifferentemente perché il
fatto di scriverla in maiuscolo era un artifizio, in realtá scriveremo sempre
y intendendo peró la variabile aleatoria prima che diventi un dato:
x̂ = (ΦT Φ)−1 ΦT (Φx + v) = x + (ΦT Φ)−1 ΦT v
Facendo il valore atteso, ricordando che per ipotesi E[v] = 0, si ha:
E[x̂] = x
(5.1-8)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
113
Risulta una variabile certa. Quindi lo lo stimatore ai minimi quadrati
non é polarizzato.
Ma qual é la varianza di questo Stimatore? Lo stimatore ai minimi quadrati
che dispersione mi da intorno all’errore che é nullo poiché non polarizzato?
Allora faccio la covarianza di x̂:
cov(x̂) = E[(x̂ − E[x̂])(x̂ − E[x̂])T ] =
= E[(
x + (ΦT Φ)−1 ΦT v − x)(
x + (ΦT Φ)−1 ΦT v − x)T ] =
= (ΦT Φ)−1 ΦT V Φ(ΦT Φ)−T
Se Φ(k) contenesse degli elementi legati agli esperimenti (come succederá
nel caso dell’identificazione) non potremmo portarlo semplicemente fuori
dal valore atteso. Con le nostre ipotesi invece possiamo portare Φ(k) fuori
dal valore atteso senza alcuna modifica:
cov(x̂) = Φ† V (Φ† )T
(5.1-9)
Dove (ΦT Φ)−1 ΦT = Φ† é la pseudoinversa sinistra.
Abbiamo cosí determinato la matrice di covarianza dello stimatore ai minimi
quadrati.
Questa matrice cov(x̂) é maggiore o minore di V ?
Se io ci metto x̂ al posto di x, é come se io avessi aggiunto un’altra quantitá
aleatoria, quindi é come se stessi valutando la covarianza di una cosa piú
grande ⇒ sará sicuramente maggiore.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
114
5.1.4
Interpretazione geometrica
Figura 5.1: Interpretazione geometrica dei minimi quadrati in uno spazio
tridimensionale
La pseudo inversa proietta ortogonalmente il vettore delle osservazioni
su un sottospazio piú piccolo di dimensioni pari alle dimensioni del parametro che voglio stimare. É importante perché é un proiezione ortogonale
che permette di conservare alcune proprietá in virtú del teorema di Pitagora generalizzato. Si puó dimostrare che questo vettore ortogonale é proprio
quello che minimizza l’errore.
5.1.5
Algoritmo ricorsivo
Molto spesso il processo di identificazione di un sistema va effettuato on-line,
cioé contemporaneamente alla generazione dei dati. A tal fine l’algoritmo
dei minimi quadrati presentato in precedenza non puó essere utilizzato in
quanto funziona, come suol dirsi, a lotti, ossia elaborando un gruppo di dati
(di ingresso e di uscita) per ottenere un’unica stima. Per un’applicazione
on-line si ricorre invece all’algoritmo dei minimi quadrati ricorsivi. L’idea
é quella di cercare una legge di aggiornamento della stima dei parametri,
in modo che la stima in un certo istante sia ottenuta come funzione della
stima al passo precedente e di un’opportuna elaborazione degli ultimi dati
acquisiti.
Vediamo il procedimento; abbiamo:
ΦT = [C1T , . . . , CkT ]
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
115
Il trasposto di una matrice a blocchi é la trasposta con i blocchi trasposti.
Quindi:
ΦT Φ =
k
X
CiT Ci = Sk
i=1
Nel problema ai minimi quadrati ricorsivi, non si considera un numero fisso
di misure N , ma si considera che le misure le sto acquisendo online o quanto
meno le sto processando una alla volta: N é variabile. La formula ricorsiva
per Sk é:
k
X
CiT Ci =
i=1
k−1
X
CiT Ci +CkT Ck
i=1
|
{z
Sk−1
}
Ovviamente anche la matrice Φ dipenderá da k, perchá contiene le matrici
C fino a k (ovvero contiene le misure fino a k).Abbiamo quindi:
ΦT Φ = Sk = Sk−1 + CkT Ck
(5.1-10)
Ora valutiamo l’altro termine:
ΦTk Ỹk =
k
X
CiT ỹi = Sk x̂k
i=1
L’espressione risulta uguale a Sk x̂k se ci ricordiamo quella di x̂:
T
−1 T
x̂ = (Φ
| {zΦ}) Φ Ỹ
Sk
Basta quindi riportare Sk a primo membro per avere quanto scritto prima.
Possiamo dividere la sommatoria per ottenere una forma ricorsiva:
Sk x̂k =
k−1
X
CiT ỹi +CkT ỹk
i=1
|
{z
}
Sk−1 x̂k−1
Dalla (5.1-10) posso ricavare Sk−1 :
Sk−1 = Sk − CkT Ck
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
116
Sostituendo abbiamo:
Sk x̂k = (Sk − CkT Ck )x̂k−1 + CkT ỹk
Ricavandoci lo stato stimato otteniamo:
x̂k = Sk−1 (Sk − CkT Ck )x̂k−1 + Sk−1 CkT ỹk
Facendo le moltiplicazioni:
x̂k = x̂k−1 − Sk−1 CkT Ck x̂k−1 + Sk−1 CkT ỹk
possiamo raggruppare e ottenere cosí la formula ai minimi quadrati
ricorsiva:
x̂k = x̂k−1 +
−1
T
S C
| k {z k}
Lk =guadagno
(ỹk − Ck x̂k−1 )
|
{z
correzione
(5.1-11)
}
É una forma simile a quella del filtro di Kalman con un’unica differenza: x̂k
ora é la stima di un vettore di parametri fissi, mentre nel filtro di Kalman
xk varia con legge xk = Axk−1 + Buk−1 . Quindi ci sarebbe bisogno di uno
stimatore che insegue la variazione dello stato.
Per fare un esempio, consideriamo il caso in cui n = 1, p = 1; abbiamo
quindi:
Lk =
Ck
Sk
Sk = Sk−1 + Ck2
In questo caso particolare diventano tutti numeri. Notiamo che Sk cresce
sempre, poiché si addiziona sempre una quantitá positiva; quindi il guadagno
diminuisce sempre e il termine di correzione peserá sempre di meno. Quindi
la stima converge. Si tratta di un caso desiderabile: la stima converge a un
valore che é quello tale che l’errore sia ortagonale.
Quali sono i problemi dell’algoritmo trovato?
Supponiamo di voler applicare questo algoritmo della stima ricorsiva a un
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
117
parametro lentamente variabile: il metodo dei minimi quadrati non é
in grado di rendersene conto perché, una volta che converge, non puó piú
spostarsi dal valore che ha stimato (sempre perché non teniamo conto della
dinamica). L’algoritmo, per essere applicato anche a parametri variabili,
deve essere modificato introducendo il forgetting factor (Fattore d’oblio).
Altro problema é l’inversione della matrice Sk : con l’algoritmo di Gauss,
l’inversione della matrice ha una complessitá computazionale O(n3 ).
Esiste, peró, il Lemma ABCD:
(A + BCD)−1 = A−1 − A−1 B(C −1 + DA−1 B)−1 DA−1
Lemma di Inversione Matriciale
Allora, facendo le seguenti posizioni:
A = Sk−1
B = CkT
C = Ip
D = Ck
Abbiamo:
−1
−1
−1
−1
Sk−1 = (Sk−1 + CkT Ck )−1 = Sk−1
− Sk−1
CkT (Ip + Ck Sk−1
CkT )−1 Ck Sk−1
Ponendo Vk = Sk−1 , otteniamo la seguente forma ricorsiva:
Vk = Vk−1 − Vk−1 CkT (Ip + Ck Vk−1 CkT )−1 Ck Vk−1
(5.1-12)
Dobbiamo comunque fare un’inversione, il problema non si risolve ma diventa piú piccolo: (Ip + Ck Vk−1 CkT ) ha dimensioni (p ∗ p), ovvero la dimensione
di una singola misura ỹ; in genere p < n, anzi p spesso é uno scalare. Quindi il vantaggio di questa formula si ha se p n o se quella matrice risulta
essere un numero.
In genere, comunque, l’inversione di (Ip +Ck Vk−1 CkT ) é meno onerosa dell’inversione di Sk ; nel caso tipico in cui p = 1, questa matrice diventa proprio
un numero.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
118
5.1.6
Inizializzazione Convenzionale
Consideriamo ora l’istante k0 , si puó calcolare Sk0 dalla (5.1-10), peró mi
servirebbe Sk0 −1 , dove in generale:
Sk−1 =
k−1
X
CiT Ci
i=1
quindi se io scegliessi la Sk0 −1 proprio pari alla formula qui sopra, allora la
stima Batch e la stima Ricorsiva coinciderebbero.
In genere peró questo non si garantisce, ma si prende:
V (k0 − 1) = αI
ˆ(k0 − 1) = ~0
~x
Con α > 0. Questa rappresenta una inizializzazione convenzionale.
Perché bisogna scegliere una matrice (αI) definita positiva? Noi
quando calcoliamo la soluzione ai minimi quadrati abbiamo x̂ = (ΦT Φ)ΦT Y ;
eseguendo quindi quel procedimento di minimizzazione, abbiamo detto che
facciamo il gradiente e lo poniamo uguale a 0. Chi ci garantisce peró che
questa sia l’unica soluzione di quel problema? Quando minimizziamo la
cifra di merito, infatti, troviamo una possibile soluzione (poiché gradiente
= 0 é condizione necessaria e non sufficiente), quindi chi ci dice che questa
soluzione trovata é un minimo e non un massimo? Bisogna calcolare l’Hessiano per determinare la condizione sufficiente, che é pari a H = ΦT Φ ed
é definito positivo (per costruzione). Ora H nel nostro caso corrisponde a
Sk , quindi noi sappiamo che Sk é definito positivo per costruzione, e quindi
anche l’inverso di una matrice definita positiva é definita positiva. Quindi
bisogna scegliere uno scalare α > 0.
Ora la domanda é: quale α scelgo? In questo contesto deterministico, α
puó essere scelto a nostro piacere. Se fossimo stati invece in un contesto
stocastico, Vk sarebbe stata la matrice di covarianza dell’errore, e quindi α
sarebbe stata la varianza dell’errore, quindi maggiore scelgo α e piú incertezza ho sulla stima iniziale.
L’idea dell’inizializzazione convenzionale nasce dal fatto che la stima batch
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
119
e quella ricorsiva possono anche non coincidere. La stima Batch é quella
che faccio con i minimi quadrati a lotti; la stima Ricorsiva é quando faccio
il metodo dei minimi quadrati ricorsivi, cioé devo fare un ciclo For che acquisisce le misure una alla volta e aggiorna la stima.
Ma la stima ricorsiva é semplicemente una trasformazione della stima a lotti, quindi come é possibile che queste due stime siano diverse, nonostante
noi stiamo minimizzando lo stesso funzionale? La differenza sta nel fatto
che quando noi trasformiamo un algoritmo Batch in un algoritmo ricorsivo
introduciamo cosí di fatto un grado di libertá che sono le condizioni iniziali.
Facciamo per esempio una retta ai minimi quadrati:
Dati dei punti, io faccio una stima Batch e mi esce fuori la retta A; ora
consideriamo un istante k0 (dove é presente un punto che chiamiamo per
esempio P (k0 )) dal quale far partire una stima Ricorsiva; se io inizializzo
l’algoritmo ricorsivo con questo punto P (k0 ) allora ho qualche speranza che
le due rette (una calcolata con la stima Batch e una con quella Ricorsiva)
coincidano; ma se io inizializzo in un altro modo allora le due rette non
coincideranno.
Dovremo quindi garantire che all’istante k0 l’inizializzazione del mio algoritmo sia uguale alla stima che mi darebbe l’equivalente problema Batch.
Questo non si puó sempre garantire e quindi si utilizza la cosiddetta Inizializzazione Convenzionale.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
120
5.2
Minimi quadrati pesati
Il metodo dei minimi quadrati calcola il predittore a partire dai dati reali in
ingresso e in uscita dal sistema. Esistono casi in cui i dati acquisiti (e,quindi,
l’errore di predizione) non hanno tutti la stessa importanza. Ad esempio
se un sistema é lentamente tempo-variante, i campioni piú recenti sono
senz’altro piú importanti di quelli anteriori nel tempo perché rispecchiano
il sistema attuale. Quindi, in qualche modo occorrerebbe dare meno rilievo
ai dati piú vecchi e maggiore importanza ai dati piú recenti nel calcolo del
predittore. Per ottenere questo comportamento si introduce il cosiddetto
forgetting factor, un peso tanto piú elevato quanto piú é recente il campione.
Nel caso dei minimi quadrati normali noi minimizziamo:
JN =
1 T
1
e e = (~yN − ΦN ~x)T (~yN − ΦN ~x)
N
N
Ricordiamo che tutte queste matrici dipendono da N , ovvero hanno un
numero di righe pari ad N ; poi ovviamente per minimizzare facciamo il
gradiente, lo poniamo = 0 e ricaviamo la stima:
ˆ = (ΦT ΦN )−1 ΦT YN
~ N = ~0 ⇒ ~x
∇J
N
N
Nel caso dei minimi quadrati pesati posso minimizzare un’altra cifra di
merito che ha in mezzo una matrice di peso WN :
JN =
1
(~yN − ΦN ~x)T WN (~yN − ΦN ~x)
N
(5.2-1)
In questo caso la soluzione del problema ai minimi quadrati é:
ˆ = (ΦT WN ΦN )−1 ΦT WN YN
~x
N
N
(5.2-2)
Nel caso stocastico nella cifra di merito la x e y saranno aleatorie, e quindi
il minimo di una variabile aleatoria si calcolerá sulla media.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
121
Supponiamo allora di prendere la matrice WN in questo modo:

µN −1

0
µN −2
0


WN = 



..
.
..
.
0 ···

··· 0
.

..
. .. 


..
. 0

0 µ0
0<µ<1
Ovviamente poiché 0 < µ < 1 gli elementi sulla diagonale crescono da
una quantitá compresa tra 0 e 1 (posizione 1,1) fino alla quantitá massima
pari a 1 (in posizione N,N). Se io aggiungo righe a questa matrice W , che
corrispondono a nuove misure che stanno arrivando, allora le righe piú in
basso sono le piú recenti ed hanno in questo modo dei pesi piú elevati.
Quindi quando si sceglie una WN in questo modo si dice che sto inserendo un
Fattore di Oblio (che corrisponde a µ), che significa dare un peso maggiore
alle misure piú recenti. Quindi se i parametri dovessero cambiare, con questa
tecnica potremmo inseguire i cambiamenti con l’algoritmo ricorsivo.
Il valore N ha una duplice notazione: o indica il numero di misure(ed in
questo caso la dimensione della matrice WN é N *dimensione di Y ),oppure
N puó indicare direttamente il risultato di questo prodotto N ∗ p. In questo
caso N sta ad indicare proprio il prodotto N ∗ p.
5.2.1
Algoritmo ricorsivo
La matrice WN per noi sará:

I µN −1
 p


WN = 



0
..
.
0
Ip µN −2
..
.
0 ···

···
..
.
..
0
0
.. 

. 
.


0 

0<µ<1
Ip µ0
La matrice WN sará quindi diagonale a blocchi. Per trovare l’algoritmo
ricorsivo partiamo dalla (5.2-2):
ΦTk Wk Φk =
k
X
i=1
CiT M (k−i) Ci =
k−1
X
CiT M (k−i) Ci + CkT Ck
i=1
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
122
Dove M i = Ip µi . Voglio far comparire l’istante (k − 1):
ΦTk Wk Φk =
k−1
X
CiT M (k−i+1−1) Ci + CkT Ck = µ
i=1
k−1
X
CiT M (k−i−1) Ci + CkT Ck
i=1
Facendo le seguenti posizioni:
Sk = ΦTk Wk Φk
Sk−1 =
k−1
X
CiT M (k−i−1) Ci
i=1
Arriviamo a:
Sk = µSk−1 + CkT Ck
(5.2-3)
Valutiamo ora il seguente termine:
ΦTk Wk Yk =
k
X
k−1
X
~˜
~˜i + C T Y
~˜i = µ
CiT M (k−i−1) Y
CiT M (k−i) Y
k k
i=1
i=1
Dalla (5.2-2) possiamo dire che:
ˆk
ΦTk Wk Yk = Sk ~x
Ció che é vero per il passo k lo deve essere anche al passo (k − 1):
ˆk−1 =
Sk−1 ~x
k−1
X
~˜i
CiT M (k−i−1) Y
i=1
Arriviamo quindi a:
ˆk−1 + C T Y
ˆk = µSk−1 ~x
~˜
Sk ~x
k k
(5.2-4)
Ora dalla (5.2-3) ricaviamo Sk−1 :
Sk−1 = µ−1 (Sk − CkT Ck )
ˆk si ottiene:
Sostituendo questa espressione nella (5.2-4) e ricavando ~x
ˆk = S −1 (Sk − C T Ck )~x
ˆk−1 + S −1 C T Y
ˆk−1 − S −1 C T Ck ~x
ˆk−1 + S −1 C T Y
~˜
~˜
~x
x
k
k k =~
k
k k
k
k
k
k
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
123
Ottenendo la forma ricorsiva cercata:
ˆk−1 )
ˆk = ~x
ˆk−1 + S −1 C T (Y
~˜k − Ck ~x
~x
k
k
(5.2-5)
Se utilizziamo il Lemma ABCD, anche detto Lemma di inversione
delle matrici in questo caso, rispetto a quello precedente, utilizzando la
matrice A = µ−1 Sk−1 , avremo un fattore µ−1 in evidenza:
Vk = µ−1 [Vk−1 − Vk−1 CkT (Ip + Ck µ−1 Vk−1 CkT )−1 Ck µ−1 Vk−1 ]
(5.2-6)
Abbiamo ottenuto lo stesso vantaggio del caso dei minimi quadrati normali,
ovvero che Vk non va invertita, ma va invertito il fattore tra parentesi tonde,
che si spera essere di dimensioni piú piccole (in particolare se p=1 allora
questo fattore é proprio uno scalare ed otteniamo un enorme vantaggio,
come anche nel caso in cui p=2 o p=3).
5.3
Stimatore a Minima Varianza
Esiste uno stimatore che ci da la minima varianza1 ? Abbiamo detto che
il miglior stimatore é quello che predice al meglio i dati; questo punto di
vista puó essere sbagliato poiché puó portare a dati molto distanti dalla
realtá: perché due modelli differenti possono generare una sequenza di dati
uguali, e il mio stimatore puó stimare i dati del modello sbagliato. Se voglio
avere il vero valore dei parametri utilizzo Stimatore a scarto quadratico
minimo, ovvero voglio risolvere il problema:
min kx − x̂k2 = min[(x − x̂)T (x − x̂)]
x̂(y)
x̂(y)
(5.3-1)
La soluzione ottima ovviamente sará x̂ = x, dove x é il valore che noi non
conosciamo. Dobbiamo quindi trovare la funzione x̂(y) (dato che x̂ non puó
essere funzione di x essendo quest’ultima incognita) perché le y invece sono
note.
L’indice di qualitá dello stimatore avrá l’operatore di valore atteso poiché x̂
viene inteso come variabile aleatoria e quindi ha bisogno del valore atteso se
si vuole minimizzarlo. Per l’indice di qualitá della stima invece non ci vuole
1
Minimum Variance Unbiased Estimator (MVUE)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
124
il valore atteso poiché x é un parametro (ed é una costante fissa) mentre x̂
é un numero.
Questo problema di scarto minimo é molto difficile da risolvere, quindi facciamo un discorso diverso: se riuscissi a dire che il mio stimatore é non
polarizzato, allora potrei dire che E[x̂] = x. Quindi io l’indice di qualitá
dello stimatore non lo leggo piú come il valore atteso dello scarto, ma la
leggo come la covarianza dello stimatore. Allora il problema di minimizzazione del valore atteso dello scarto quadratico diventa, se lo stimatore é
non polarizzato, un problema di minimizzazione della matrice di covarianza
dello stimatore 2 :
min E[(x − x̂(Y ))T (x − x̂(Y ))]
x̂(Y )
(5.3-2)
Quindi conoscere la varianza dello stimatore é molto importante perché
diventa proprio una misura dello scarto dal valore vero (perché lo stimatore
é non polarizzato).
Ora ricordiamo che:
• var(x̂) = E[(x̂ − E[x̂])T (x̂ − E[x̂])] ; é la traccia della matrice di covarianza dello stimatore e ci dice i margini di fluttuazione di x̂ rispetto
al valore medio.
• bias(x̂) = E[x − E(x̂)] ; non é altro che la polarizzazione dello stimatore. Infatti bias = 0 → stima mediamente corretta.
Si dimostra che l’equazione (5.3-2) si puó riscrivere come segue:
b + bias2 (x̂)]
min [var x
(5.3-3)
b
x(Y )
La varianza di x é funzione solo dei dati Y , mentre il bias é funzione del
parametro incognito. Ma se lo stimatore é non polarizzato, e quindi il
bias é nullo, scompare la dipendenza dal parametro x che non conosco e lo
stimatore diventa a minima varianza:
b]
min [var x
MVUE
b
x(Y )
2
Se E[x̂] = x ⇒ cov(x̂) = E[(x̂ − E[x̂])(x̂ − E[x̂])T ] = E[(x̂ − x)(x̂ − x)T ]
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
125
Tuttavia se io richiedo che lo stimatore sia non polarizzato non é detto che la
cifra di merito complessiva sia la piú piccola possibile. Cioé non é detto che
ho trovato lo stimatore a minimo scarto; potrei infatti avere uno stimatore
a minimo scarto con un po di bias e con poco di varianza.
Facendo allora l’ipotesi di non polarizzazione, nulla garantisce che abbia
minimizzato davvero lo scarto.
Potremmo infatti avere uno stimatore polarizzato con una varianza piú piccola ( la polarizzazione é quella che genera un errore sistematico). In sostanza potrei avere un risultato sub ottimo cancellando un po il bias (il bias
non lo conosco a priori perció non posso tenerne in conto prima di fare la
minimizzazione).
5.3.1
Best Linear Unbiased Estimator (BLUE)
Supponiamo,come nel paragrafo precedente, di avere fatto decadere il problema da minimo scarto a minima varianza. Potrei fissare la natura funzionale del mio stimatore x̂(Y ) ad esempio ad una struttura lineare del tipo
x̂(Y ) = aY + b. Allora risolvo il problema mettendo la struttura che ho
scelto come vincolo e risolvo pertanto:
b(Y )
min var x
b
x(Y )
(5.3-4)
b(Y ) = aY + b
x
Sostituendo il vincolo ho ancora lo stesso problema riscritto come segue:
b = min E[kx
b − E[x
b]k2 ] = min E[kaY + b − aE[Y ] − bk2 ] (5.3-5)
min var x
b
x(Y )
b
x(Y )
b
x(Y )
A questo punto la variabile di decisione non é piú la x̂(Y ), ma:
min E[kaY − aE[Y ]k2 ]
a
(5.3-6)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
126
L’introduzione del vincolo lineare, ha portato il problema da funzionale a
parametrico. Abbiamo peró operato un doppio declassamento del problema:
dunque ho sempre cifre di merito peggiori ma ho aumentato la risolubilitá
del problema.
5.4
Stimatore a Massima Verosimiglianza
5.4.1
Introduzione
Per capire come funziona la stima di massima verosimiglianza partiamo da
un esempio molto semplice. Consideriamo una variabile casuale x ∼ N (µ, σ)
con µ e σ sconosciuti, e supponiamo di avere un campione di due osservazioni: 4 e 6. Per il momento assumiamo che σ = 1 e concentriamoci sulla stima
di µ a partire dal nostro campione. Consideriamo inizialmente l’ipotesi che
µ = 3.5. La densitá di probabilitá in corrispondenza di 4 é 0.3521 ed in
corrispondenza di 6 é 0.0175.
La densitá di probabilitá congiunta sará data dal prodotto di questi due valori, ossia 0.0062. Ripetiamo il procedimento per altri possibili valori di µ.
I risultati sono riportati nella Tabella 1 e rappresentati graficamente nella
Figura 2. La stima di µ in base al principio della massima verosimiglianza
corrisponde al valore di µ in corrispondenza del quale la densitá congiunta
delle osservazioni nel campione é massima. É dunque il valore di µ che massimizza la probabilitá (la verosimiglianza) di osservare il campione. Come
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
127
si vede nella Figura 2, la densitá congiunta raggiunge il suo valore massimo
in corrispondenza di µ = 5, quindi3 µM LE = 5.
3
MLE sta per Maximum Likelihood Estimation;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
128
5. Stima Parametrica
Vediamo ora come giungere alla stessa conclusione analiticamente. Par-
tiamo dalla funzione di densitá della normale con media µ e varianza σ 2 :
1 x−µ 2
1
f (x|µ, σ) = √ e− 2 ( σ )
σ 2π
Abbiamo assunto σ = 1, dunque l’espressione si semplifica nel modo seguente:
1
1
2
f (x|µ, σ = 1) = √ e− 2 (x−µ)
2π
La densitá in corrispondenza delle due osservazioni del campione sará quindi:
1
1
2
f (x1 = 4|µ, σ = 1) = √ e− 2 (4−µ)
2π
1
1
2
f (x2 = 6|µ, σ = 1) = √ e− 2 (6−µ)
2π
e la densitá congiunta é data dal prodotto delle due:
1
1
1
1
2
2
f (x1 = 4 x2 = 6|µ, σ = 1) = ( √ e− 2 (4−µ) )( √ e− 2 (6−µ) )
2π
2π
L’espressione cosí trovata é stata ottenuta in corrispondenza di due dati
valori di X (4 e 6) ed assume diversi valori al variare di µ: é quindi una
funzione di µ, dati X = 4 e X = 6. Cosí interpretata, la densitá congiunta
diviene la funzione di verosimiglianza, che indicheremo con L(µ|4, 6):
1
1
1
1
2
2
L(µ|x1 = 4, x2 = 6) = ( √ e− 2 (4−µ) )( √ e− 2 (6−µ) )
2π
2π
Per trovare la stima di massima verosimiglianza di µ occorre ora massimizzare la funzione di verosimiglianza rispetto a µ:
µ̂M LE = arg max L(µ|x1 = 4, x2 = 6)
µ
Il calcolo delle condizioni del primo ordine é piuttosto laborioso e risulta
quindi preferibile calcolare il logaritmo della funzione di verosimiglianza,
e massimizzare questo rispetto a µ. Poiché il logaritmo é una funzione
monotona crescente, quindi il valore che massimizza il logaritmo é lo stesso
che massimizza L(µ|x1 = 4, x2 = 6):
µ̂M LE = arg max ln L(µ|x1 = 4, x2 = 6)
µ
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
129
Dunque:
1
1
1
1
2
2
ln L = ln[( √ e− 2 (4−µ) )( √ e− 2 (6−µ) )]
2π
2π
1
1 − 1 (4−µ)2
1
2
= ln( √ e 2
) + ln( √ e− 2 (6−µ) )
2π
2π
1
1
1
1
2
2
= ln( √ ) + ln(e− 2 (4−µ) ) + ln( √ ) + ln(e− 2 (6−µ) )
2π
2π
1
1
1
= 2 ln( √ ) − (4 − µ)2 − (6 − µ)2
2
2
2π
Massimizzando questa espressione rispetto a µ:
d ln L
4+6
= 0 ⇔ (4 − µ) + (6 − µ) = 0 ⇒ µ̂M LE =
=5
dµ
2
Per essere certi che si tratti di un massimo e non di un minimo occorre
controllare la condizione del secondo ordine. In questo caso, si verifica
facilmente che la derivata seconda rispetto a µ é uguale a −2 e quindi si
tratta effettivamente di un punto di massimo. Di seguito la relazione tra la
funzione di verosimiglianza ed il suo logaritmo:
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
130
5.4.2
La stima a verosimiglianza
Quindi in generale la verosimiglianza é quel processo che ci permette di
capire, fissata a priori la struttura di una distribuzione di probabilitá, da una
sequenza di numeri qual’é la media e la varianza che rappresentano meglio
la distribuzione che ha generato quei numeri (campioni).
La definizione analitica é:
L[x] =
Y
fY (yi ; x)
(5.4-1)
i
In questa espressione tutte le variabili sono sparite, dipende solo da x. Se
le distribuzioni sono discrete le fY (yi ; x) sono proprio le probabilitá delle
singole y. E il prodotto delle probabilitá é la probabilitá che si riesca ad
estrarre quella sequenza. E dunque é la probabilitá che quel campione sia
estratto da quella distribuzione.
Allora é ragionevole scrivere che la mia x é scelta con l’obiettivo di massimizzare la L[x]:
x̂M LE = max L[x]
x
(5.4-2)
Il vantaggio della verosimiglianza é che arrivo ad un problema (osservate
che sapere a priori che forma ha la pdf non é banale) che ha a che fare
con fY (yi ; x), stiamo avendo a che fare con dei numeri e scompare la parte
aleatoria, diventa un valore dipendente da x.
Nell’esempio di introduzione al problema abbiamo visto che, nel caso in cui
la distribuzione é gaussiana, fare la massimizzazione porta in conto tutto un
prodotto tra esponenziale rendendo il tutto molto difficile. Per questo motivo si preferisce massimizzare il logaritmo della funzione di verosimiglianza:
infatti se massimizzo un cifra di merito a cui ho applicato una funzione
monotona per argomento, il punto di massimo non cambia; e inoltre con il
logaritmo i prodotti diventano delle somme. Lo stimatore sará:
x̂M LE = arg max ln L[x]
(5.4-3)
x
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
5.4.3
131
Proprietá
Lo stimatore di massima verosimiglianza gode di alcune fondamentali proprietá asintotiche. Dato un vettore di parametri ϑ, é possibile dimostrare
che ϑ̂M LE é:
1. Consistente:
p lim(ϑ̂M LE ) = ϑ
(5.4-4)
2. Asintoticamente efficiente: tra tutti gli stimatori consistenti, lo
stimatore di massima verosimiglianza é quello con varianza piú piccola.
Quindi, se esiste 4 , é quello che raggiunge il limite di Cramer-Rao (non
é detto che sia non polarizzato).
3. Asintoticamente distribuito secondo una normale.
5.5
Proprietá degli Stimatori
5.5.1
Efficienza
Def. 5.5.1. L’efficienza di uno stimatore corretto, che indichiamo con T ,
del parametro ϑ̂ é definita come il rapporto tra la minima varianza possibile
per uno stimatore di ϑ, data dalla disuguaglianza di Cramer-Rao, e la sua
varianza effettiva:
e(T ) =
5.5.2
1/I(ϑ)
var(T )
(5.5-1)
Disuguaglianza di Cramer-Rao
In statistica, la disuguaglianza di Cramer-Rao, che prende il nome da Harald
Cramer e Calyampudi Radhakrishna Rao, afferma che il reciproco della matrice informazione di Fisher per un parametro costituisce un limite inferiore
alla varianza di uno stimatore corretto (non polarizzato) per il parametro5
ϑ̂:
var(ϑ̂) ≥
1
1
=
∂
I(ϑ)
E[( ∂x ln f (X; ϑ))2 ]
(5.5-2)
4
Perché in generale devo trovare una x che massimizza L[x] e potrei trovare piú
massimi; cioé non é garantito che la funzione di verosimiglianza sia monotona;
5
Nel nostro caso X = Y e ϑ = x;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
132
Dove I(ϑ) rappresenta l’informazione di Fisher del campione.
Non é infrequente trovare riferimenti alla disuguaglianza di Cramer-Rao
come al limite inferiore di Cramer-Rao.
5.5.3
Stimatore non polarizzato
Ovviamente, il risultato migliore che uno stimatore puó fornire é che la
stima coincida con il valore vero del parametro. Dato che la stima é una
variabile aleatoria, é allora ragionevole richiedere che ció accada in media.
5.5.2. Uno stimatore T (·) del parametro si dice corretto (o non
Def.
polarizzato) se:
E ϑ [T (Y )] = ϑ ∀ϑ ∈ Θ
5.5.4
(5.5-3)
Consistenza
Def. 5.5.3. Sia {Yi }∞
i=1 una successione di variabili aleatorie. La successione di stimatori Tn = Tn (Y1 , . . . , Yn ) si dice consistente per ϑ se Tn
converge a ϑ in probabilitá per ogni ϑ ∈ Θ, cioé:
lim P ϑ {kTn − ϑk > ε} = 0 ∀ε > 0, ∀ϑ ∈ Θ
n→∞
(5.5-4)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
133
In parole povere: produco una stima x̂ (Tn ) basata su (y1 , ...., yN ); immaginiamo che possa fare crescere a dismisura gli esperimenti, N tende
all’infinito, arricchiamo cosí il campione.
Con la (5.5-4) stiamo dicendo che con l’abbondanza delle osservazioni posso
contrastare l’incertezza. Si tratta di un limite in probabilitá perché x̂ é una
variabile aleatoria. In sostanza per ogni ε la probabilitá che io possa stimare il parametro x di una quantitá maggiore di ε é nulla al crescere delle
osservazioni.
Una condizione sufficiente ma non necessaria che ció avvenga é che:
var(x̂(Y )) −→ 0
N →∞
(5.5-5)
Se la varianza del mio stimatore non polarizzato (x̂(Y )) va a 0, allora il
mio stimatore é consistente. Ovvero é asintoticamente convergente al valore
vero.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
134
5.6
Esercizi
5.6.1
Esercizio 1
Il manager di una societá che vende combustibile per riscaldamento é interessato a stimare il consumo medio annuo in litri di alcuni appartamenti
trilocali in zona residenziale, e questa stima viene fatta sulla base di un
campione casuale di 40 osservazioni. Dopo aver determinato questa stima
si vuole conoscere la probabilitá che la stima ottenuta si discosti dal valore
vero (che indicheremo con µ )di una quantitá inferiore a 100 litri.
Dati
Innanzitutto un campione é un vettore di osservazioni di un certo
fenomeno.
Campione causale: vettore di osservazioni ottenute nelle stesse condizioni
sperimentali ed in maniera del tutto indipendente, ovvero ogni osservazione
é indipendente dalle altre (ovvero avere delle informazioni di un’osservazione
non mi da alcuna informazione su un’altra osservazione).
Quindi dato questo campione casuale,la cosa piú intuitiva che posso fare
per determinare la stima del valor medio é quella di considerare la media
campionaria6 ; Altro dato a nostra disposizione é la stima della varianza,
attraverso lo Stimatore varianza campionaria7 (infatti io avendo le n
osservazione e avendo anche la media, posso sempre calcolarmi la varianza
campionaria).
• n = 40 osservazioni;
• ho la stima della media: x̄ =
1
40
• ho la stima della varianza: s2 =
P40
i=1 xi
1
40
P40
= 3220;
i=1 (xi
− x̄)2 = 414736;
• ho la stima della varianza corretta8 : s2c = 425370;
Ora vogliamo capire l’affidabilitá di questa stima, ovvero vogliamo stimare
la probabilitá che la stima ottenuta si discosti dal valore vero µ di una
6
Pn
provieneP
dallo Stimatore media campionaria: X̄ = n1
Xi
i=1
n
2
1
S = n i=1 (Xi − X̄)2
8
Se andassi a considerare il valore atteso della varianza campionaria s2 avrei: E[s2 ] =
n−1 2
1
σ 6= σ 2 ; si usa quindi correggere la stima, ponendo il fattore n−1
nello stimatore (al
n
2
2
1
n
posto di n ) al fine di ottenere sc = n−1 s
7
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
135
quantitá inferiore a 100 litri, che in termini di probabilitá si scrive come:
n
P |X̄ − µ| ≤ 100
Svolgimento
o
(5.6-1)
Per calcolare questa probabilitá dobbiamo prima conoscere
qual é la funzione di distribuzione di probabilitá di X̄. Per il teorema del
limite centrale possiamo dire che la distribuzione é di tipo gaussiana.
Infatti per il teorema del limite centrale, se consideriamo n variabili aleatorie
indipendenti (X1 , X2 , . . . , Xn ),(che non devono necessariamente provenire
dalla stessa distribuzione), con media e varianza finite (perché altrimenti ci
sarebbe una che dominerebbe sulle altre), allora per n → ∞, se io considero
la variabile aleatoria Y espressa come combinazione lineare delle n variabili
aleatorie Xi avró che la media µ sará combinazione lineare delle medie e la
varianza sará combinazione delle varianze secondo i quadrati di αi :
Y =
n
X
i=1
µY =
Pn
σY2 =
Pn
(
αi Xi ⇒
i=1 αi µXi
2 2
i=1 αi σXi
(5.6-2)
Tutto questo é vero se non c’é una varianza che domina sulle altre, ovvero
2 ) che sia molto piú grande delle altre, perché
non deve esserci un (αi2 σX
i
altrimenti il tipo di fluttuazione di questa variabile aleatoria finirá con il
dominare sulle altre.
Il teorema del limite centrale peró non ci dice per quale n questa approssimazione a distribuzione gaussiana é buona (infatti ci dice che vale per
n → ∞): tranne per situazioni patologiche, giá per un n = 4 o n = 5 si
puó dire che questa approssimazione é vera. Questo ci spiega perché noi di
solito approssimiamo tutta la somma delle forme di incertezza che agiscono
sul processo come un rumore di tipo gaussiano.
Sulla base di queste considerazioni quindi la nostra X̄ (poiché proviene da
n variabili aleatorie indipendenti tra di loro, in questo caso identiche) avrá
una distribuzione gaussiana con media µ (pari proprio al valor medio di
2
ciascuna di queste variabili aleatorie) e varianza pari a ( σn ):
X̄ ∼ N (µ,
σ2
)
n
(5.6-3)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
136
Sostituendo (visto che di σ abbiamo una stima corretta):
X̄ ∼ N (µ, 10634)
(5.6-4)
Con qualche semplice passaggio dalla (5.6-1)
n
o
n
o
P |X̄ − µ| ≤ 100 = P −100 ≤ X̄ − µ ≤ 100 =
n
o
9
= P µ − 100 ≤ X̄ ≤ µ + 100 = FX̄ (µ + 100) − FX̄ (µ − 100) =
(5.6-5)
Dobbiamo ora ricordarci che qualsiasi distribuzione gaussiana puó ricordursi
alla gaussiana standard, cioé la gaussiana con media 0 e varianza pari ad
1. Il vantaggio di ricondurci alla gaussiana standard é che quest’ultima é
tabellata ed inoltre in questo modo viene centrata la media su 0, e quindi
ci libera dal parametro incognito µ che noi non conosciamo.
Se chiamiamo Φ la funzione di distribuzione di probabilitá della gaussiana
standard, possiamo allora passare da una distribuzione non standard alla
standard secondo la relazione:
FX (x) = Φ(
x−µ
)
σ
(5.6-6)
ovvero sottraiamo la media e dividiamo per la deviazione standard.
Centrando nella media ho:
100
= Φ( 100
103 ) − Φ(− 103 ) = Φ(0.97) − Φ(−0.97) =
|
{z
}
=1−Φ(0.97)
(5.6-7)
= 2Φ(0.97) − 1 = 1.66 − 1 = 0.66
Otteniamo quindi che nel 66% dei casi la mia stima di 3220 litri non sbaglierá
per piú di 100 litri. Cioé con il 66% delle probabilitá saró tra l’intervallo di
3120 e 3220 litri annui. Per aumentare la probabilitá posso eventualmente
pensare di aumentare la tolleranza rilassando il vincolo su ±100 oppure
posso pensare di considerare piú realizzazioni per restringere l’incertezza.10
9
ricordando che FX (x) = P (X ≤ x)
In questo esercizio non avevano alcuna informazione sulla distribuzione di queste Xi
e quindi per trovare il valor medio abbiamo fatto semplicemente la media campionaria,
potremmo peró seguire anche logiche diverse
10
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
5.6.2
137
Esercizio 2
Un venditore di automobili vuole stimare la proporzione di clienti soddisfatti
del proprio acquisto,e lo vuole fare sulla base di un campione casuale di
numerositá pari a 60. Per semplicitá supponiamo che i clienti possano dare
un voto pari ad 1 se sono soddisfatti e 0 se non sono soddisfatti.
Dati
• n = 60 osservazioni (campione di clienti);
• n1 = 45 clienti soddisfatti;
Svolgimento
In termini di media campionaria in questo caso basta con-
tare i clienti soddisfatti, dividere per il numero totale di clienti ed ottengo
cosí la media campionaria. Qui abbiamo 45 clienti soddisfatti, e quindi la
probabilitá che il cliente sia soddisfatto é pari a:
p̄ =
n1
(= 0.75)
n
(5.6-8)
In questo caso peró le n variabili aleatorie provengono da una distribuzione
di probabilitá nota, ovvero una distribuzione binomiale di parametro p che
é dato (ovvero é la nostra probabilitá di soddisfazione del cliente = 0.75,
che corrisponde appunto alla probabilitá che si verifichi 0 10 ). Quindi io sto
stimando la media campionaria che in questo caso coincide con p̄. Quindi
la stima é come se io l’avessi giá fatta. L’esercizio peró ci chiede di confrontare questa stima ottenuta con la semplice media campionaria con un’altra
stima, ovvero una stima a massima verosimiglianza.
Considero la funzione di massima verosimiglianza che indico con L, dove p
é il parametro che io voglio stimare. La funzione di massima verosimiglianza corrisponde alla funzione di probabilitá congiunta di queste n variabili
aleatorie. Quindi io conosco la distribuzione da cui provengono questi dati
peró ho un parametro incognito p che io voglio stimare:
L(p|x1 , . . . , xn ) = fX1 ,...,Xn (x1 , . . . , xn , p)
(5.6-9)
Se il processo fosse discreto io potrei vedere come la probabilitá dell’evento
congiunto (x1 , x2 , . . . , xn ); ovviamente nel caso di distribuzione in generale
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
138
continua io devo parlare di verosimiglianza perché la distribuzione é continua, la probabilitá di una distribuzione continua é sempre 0 e quindi non
avrebbe senso parlare di probabilitá ma devo parlare quindi di densitá di
probabilitá congiunta.
Se le v.a. sono statisticamente indipendenti possiamo vedere la densitá di
probabilitá congiunta come produttoria delle singole densitá di probabilitá:
fX1 ,...,Xn (x1 , . . . , xn , p) =
n
Y
fXi (xi , p)
(5.6-10)
i=1
Se inoltre le v.a. sono identiche, possiamo togliere il pedice e dire:
fX1 ,...,Xn (x1 , . . . , xn , p) =
n
Y
fX (xi , p)
(5.6-11)
i=1
Quindi il senso é: io osservo un campione che so provenire da una certa
distribuzione peró non ne conosco un parametro, che verrá scelto in modo
tale che quello che ho osservato ha la massima probabilitá (in caso discreto)
oppure ha la massima verosimiglianza (nel caso continuo). Quindi la stima a
massima verosimiglianza la posso scrivere come l’argomento che massimizza
la funzione di verosimiglianza:
pmv = arg max
L(p|x1 , . . . , xn )
p
(5.6-12)
Il fatto che io scriva cosí la funzione di verosimiglianza mi fa capire che le
realizzazioni oramai sono dei dati e io voglio trovare la p che massimizza
questa espressione.
Nel caso in cui ci sia l’indipendenza tra le variabili aleatorie allora questa funzione L é una produttoria; per quanto visto nel paragrafo sulla
verosimiglianza, posso utilizzare questo tipo di scrittura:
pmv = argmax
p
ln L(p|x1 , . . . , xn )
|
{z
`(p|x1 ,...,xn )
(5.6-13)
}
Abbiamo quindi:
`(p|x1 , . . . , xn ) = n1 ln p + (n − n1 ) ln(1 − p)
(5.6-14)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
139
Applicando la condizione necessaria:
∂`
n1 n − n1
n1 − np
=0⇒
−
=
=0
∂p
p
1−p
p(1 − p)
(5.6-15)
Dalla quale si ricava:
n1 − np = 0 ⇒ pmv =
n1
n
(5.6-16)
Quindi la stima alla massima verosimiglianza é uguale sempre a
n1
n
= 0.75,
ovvero la stessa espressione che avevamo per la media campionaria . É stato
solo un caso, non é detto che la media campionaria debba coincidere con
la stima alla massima verosimiglianza. Vedremo nel prossimo esercizio che
la forma della stima alla massima verosimiglianza sará diversa dalla media
campionaria.
5.6.3
Esercizio 3
Abbiamo una variabile aleatoria X che ha la seguente funzione di densitá di
probabilitá nota a meno di un parametro ϑ:
fX (x, ϑ) = ϑx(ϑ−1)
0 < x < 1,
ϑ>0
(5.6-17)
consideriamo un campione casuale di n osservazioni (x1 , x2 , . . . , xn ) sempre indipendenti le une dalle altre. Vogliamo determinare lo stimatore a
massima verosimiglianza della media della distribuzione.11
Svolgimento
Qui io la media non ce l’ho in maniera esplicita nella distri-
buzione, quindi devo andare a calcolare la media applicando la definizione:
Z ∞
µ = E[X] =
−∞
xϑx(ϑ−1) dx = ϑ
Z 1
0
xϑ dx =
ϑ
= ψ(ϑ)12
ϑ+1
(5.6-18)
Sono riuscito ad ottenere il valore vero µ della nostra variabile aleatoria
X di cui vogliamo stimare la media, che é funzione di un certo parametro
incognito ϑ. Considerato che ϑ > 0 allora sul suo dominio questa funzione
é biunivoca (per ϑ = 0 la ψ(ϑ) = 0,mentre per ϑ → ∞ la ψ(ϑ) → 1).
11
Ricordiamo che se avessi voluto farla con la media campionaria allora avrei preso le
n realizzazioni e avrei fatto la media
12
poiché so che 0 < x < 1 allora l’integrale da −∞ a +∞ si puó riscrivere tra 0 e 1
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
140
Essendo biunivoca allora la stima alla massima verosimiglianza di X la posso
ottenere come:
Xmv = ψ(ϑmv )
(5.6-19)
Quindi posso procedere alla stima alla massima verosimiglianza di ϑ e poi
attraverso ψ(ϑ) ottenere la stima che volevo, ovvero quella del valor medio.
Ricapitolando io ho una relazione tra il parametro incognito ϑ (che potrei
calcolare con la massima verosimiglianza) e la media µ. Questa relazione
non é una qualsiasi, ma ψ é biunivoca, quindi posso ottenere la stima alla
massima verosimiglianza di X come la funzione ψ della stima alla massima
verosimiglianza di ϑ, cioé ad un ϑ corrisponde una µ.
Quindi ora i passi fondamentali saranno due: il primo fondamentale é quello
di ottenere la stima di ϑ e il secondo é applicare semplicemente ψ ottenendo
la stima a massima verosimiglianza di X.
Considero la stima a massima verosimiglianza:
L(ϑ|x1 , . . . , xn ) =
n
Y
(ϑ−1)
ϑxi
= ϑn (
n
Y
xi )(ϑ−1)
(5.6-20)
i=1
i=1
passo al logaritmo (per semplificare il discorso):
`(ϑ|x1 , . . . , xn ) = n ln ϑ + (ϑ − 1)
n
X
ln xi
(5.6-21)
i=1
applico la condizione necessaria:
n
n X
+
ln xi = 0
ϑ i=1
ottengo:
(5.6-22)
n
i=1 ln xi
ϑ̂mv = − Pn
(5.6-23)
e quindi:
x̂mv =
n
n−
(5.6-24)
Pn
i=1 ln xi
Come vediamo questa forma di stima a massima verosimiglianza é totalmente diversa dalla stima media campionaria (x̂ =
1
n
Pn
i=1 xi ).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
5. Stima Parametrica
141
Abbiamo visto come in alcuni casi é possibile utilizzare la stima a media
campionaria anche per stimare non necessariamente solo il parametro della distribuzione, ma anche altri valori (che derivano dal parametro precedentemente determinato); questo a patto che queste grandezze che io voglio stimare siano in relazione biunivoca con il parametro incognito della
distribuzione, altrimenti tutto ció non si puó fare.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
142
5. Stima Parametrica
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
6
Stima Bayesiana
C’é una variabile aleatoria X che ha delle sue determinazioni x, una variabile aleatoria Y che ha le sue determinazioni y, e conosco la pdf congiunta
della x con la y, ovvero fXY (x, y). Mentre prima x era un parametro, adesso diventa una variabile aleatoria che con la sua densità di probabilità va
ad influenzare quella di y. X e Y sono congiuntamente variabili aleatorie
e conosco la funzione densità di probabilità. Come è fatta questa pdf congiunta? Se x e y fossero variabili scalari (noi però adopereremo con variabili
vettoriali), potrei fare delle linee di livello:
guardando l’asse che esce dal foglio immaginate la pdf, sotto questa superficie definita dalle curve di livello l’integrale doppio lungo y e x deve essere
uguale a uno (per le proprietà della pdf).
6. Stima Bayesiana
144
6.1
Introduzione al problema
Che significa stimare X che è una variabile aleatoria? Il discorso si
può meglio comprendere se io pongo questo problema della stima a priori
di X fatta senza la conoscenza delle y e una a posteriori fatta sulla base
della conoscenza delle y. Prima di conoscere i dati dell’esperimento, della
variabile X conosco la sua distribuzione marginale fX (x) dove:
Z +∞
fX (x) =
−∞
fXY (x, y)dy
Se mi devo sbilanciare a dare un valore alla x quale devo dare? Facciamo un
esempio: di un allievo sappiamo la distribuzione del punteggio agli esami.
Quanto prenderà al prossimo esame? La media. Ma perchè prendiamo la
media? Perchè è la più probabile? No, perchè paradossalmente anche se non
è quello più probabile prendiamo il valore medio. Il problema ovviamente è
capire qual’è l’obiettivo. Ad esempio nel lancio delle freccette vince quello
che si avvicina più al centro.
Allora stiamo dicendo: hai la tua variabile x, tenti di dare un valore x̂ (che
questa volta non dipende da (y1 , . . . , yN )) in maniera tale che l’errore tra
x̂ e x sia minimimizzato. Logicamente minimizzo il valore atteso perchè si
tratta di una variabile aleatoria. Non andremo ad indovinare il valore, ma
ci avvicineremo:
min
x̂
= min
x̂
E[(x − x̂)2 ] =
E[(x − x̂)T (x − x̂)]
Aggiungo e sottraggo nelle parentesi la quantità E[x] − E[x]:
= min
x̂
= min
x̂
= min
x̂
E[(x − x̂ − E[x] + E[x])T (x − x̂ − E[x] + E[x])] =
E[((E[x] − x̂) + x − E[x])T ((E[x] − x̂) + x − E[x])] =
E[(E[x] − x̂)T (E[x] − x̂)] + E[(E[x] − x̂)T x] − E[(E[x] − x̂)T E[x]] + E[xT (E[x] − x̂)]
−E[xT x] − E[xT E[x]] − E[E[x]T (E[x] − x̂)] − E[E[x]T x] + E[E[x]T E[x]] =
= min
x̂
− x̂T
T E[x]
T
− E[x]
E[(E[x] − x̂)T (E[x] − x̂)] + E[x]
x̂T
E[x]+
E[x]
E[x] + − E[x]
− E[x]T E[x] + E[x]
+ E[x]
T E[x]
T
T
T E[x]
T
T E[x]
T
E[x]
E[x]
E[x]
x̂ − E[x x] − x̂ − E[x] =
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
145
Svolgendo i calcoli, arrivo a questa forma:
n
o
min E[(x̂ − E[x])T (x̂ − E[x])] − E[xT x] − E[x]T E[x]
x̂
Per minimizzare questo indice di costo basta scegliere:
x̂ = E[x]
(6.1-1)
E’ chiaro che questa soluzione è di per se evidente se il valore medio corrisponde poi con il valore massimo, cioè se prendo proprio il massimo della
gaussiana. Non è altrettanto evidente se ho una distribuzione bimodale,
quindi con due picchi di probabilità, dove il valore medio potrebbe capitare in un punto a bassa probabilità che comunque mi garantisce il massimo
accostamento. Perchè il problema non è indovinare il valore vero ma accostarsi il più possibile. In definitiva se x è una variabile aleatoria,
stimare x significa scommettere sul suo valore atteso.
Valore atteso che verosimilmente potrebbe essere qualcosa di dato, perchè
di una variabile aleatoria tutto ciò che si può conoscere è determinato dalla
sua funzione di densità di probabilità.
Ma come faccio a sapere che una certa variabile ha una certa densità di probabilità? Qual’è la sorgente di informazione? Una fonte è
la statistica (nel senso che vado a vedere gli esperimenti), che mi consente
di fare un’inferenza (quella che in logica si chiama induzione e in statistica
Test di Ipotesi), ovvero mi consente di quantificare la distribuzione della
variabile aleatoria. Un’altra fonte di gaussianità è il Teorema Centrale
del Limite, che afferma che molti processi aleatori, che si compongono tra
di loro secondo certe regole, tendono nella collettività, indipendentemente
dalla loro densità di probabilità individuale, ad esprimere una struttura di
tipo gaussiano.
Ma perchè vogliamo sempre riportarci alla funzione densità di
probabilità gaussiana? Perchè è descritta da due soli parametri, che
coincidono con i momenti del primo e del secondo ordine della distribuzione
di probabilità. In teoria, se io prendo una distribuzione qualsiasi e volessi
informarvi sulla natura della distribuzione attraverso i due momenti, dovrei
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
146
dare gli infiniti momenti della distribuzione. La gaussiana ne richiede solo
due, quindi è ricercata perchè ha una struttura semplice.
Io suppongo di conoscere il valore medio della x, perchè quello che è
difficile che io possa conoscere è la funzione densità di probabilità della x,
ma nelle conoscenze generiche di una variabile aleatoria diamo per acquisita
la conoscenza di media e varianza, altrimenti non conosciamo proprio nulla.
6.2
Stima Bayesiana
Poniamoci ora il seguente problema:
min
x̂
E[(x − x̂)T (x − x̂)|Y = y]
Abbiamo quindi un indice di qualità condizionato al fatto che Y si sia manifestata attraverso il suo valore y, ho quindi l’informazione a posteriori.
Come possiamo visualizzare questo aspetto? Riprendiamo le curve di livello
ed evidenziamo il fatto che Y si sia verificato con y:
E’ come se stessimo tagliando un panettone a una certa altezza, ovviamente
l’area sottesa alle curve è cambiata. E’ questa nuova pdf che si deve considerare, perchè è la pdf associata al verificarsi del valore y. Questa densità
di probabilità si calcola con la formula di Bayes.
In effetti noi sappiamo che se X e Y fossero indipendenti potremmo scrivere:
fXY (x, y) = fX (x)fY (y)
Allora vorremmo trovare qualcosa di simile anche nel caso in cui le v.a. X
e Y sono dipendenti. Possiamo scrivere:
fXY (x, y) = fX|Y (x|y)fY (y)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
147
Dove fX|Y (x|y) rappresenta la probabilità di x condizionata al valore y. Da
questa uguaglianza arrivo alla formula di Bayes:
fX|Y (x|y) =
fXY (x, y)
fY (y)
(6.2-1)
A questo punto se voglio fare il valore atteso condizionale, utilizzo la pdf
condizionale, quindi la distribuzione della X conseguente al fatto che la
Y si è verificata tramite y.Alla fine la miglior stima sarà il valore atteso
condizionale:
x̂(y) = E[x|Y = y]
(6.2-2)
Graficamente, quello che faccio con la formula di Bayes, si traduce in un riscalamento: l’integrale doppio lungo y e x sará sempre uguale a 1 e, avendo
tagliato la funzione sopra, vuol dire che sotto le curve di livello la funzione
si é allargata.
Ricapitolando: A priori se devo scommettere su x dico valore atteso di x.
A posteriori, avendo un info ulteriore ovvero un valore della Y , sapendo che
la X è dipendente dalla Y , il fatto che Y abbia acquisito un valore, determina una nuova forma della densità di probabilità di X che chiamo densità di
probabilità condizionata. Questa mi consente di andare a valutare il valore
atteso condizionale, che sarà la stima che darò alla variabile aleatoria.
6.3
Stimatore Bayesiano
Se tolgo la condizione Y = y e considero che la Y possa essere una variabile
aleatoria generica , avrò lo stimatore Bayesiano, che è a priori rispetto alla
stima, perchè la Y non si è ancora verificata, e lo stimatore stesso, essendo
funzione di variabili aleatorie, sarà una variabile aleatoria:
x̂(Y ) = E[x|Y ]
6.3.1
(6.3-1)
Proprietá
1. Lo stimatore bayesiano è non polarizzato. Uno stimatore è non
polarizzato quando il suo valore atteso coincide con il valore vero
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
148
(E[x̂] = x). Ma in questo caso particolare non c’è un dato vero;
dobbiamo ritenere che il mio stimatore sia non polarizzato quando
facendo il valore atteso rispetto alla Y del valore atteso condizionale
ottengo proprio il valore atteso convenzionale di x:
E [x̂(Y )] = E [x|Y ] = E[x]
Y
Y
Lo stimatore, nella media, mi fa ottenere il valore atteso convenzionale
di x, e quindi mi restituisce quello che avrei scommesso in assenza
dell’informazione Y . Questa è la ridefinizione di uno stimatore non
polarizzato nel caso di variabili aleatorie.
2. Lo stimatore bayesiano è anche tale che:
E[kx − x̂(Y )k2 |Y ] ≤ E[kx − g(Y )k2 |Y ]
Cioè qualunque altra elaborazione g(Y ) io voglia fare della variabile
aleatoria Y , non riuscirò mai ad avere una quantità più piccola di
quella ottenuta minimizzando x̂(Y ). Questo è vero per ogni g(Y ). Se
io applico di nuovo il valore atteso rispetto alla Y :
E E[kx − x̂(Y )k2 |Y ] ≤ E E[kx − g(Y )k2 |Y ]
Y
Y
che diventa:
E[kx − x̂(Y )k2 ] ≤ E[kx − g(Y )k2 ]
Ciò significa dire che il mio stimatore è anche a minima varianza, perchè nessun altro stimatore non polarizzato mi restituisce una
quantità più piccola di quella.
3. Proprietà di ortogonalità dell’errore di stima con i dati che
hanno generato questo errore. Supponiamo che io abbia costruito lo
stimatore x̂(Y ); allora posso considerare l’errore di stima e = x̂(Y )−X
, come differenza tra la due variabili aleatorie. Si può dimostrare
che l’errore di stima e, considerato come variabile aleatoria (essendo
funzione sia di X che di Y ), è ortogonale a ogni elaborazione possibile
della variabile aleatoria Y , ovvero possiamo scrivere:
E[e(X, Y )T Y ] = 0
(6.3-2)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
149
o ciò che è lo stesso:
E[e(X, Y )T g(Y )] = 0
(6.3-3)
Succede quindi che l’errore di stima è incorrelato con i dati che l’hanno
generato e, ancor di più, con qualunque elaborazione di questi dati
(questo risultato sarà la chiave di interpretazione del filtro di Kalman).
Che differenza c’è tra incorrelazione e Indipendenza statistica?
Spesso questi termini si confondono perchè c’è sotto il fatto della gaussiana,
ma se uno volesse essere preciso dovrebbe tener conto che uno ha a che fare
con i momenti del secondo ordine e l’altro con tutti i momenti.
6.4
Stimatore Bayesiano Lineare
E’ la soluzione del medesimo problema (minimizzare il valore atteso condizionale dello scarto quadratico):
2
min E[X − X̂(Y ) |Y ]
X̂(Y )
Con il seguente vincolo di struttura:
X̂(Y ) = AY + b
Cioè la mia stima deve essere formata dai dati moltiplicati per una matrice
A più un altro vettore b. E il problema a questo punto è quello di trovare
(A, b), diventa quindi un’ottimizzazione parametrica:
2
minE[X − X̂(Y ) |Y ]
A,b
(6.4-1)
Realisticamente riteniamo di conoscere a priori:
1. E[X] = mX ;
2. E[Y ] = mY ;
3. cov[X] = ΣXX ;
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
150
4. cov[Y ] = ΣY Y ;
5. cov[X, Y ] = ΣXY (rappresenta il grado di correlazione tra le due
variabili).
In generale X e Y potrebbero non essere delle stesse dimensioni, quindi:
ΣXY 6= ΣY X
ma vale sicuramente:
ΣXY = ΣTY X
Sulla base di queste informazioni voglio operare una stima di tipo lineare
(avrò in più un set di dati Y):
minE[(X − AY − b)T (X − AY − b)|Y ]
A,b
Facciamo le seguenti operazioni:
• Faccio comparire il simbolo di traccia e scambio il simbolo di trasposto;
• Posso scambiare tra loro il simbolo di traccia e il simbolo di operatore
atteso;
• Faccio comparire il termine (mX − mX + AmY − AmY );
Allora possiamo scrivere:
min
A,b
trE[[(X − mX ) − A(Y − mY ) − b + mX − AmY ][•]T |Y ]
Facendo i prodotti, sulla base di ciò che conosciamo a priori, abbiamo:
min
A,b
tr[ΣXX +AΣY Y AT −ΣXY AT −AΣY X +(mX −b−AmY )(mX −b−AmY )T ]
Utilizzando la tecnica del completamento dei quadrati, la cifra di merito
diventa:
−1 T
−1 T
T
min tr[(A−ΣXY Σ−1
Y Y )ΣY Y (A−ΣXY ΣY Y ) +ΣXX −ΣXY ΣY Y ΣXY +(mX −b−AmY )(•) ]
A,b
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
151
Allora per minimizzare questa cifra di merito, basta fare le seguenti scelte:
A∗ = ΣXY Σ−1
YY
∗
∗
b = mX − A mY
(6.4-2)
(6.4-3)
La struttura del nostro stimatore sarà la seguente:
x̂∗ (Y ) = mX + ΣXY Σ−1
Y Y (Y − mY )
(6.4-4)
Questa struttura é molto semplice. Se io voglio fare una stima lineare, la
compongo con due elementi: mX è la stessa x̂ che io avrei fatto senza l’informazione su Y; posso quindi ritenere che questo primo componente sia la
stima a priori. Il secondo componente è una correzione della stima a
posteriori , che interviene per scarto, ovvero correggo la mia stima sulla
base di quanto il dato scarta dalla sua media. Questo scarto è pesato da
−1
ΣXY Σ−1
Y Y dove: ΣY Y , se y è un solo dato, è l’inverso della varianza; quindi
se la varianza è molto alta, la correzione, a parità di scarto, sarà piccola
(stesso discorso del Gauss-Markov). ΣXY è il grado di correlazione tra la X
e la Y , quindi la correzione è tanto più forte quanto più forte è la correlazione tra le variabili aleatorie. Il peso dato alla correzione è inversamente
proporzionale alla varianza e direttamente proporzionale alla correlazione.
Quanto detto fino ad ora può sembrare banale, ma ha delle implicazioni
enormi. Facciamo un esempio interessante: io so che la speranza di laurea
degli allievi della facoltà di ingegneria è valutata intorno a una certa probabilità (che tiene conto della media, degli anni di corso,ecc...); allora se devo
dire che voto prenderai alla laurea, faccio una valutazione a priori sulla base
delle informazioni che ho: il risultato della valutazione sarà la media. C’è
qualche informazione in più che posso utilizzare per affinare la mia stima?
Magari, se ci fosse la utilizzerei sicuramente. Ad esempio io posso trovare, sulla base di un’analisi statistica, un certo livello di correlazione tra il
voto di diploma e il voto di laurea (persone che hanno avuto un voto alto
di diploma, statisticamente hanno anche un voto alto di laurea). A questo
punto posso correggere la mia stima in modo bayesiano. E di volta in volta
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
152
posso modificare la mia stima se mi arrivano delle informazioni che non sono
quelle a priori. Il discorso si può fare anche al contrario: possiamo dire che
il voto del test di accesso alla facoltà di Ingegneria ha un certo grado di
correlazione con il voto finale di laurea; al contrario, se io mi accorgo che il
test di ingresso ha un grado di correlazione (compreso ovviamente tra 0 e
1) con il voto del test, posso andare a migliorare la mia stima.
6.5
Stimatore Bayesiano Lineare con piú sorgenti
di informazione
Vediamo cosa succede se ho due sorgenti di informazione, Y e Z, che mi
consentono di fare inferenza sulla X che devo stimare. Il combinare le informazioni è assolutamente banale: possiamo sempre dire che la mia sorgente
è unica, basta raccogliere le variabili aleatorie Y e Z in un unico vettore W :
" #
Y
1. W =
Z
"
2. mW =
#
mY
mZ
"
3. cov[W ] =
ΣY Y
ΣY Z
ΣTZY
ΣZZ
h
= ΣW W
i
4. cov[X, W ] = ΣXY
6.5.1
#
ΣXZ = ΣXW
Sorgenti Incorrelate
Abbiamo due sorgenti che non mi forniscono le stesse informazioni. Avremo
quindi:
"
cov[W ] =
ΣY Y
0
0
ΣZZ
#
= ΣW W ⇒ ΣY Z = ΣTZY = 0
e la struttura del nostro stimatore sarà:
x̂(W ) = mX + ΣXW Σ−1
W W (W − mW )
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
153
Svolgendo i calcoli tra le matrici, otteniamo:
−1
x̂(W ) = mX + ΣXY Σ−1
Y Y (Y − mY ) + ΣXZ ΣZZ (Z − mZ )
(6.5-1)
Quindi ciò che esce fuori, nel caso di sorgenti incorrelate, è una somma di
correzioni (più qualche eventuale bilanciamento dovuto al fatto che potrei
non polarizzare la mia stima).
Questo caso sebbene sembri molto semplice è in realtà molto importante,
riguarda infatti la Sensor Fusion, cioè la possibilità di unire i dati da
più sensori. Quando si fa la fusione quindi si cerca di capire se le sorgenti
sono incorrelate( ovviamente è difficilissimo che lo siano; immaginate però
una telecamera ed un sensore di temperatura: in questo caso ovviamente
possiamo ragionevolmente credere che siano incorrelate ).
6.5.2
Sorgenti Correlate
Il vero problema é quando Y e Z sono correlate. In questo caso, dobbiamo
ricordare la proprietá di ortogonalitá dell’errore di stima ((6.3-3)): se ho Y
che genera una stima x̂ ed un errore di stima, allora Y e l’errore di stima
sono sempre ortogonali.
Posso quindi pensare di rendere indipendenti le sorgenti Y e Z. Posso infatti generare, artificiosamente, la Ŷ (Z): fingo in sostanza di non conoscere Y
e ne faccio una predizione sulla base di Z, poi mi ricordo che la conosco e
quindi ho fatto un errore di stima; che per quanto detto prima è ortogonale
a Z (che è il dato che generato la stima). Il valore atteso dell’errore di stima
per Z, essendo l’errore di stima sempre ortogonale alla sorgente che lo ha
generato, sarà nullo :
E[(Ŷ (Z) − Y )T Z] = 0
Il fatto che il valore atteso di questa quantitá sia nullo vuol dire che quando
ho problemi dove c’e’ correlazione tra le sorgenti sostituisco ad un
sorgente Y l’errore di stima che faccio sul valore del dato Y stesso
e quindi mi considero la variabile errore eY e la variabile Z e cosi
facendo le due sorgenti sono incorrelate e mi posso riportare allo schema
in cui le sorgenti sono incorrelate ed operare la stima come in ( (6.5-1)).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
154
In sostanza la stima diventerebbe:
X̂(Y, Z) = X̂(Y − Ŷ (Z)) +X̂(Z) − mX
|
{z
Innovazione
(6.5-2)
}
L’innovazione è cosi detta perchè rappresenta l’incremento di informazione
da parte di Y rispetto al fatto di conoscere Z. Utilizzo quindi Z come base
per fare la stima e vado a vedere questa stima quanto dista dal dato: questo
errore è proprio l’innovazione.
6.6
Struttura del Filtro di Kalman
Solo ora siamo in grado di capire la struttura del Filtro di Kalman (K.F.).
Nel K.F supponiamo di stare all’istante k: in questo istante ho una stima
x̂(k|k − 1) ed ho le misure delle uscite y(·) fino a k. Quindi la mia sorgente
di informazione può essere:
Il filtro di Kalman lavora sulla conoscenza di A, B, C e non solo delle misure.
Posso allora immaginare di distinguere la mia sorgente di informazione in
questo modo:
y(0), y(1), . . . , y(k)
|
{z
Z
} | {z }
Y
In sostanza suddivido artificialmente in Z tutto quello che ho fino a (k − 1)
e in Y metto y(k).
Faccio questo perchè il set di dati da 0 a y(k − 1) è per cosi dire quello
responsabile che mi ha dato la stima x̂(k|k − 1); quindi se ragiono alla
Bayes ho due sorgenti di informazione, una Z che mi permette di fare la
stima x̂(k|k − 1), e volendo fare x̂(k|k) [cioè la stima all’istante k con tutte
le misure disponibile fino a k, ovvero anche y(k)] questa può ottenersi come
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
6. Stima Bayesiana
155
la somma delle due stime:
x̂(k|k) = x̂(k|k − 1) + x̂(k|misura
Ma x̂(k|misura
di
di
y(k))
y(k)) non posso scriverlo visto che le due sorgenti sono
palesemente correlate e quindi devo creare una sorgente ortogonale a quella
per y(0), . . . , y(k − 1) come ho fatto prima. E allora la sorgente che genero
è:
eyk = ŷ(k|k − 1) − y(k)
Questa innovazione mi consente di fare:
x̂(k|k) = x̂(k|k − 1) + x̂[ŷ(k|k − 1) − y(k)]
(6.6-1)
Questa stima, per la (6.5-2) è uguale a:
+ K(k)(eyk − mey ) − =
x̂(k|k) = x̂(k|k − 1) + E[x(k)]
E[x(k)]
k
|
{z
x̂(Z)
}
|
{z
}
x̂(eyk )
| {z }
mx
E’ comparso il valore atteso di x(k) a priori, più delle matrici K (che sono
quelle di correlazione) per lo scostamento della quantità e dalla sua media.
Continuando i passaggi abbiamo:
a
z
}|
{
= x̂(k|k − 1) + K(k) [ŷ(k|k − 1) − y(k)] −K(k)me =
|
{z
eyk
}
= a − K(k)E[ŷ(k|k − 1) − y(k)]
Se io faccio l’inizializzazione corretta del K.F. (ovvero uso una condizione
iniziale pari alla condizione iniziale del mio processo), ho che il filtro di Kalman è non polarizzato (E[x̂(k) − x(k)] = 0). Se non è polarizzato l’errore di
stato non lo sarà nemmeno quello di uscita (essendo legate da C; e pertanto
posso cancellare la KE[ŷ(k|k − 1) − y(k)]).
Sulla base di uno stimatore lineare Bayesiano ho concluso che:
x̂(k|k) = x̂(k|k − 1) + K(k)[y(k) − ŷ(k|k − 1)]
(6.6-2)
Naturalmente K sarà funzione di k poichè i dati cambiano sempre.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
156
6. Stima Bayesiana
Osservate che x̂(k|k − 1) si può scrivere come (Ax̂(k − 1|k − 1) + . . . ) e
quindi la struttura è quella di uno stimatore ricorsivo Bayesiano. K(k) contiene le matrici di covarianza tra l’errore di predizione ed x e la covarianza
dell’errore (da elevare a −1); con la tecnica del filtro di Kalman, queste matrici vengono calcolate ricorsivamente attraverso la soluzione dell’equazione
di Riccati. La conclusione di questo ragionamento è che il Filtro di Kalman
può essere visto come uno stimatore Bayesiano lineare ricorsivo.
Riconoscere questa caratteristica dello stimatore ci fa riconoscere la struttura predittore-correttore. Predittore perchè basato sulla stima precedente
e correttore perchè basato sull’ innovazione.
Dobbiamo pensare che nel K.F. i dati fino a (k − 1) sono noti e già utilizzati e quando arriva y(k) dobbiamo sapere quanto questa goccia in pù ci
puó dare. L’innovazione è ciò che c’è in più in y(k) che non c’era nel record
[y(0), . . . , (k − 1)]. Questo è in sostanza il bit di informazione in più che
utilizziamo per migliorare la stima.
1
Figura 6.1: Stimatore ricorsivo dello stato di un sistema dinamico incerto
(Filtro di Kalman)
1
In sostanza riferendoci alla sensor fusion come facciamo a discriminare una sorgente?
Proprio tramite le innovazione. Questo meccanismo è una specie di validazione della
sorgente, potrebbe infatti bastare Z, però se voglio incrementare devo validare Z; questa
Z rispetto ad Y che cosa mi consente di prevedere di Y ? se mi consente di prevedere
tutto, è inutile che metto la Y . Z in sostanza valida l’altra sorgente.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
7
Identificazione
L’Identificazione é un problema in cui assegnato un modello e noti gli ingressi e le uscite, si individuano i parametri. Risulta essere, quindi, un
problema di stima parametrica.
Esempio: Se usiamo un modello dinamico del tipo:
y(k) = a1 y(k − 1) + a2 y(k − 2) + b1 u(k)
é un sistema Siso, con due poli e nessuno zero; la funzione di trasferimento
di questo sistema é pari a:
W (z) =
b1
1 − a1 z −1 − a2 z −2
=
z 2 b1
z 2 − a1 z − a2
I parametri incogniti nella f.d.t. sono a1 , a2 , b1 e quindi il problema si potrebbe interpretare come un problema di stima di questi parametri incogniti;
questo si ha quando io guardo sia la y che la u come dati noti (io ho registrato i valori degli In u(k) e degli Out y(k)) ed il mio problema diventa
trovare la f.d.t. che meglio interpreta questi dati noti.
7. Identificazione
158
Assunzioni:
• Per semplicitá tratteremo sistemi SISO, per avere una piccola lista
di dati disponibili su cui lavorare.
• Tratteremo problemi con il minimo numero di parametri; per questo
motivo utilizzeremo rappresentazioni I-U: infatti, assegnato un modello, la rappresentazione I-S-U (matrici A, b, cT ) presenta (N 2 + 2n)
parametri (supponendo che l’ordine sia stato fissato e che il problema
di complessitá del modello sia stato risolto). La I-U (rappresentazione
tramite f.d.t), sebbene esprima la stessa realtá fisica, consta di soli 2n
parametri.
• Ci interesseremo dell’ identificazione di un modello di natura incerta,
e la faremo sulla base della conoscenza dell’incertezza1 .
Infatti, se il problema fosse di natura puramente deterministica allora l’identificazione non avrebbe interesse particolare perché si tratterebbe soltanto
di accumulare informazioni per un certo tempo: se l’osservazione dello stato
si facesse soltanto in ambito deterministico, e non ci fossero incertezze, sarebbe soltanto un ’attesa del deposito di informazioni sufficienti a risolvere
un problema di equazioni lineare.
Anche nel nostro caso quindi il problema si potrebbe trasformare in un problema di attesa di un tempo per la raccolta di un numero sufficiente di dati
tale da poter risolvere un numero di equazioni lineari (indipendenti) dal
quale ricavare le nostre incognite2 .
Ricapitolando: vogliamo identificare modelli SISO rappresentati in forma I-U e soggetti ad un’incertezza rappresentata con un processo di tipo
aleatorio di cui conosciamo qualche statistica.
1
Possiamo vedere la matrice di covarianza come una quantificazione del livello di
incertezza.
2
Attendere ad esempio un tempo sufficiente per avere 5 equazioni linearmente indipendenti che derivano sempre dalla stessa equazione vista peró in istanti di tempo differenti,
per determinare 5 parametri incogniti. Salvo nel caso in cui l’ingresso sia costante.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.1
159
Modello ARX
Il modello generico sará:
y(k) = a1 y(k − 1) + · · · + an y(k − n) + b0 u(k) + · · · + bm u(k − m) (7.1-1)
|
{z
AR
}
|
{z
X
}
é una forma che siamo abituati a vedere in questo modo:
y(k + n) − a1 y(k + n − 1) − · · · − an y(k) = b0 u(k + n) + · · · + bm u(k + n − m)
(7.1-2)
Questo perché siamo abituati a pensare nella logica del problema diretto,
ovvero data la u io voglio trovare la y; invece ora siamo nella logica dell’identificazione e dobbiamo ragionare in un altro modo (nonostante l’equazione
sia la stessa).
Se scriviamo l’equazione nella forma (7.1-1), vediamo il sistema come un
generatore di numeri; il numero y(k) é generato da una combinazione
lineare dei numeri precedenti (quindi ci vuole una condizione iniziale da cui
far partire tutto); sará chiamata componente AR, ovvero componente AutoRegressiva. la seconda componente di y invece é un’altra combinazione
lineare di dati che provengono dall’esterno e sono detti dati Esogeni (eXsogenous).
Quando specifico il modello ARX, che é un modello lineare perché parliamo
di combinazioni lineari, devo dare anche l’ordine con cui combino i dati y
e l’ordine con cui combino i dati u; ovvero quanti dati da se stesso precedentemente generati devo considerare? n dati. E quanti dati provenienti
dall’esterno devo considerare? m. Da cui ho la definizione ARX(n,m).
7.1.1
Rappresentazione Polinomiale
D’ora in poi per semplicitá di notazione e rappresentazione dei modelli useremo la rappresentazione polinomiale che é una rappresentazione consanguinea con la rappresentazione in termini di f.d.t.; considero l’operatore di
ritardo unitario z −1 e scrivo:
y(k) = a1 z −1 y(k)+a2 z −2 y(k)+· · ·+an z −n y(k)+b0 u(k)+b1 z −1 u(k)+· · ·+bm z −m u(k)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
160
Raccogliendo i fattori abbiamo:
(1 − a1 z −1 + · · · + an z −n )y(k) = (b0 + b1 z −1 + · · · + bm z −m )u(k)
Che indicheremo in (Forma Compatta) in questo modo:
A(z −1 ) y(k) = B(z −1 ) u(k)
| {z }
AR
A(z
−1
X
)=1−
nA
X
ai z −i
i=1
B(z
−1
(7.1-3a)
| {z }
)=
nB
X
bi z
(7.1-3b)
−i
i=1
Se si vuole tenere in conto anche di un ritardo finito tra l’ingresso e l’uscita
si deve modificare questa forma compatta (non é detto che esista sempre),
la (7.1-1) diventa:
y(k) = a1 y(k−1)+a2 y(k−2)+· · ·+an y(k−n)+b0 u(k−d)+b1 u(k−1−d)+· · ·+bm u(k−m−d)
e si arriva alla forma:
A(z −1 )y(k) = |{z}
z −d B(z −1 )u(k)
(7.1-4)
delay
7.1.2
Modello a Errore di Equazione
Ora vediamo come possiamo rappresentare con uno schema a blocchi il
modello ARX con incertezza di misura:
Guardandola sotto forma di funzione di trasferimento:
y(k) = z −d
B(z −1 )
u(k)
A(z −1 )
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
161
Se a questo punto volessimo introdurre l’incertezza:
y(k) = z −d
B(z −1 )
u(k) + w(k)
A(z −1 )
che riportata nella forma (7.1-4) diventa:
A(z −1 )y(k) = z −d B(z −1 )u(k) + A(z −1 )w(k)
(7.1-5)
La nuova componente (A(z −1 )w(k)): puó rappresentare una specie di colorazione del rumore se w(k) fosse stato definito come rumore bianco; inizialmente, infatti, w(k) era un rumore bianco, ora peró io gli sto facendo
acquisire memoria dei valori precedenti, perché prendo w(k) e lo sommo
a w(k − 1) moltiplicato per un certo coefficiente e cosí via; quindi questa
componente va a creare un effetto di correlazione sull’uscita del rumore.
Non stiamo dicendo altro che il rumore ha una sua dinamica. Ovviamente
il fatto che i coefficienti di w(k) siano uguali a quelli di y(k) (vediamo che
entrambe sono moltiplicati per A(z −1 )) porta a delle semplificazioni: l’eq.
(7.1-5) rappresenta il Modello a Errore di Equazione.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
162
7.2
7. Identificazione
Modello ARMAX
Il modello piú generale sará :
A(z −1 )y(k) = z −d B(z −1 )u(k) + C(z −1 ) w(k)
(7.2-1)
| {z }
MA
Suppongo che davanti a w(k) ci sia una qualunque combinazione di coefficienti (C(z −1 )) e non per forza gli stessi coefficienti di y(k) come nella
(7.1-5); ’MA’ sta per Moving Average, media mobile.
Se vogliamo esprimere tutti gli ordini del modello abbiamo ARMAX(nA , nB , nC , d),
dove nI rappresenta il grado del polinomio I-esimo, e d é il ritardo.
Quindi ora posso dire che esiste una f.d.t tra y(k) e w(k):
Quindi la y(k) é generata da una componente di tipo deterministico e da
un’altra componente dovuta alla w(k), ovvero l’incertezza remota filtrata
attraverso un sistema dinamico (la sua f.d.t.), e acquisisce tutte le correlazione che questo sistema dinamico gli puó dare.
Si puó dimostrare che il polinomio C(z −1 ) puó sempre essere reso monico:
infatti il segnale w(k) é un segnale di cui io conosco le caratteristiche statistiche; allora se io scrivo per esempio C(z −1 ) = 10 + z −1 , poiché C(z −1 )
viene moltiplicato per w(k) e quest’ultimo non é manipolabile essendo aleatorio, nessuno mi vieta di pensare ad un segnale che sia 10 volte piú piccolo
e poter sempre scrivere il polimonio monico, visto che il segnale w(k) non
ha una sua consistenza fisica. Rendere C(z −1 ) monico ci consente di avere
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
163
il primo parametro noto; anche A(z −1 ) é monico, perché non ha a0 . B(z −1 )
invece ha tutti i coefficienti.
7.2.1
Modello a rumore omnicompresivo
Nella rappresentazione I-S-U abbiamo il rumore di processo ed il rumore di
misura. Se io ora rinuncio a voler vedere distintamente un rumore di misura
ed uno di processo ma li metto insieme, posso generare un processo aleatorio
equivalente che mi genera un effetto equivalente ai due rumori. Quindi il
vero modello equivalente al modello dal quale siamo partiti in variabili di
stato ridimensionato per un ingresso ed un’uscita, con due processi aleatori
potrebbe essere reso equivalente ad un sistema ad un ingresso aleatorio di
questa tipologia (unico processo di rumore omnicomprensivo). Questa é la tipologia che dovremo considerare,ovvero questo é il modello lineare
equivalente ARMAX che dovremo utilizzare:
A(z −1 )y(k) = z −d B(z −1 )u(k) + C(z −1 )ζ(k)
(7.2-2)
Nel caso in cui risultasse C(z −1 ) = 1, il modello viene chiamato Arx Incerto e il predittore ad esso associato, a differenza di quello Armax, é lineare
nei parametri.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
164
7.3
Problema di predizione
In realtá le sorgenti esterne non sono misurabili: come posso identificare
il sistema se il rumore non é accessibile? É chiaro che la mia incognita
resta l’insieme dei parametri del modello. Per semplificarci la vita, e iniziare
a vedere come si ragiona, poniamoci nel caso ARX, ponendo C(z −1 ) = 1
(in questo modo non ci sono piú medie mobili).
Vi rendete conto che la sequenza [y(0), ..., y(k)] che ho raccolto fino all’istante k, é una realizzazione di un processo stocastico: potrei quindi fare
quel ragionamento nel quale diciamo che a priori rappresentano un processo
stocastico, a posteriori sono dei dati. Potrei dare per buono i dati che mi
sono arrivati fino a (k−1) (perché mi arrivano progressivamente) e mettermi
in stand-by in attesa di y(k): avrei due sorgenti di informazione, una che si
é determinata e una che si sta per determinare. Peró, in qualche modo so
che queste due sorgenti di informazione sono tra di loro correlate, e quindi
mi devo procurare un modo per estrarre l’innovazione. Allora faccio questo
tipo di ragionamento: se io ignorassi il fatto di conoscere y(k), e facessi
una predizione ŷ(k|k − 1), potrei andarlo a confrontare proprio con y(k),
creandomi quindi l’errore, che rappresenta proprio l’innovazione. A questo
punto avró una quantitá stocastica, poiché sono in attesa del dato, il mio
predittore é una variabile aleatoria non essendosi ancora determinata; posso
porre quindi il seguente problema di minimizzazione:
min
ŷ(k|k−1)
E[(ŷ(k|k − 1) − y(k))2 ]
Voglio quindi andare a trovare il predittore ottimale minimizzando lo scarto
quadratico. Quello che voglio fare, quindi, é prevedere i dati (che in realtá
ho) al meglio. In realtá questo problema di trovare ŷ(k|k − 1) con il modello
Armax a disposizione non lo sappiamo risolvere; lo abbiamo saputo fare
quando ŷ era C x̂, ma adesso la predizione non é possibile farla attraverso
lo stato stimato. Vediamo come arrivare al migliore predittore, supponendo
di avere perfetta conoscenza dei parametri del modello.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.3.1
165
Predittore a un passo
Prendo la (7.2-2) e sommo e sottraggo la quantitá y(k):
y(k) − y(k) + A(z −1 )y(k) = B(z −1 )u(k − d) + C(z −1 )ζ(k) ⇔
⇔ y(k) = [1 − A(z −1 )]y(k) + z −d B(z −1 )u(k) + ζ(k)
C(z −1 ) = 1. La dipendenza di y(k) a primo membro con l’y(k) a secondo
membro é solo apparente, in quanto A(z −1 ) é un polinomio monico, quindi
il primo termine di (1−A(z −1 )) sará nullo. Lo scriviamo in questo modo per
preservare il polinomio A(z −1 ), senza doverlo spacchettare. A questo punto,
riprendiamo la forma da minimizzare e sostituiamo l’espressione trovata per
y(k):
E[(ŷ(k|k − 1) − [1 − A(z −1 )]y(k) − z −d B(z −1 )u(k) − ζ(k))2 ]
min
ŷ(k|k−1)
|
{z
a
}
| {z }
b
Dobbiamo quindi fare (a − b)2 :
min
ŷ(k|k−1)




E[(ŷ(k|k − 1) − [1 − A(z −1 )]y(k) − z −d B(z −1 )u(k))2 ] + E[ζ 2 (k)] + |{z}
0



|
{z
σζ2
}
Siccome in realtá quel y(k) a secondo membro é almeno un y(k − 1), non
c’é una dipendenza statistica con ζ(k), e il termine misto nella media sará
nullo.
A questo punto é semplice notare che il miglior predittore, che minimizza
questo valore atteso dello scarto quadratico dell’errore di previsione d’uscita,
sará:
ŷ(k|k − 1) = [1 − A(z −1 )]y(k) + z −d B(z −1 )u(k)
(7.3-1)
Ma é un risultato banale, perché in pratica ho preso tutta la componente
deterministica e ho tagliato tutta la componente aleatoria (che era senza
memoria, quindi non potendo starci dietro l’ho scartata).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
2ab







7. Identificazione
166
7.3.2
Predittore a m passi
Prima di tutto scriviamo il modello scalato in avanti:
A(z −1 )y(k + m) = B(z −1 )u(k + m) + C(z −1 )ζ(k + m)
Considero
C(z −1 )
:
A(z −1 )
(7.3-2)
questi due polinomi hanno grado differente (nC e nA );
quando faccio la divisione (in realtá faccio m passi di divisione), ottengo un
quoziente Q e un resto R:
−1
C(z −1 )
−1
−m R(z )
=
Q(z
)
+
z
A(z −1 )
A(z −1 )
Il fattore z −m compare perché ho fatto m passi di divisione; il polinomio Q
ha grado nQ = (m − 1) perché mi sono fermato a m passi di divisione.
A questo punto possiamo dire che esistono 2 polinomi Q e R tali che C(z −1 )
si puó decomporre in questo modo:
C(z −1 ) = A(z −1 )Q(z −1 ) + z −m R(z −1 )
Si tratta di un eq. Diofantina, nella quale Q, R sono polinomi incogniti,
A, C, z −m sono assegnati.
Riprendiamo l’eq. (7.3-2) del modello scalato in avanti, moltiplichiamo tutto
per Q(z −1 ) :
Q(z −1 )A(z −1 )y(k + m) = Q(z −1 )B(z −1 )u(k + m) + Q(z −1 )C(z −1 )ζ(k + m)
sommo e sottraggo a primo membro la quantitá [C(z −1 )y(k + m)] e avró:
C(z −1 )y(k+m) = z −m R(z −1 )y(k+m)+z −d Q(z −1 )B(z −1 )u(k+m)+C(z −1 )Q(z −1 )ζ(k+m)
Divido tutto per C(z −1 ) e otteniamo:
y(k+m) = z −m
−1
−1
R(z −1 )
−d Q(z )B(z )
y(k+m)+z
u(k+m)+Q(z −1 )ζ(k+m)
C(z −1 )
C(z −1 )
Adesso voglio minimizzare questa espressione:
min
ŷ(k+m|k)
E[[y(k + m) − ŷ(k + m|k)]2 ]
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
167
cioé voglio fare il predittore m passi avanti che mi genera lo scarto quadratico
medio piú piccolo possibile. Andando a sostituire y(k + m) con l’espressione
trovata prima, siccome Q(z −1 ) ha grado (m − 1), va ad ’ammazzare’ la
memoria di ζ(k + m) (é come se nell’espressione ci fosse un ζ(k + 1)), lo fa
diventare indipendente da y(k + m).⇒ Il doppio prodotto in valore atteso
verrá nullo.
Il predittore migliore di un modello di tipo Armax m passi in avanti sará:
ŷ(k + m|k) = z −m
−1
−1
R(z −1 )
−d Q(z )B(z )
y(k
+
m)
+
z
u(k + m)
C(z −1 )
C(z −1 )
(7.3-3)
Ho quindi isolato la quota di memoria dipendente e ho tenuto quella indipendente (attraverso l’operazione di divisione di polinomi) 3 .
7.3.3
Predizione Armax
Questa volta C(z −1 ) 6= 1. Partiamo dall’eq (7.2-2); dividendo tutto per
C(z −1 ), in modo da privare della memoria l’incertezza ζ(k), abbiamo:
A(z −1 )
B(z −1 )
y(k)
=
u(k − d) + ζ(k)
C(z −1 )
C(z −1 )
Facendo la solita operazione di sommare e sottrarre a primo membro la
quantitá y(k), ottengo la forma del predittore:
y(k) = [1 −
A(z −1 )
B(z −1 )
]y(k)
+
u(k − d) + ζ(k)
C(z −1 )
C(z −1 )
Vale sempre il discorso che y(k) a primo membro non dipende da y(k) a
secondo membro. A questo punto so che il miglior predittore l’ottengo
prendendo tutta la componente deterministica scartando la componente di
rumore bianco:
ŷ(k|k − 1)) = [1 −
A(z −1 )
B(z −1 )
]y(k)
+
u(k − d)
C(z −1 )
C(z −1 )
(7.3-4)
3
Naturalmente questo discorso di predizione in avanti lo posso fare anche con il Filtro
di Kalman; ad esempio le previsioni del tempo si fanno con il K.F. e naturalmente le
variabili di stato di cui si deve tener conto sono tantissime.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
168
E si vede bene che il predittore, nel modello Armax, é non lineare nei
parametri (perché i parametri ci compaiono a denominatore).
Passando alla forma di generatori di numeri:
C(z −1 )ŷ(k|k − 1)) = [C(z −1 ) − A(z −1 )]y(k) + z −d B(z −1 )u(k)
Il fatto che ŷ(k|k − 1) sia premoltiplicato per C(z −1 ), ci fa capire che la predizione é ricorsiva: é questo che crea la non linearitá rispetto ai parametri;
per fare la migliore predizione ho bisogno delle predizioni precedenti.
7.4
Problema di Identificazione
Risolto questo problema di predizione, valutiamo ora il problema di Identificazione. Cosa cambia se i parametri del modello non sono noti?
Se prima il nostro gioco era:
conoscevo i parametri e quindi conoscevo il predittore. Se ora non conosco
i parametri, dal punto di vista del processo non cambia nulla: nell’ipotesi
di identificazione, é vero che i parametri non li conosco, ma sicuramente
conosco u(k) e y(k). Allora basterá agire sui parametri del predittore fino
a che non avró ottenuto il piú piccolo scarto quadratico:
Cerco quindi di trovare i parametri del predittore che realizzano, per diffe© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
169
renza con le uscite del modello, lo scarto quadratico cumulato piú piccolo
possibile. In questo senso, non sto facendo l’identificazione del modello, ma
sto facendo l’identificazione del predittore!
Osservazioni:
Si tratta di un meccanismo che implicitamente implemen-
ta una filosofia che abbiamo giá visto, cioé non confronta parametri con
parametri, ma in questo caso faccio la variazione dei parametri ϑ tali che
ϑ̂ mi generi lo scarto migliore. D’altro canto io so di aver preso il miglior
predittore, quindi meglio di quello non puó fare; ecco perché risolvere il
problema della migliore predizione é in un certo senso preliminare: perché
io devo fare in modo di avere la migliore predizione nelle condizioni in cui
sono, cioé sfruttando tutta la componente deterministica che ha il modello,
dopo di che il risultato della predizione sará solo influenzato dalla bontá
dei parametri, e quindi arriveró in un punto che questi parametri mi daranno la massima adesione con i dati che ho a disposizione, e quelli saranno
i parametri che prenderó. Ho fatto quindi un confronto tra l’effetto che
quei parametri generano con l’effetto che io ho a disposizione. Questo ragionamento sembra banale, ma fa capire qual’é la logica che sta dietro la
predizione migliore possibile.
Ricapitolando: La logica alla quale mi attengo quando voglio fare identificazione é: dato un modello, scelgo il miglior predittore di quel modello, poi
inizio a variare i parametri del predittore (con un algoritmo, oppure con un
sistema chiuso tipo la pseudoinversa) in maniera tale da adattare i parametri a generare lo scarto quadratico medio piú piccolo possibile rispetto alla
sorgente di dati che ho a disposizione.
In generale, presa la (7.2-2), a priori potremmo avere le seguenti informazioni:
1. ζ(k) W N (0, Σ) (rumore omnicomprensivo). Abbiamo il modello
del rumore, non conosciamo ovviamente il valore esatto ma conosciamo un range di ammissibilitá dei valori con dei tassi di probabilitá ad
esso associati;
2. y(i)
∀i = 0, . . . , k;
3. u(i) ∀i = 0, . . . , k (considero le u(k) non affette da rumore);
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
170
4. nA , nB , nC , d;
I parametri saranno quindi raccolti in un vettore:


a1
 . 
 . 
 . 


a 
 nA 


 b0 


 . 

.
ϑ=
 . 


b 
 nB 


 c1 


 . 
 .. 


(7.4-1)
cnC
Per uscire dalla fase di identificazione quindi io dovró fornire una stima di
questi parametri:


aˆ1
 . 
 . 
 . 


aˆ 
 nA 


 bˆ0 


 . 

.
ϑ̂ = 
 . 


b ˆ 
 nB 


 cˆ1 


 . 
 .. 


(7.4-2)
cnˆC
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.5
171
Identificazione ARX ai Minimi quadrati
Riprendiamo il modello ARX incerto come generatore di numeri:
yk = ak yk−1 + · · · + a1 yk−n + bn uk−nd −1 + · · · + uk−nd −n + ζk
(7.5-1)
C’é una stranezza che si nota subito: n = m; in realtá non é una stranezza,
perché supponendo che n sia uguale a m non si perde alcuna generalitá, in
quanto potrei comunque porre a zero uno dei coefficienti e andare a modificare il mio modello.
Supponiamo quindi di avere una sequenza di misure dell’ingresso e dell’uscita4 :
y(0), . . . , y(n), y(n + 1), . . . , y(N )
u(0), . . . , u(n), u(n + 1), . . . , u(N )
(7.5-2)
con n indichiamo l’ordine del modello e con N il numero dei campioni.
Consideriamo il predittore della (7.5-1):
ŷ(k|k − 1)5 = [1 − A(z −1 )]y(k) + z −d B(z −1 )u(k)
(7.5-3)
Questa predizione puó essere generata a patto di avere dei valori da assegnare ai parametri a e b delle matrici A, B. Se io non conoscessi il modello,
la predizione potrei generarla sempre tramite la (7.5-3) ma con una stima
dei parametri, ovvero Â, B̂. Utilizzo il predittore per confrontarmi con i
dati a disposizione. Il problema é che teoricamente dovrei produrre una
ŷ(0| − 1): per innescare il predittore ho bisogno delle condizioni iniziali.
A questo punto o ritengo di avere dei dati prima dell’istante 0 oppure, piú
verosimilmente, inizio a predire dall’istante n + 1 utilizzando gli n dati come
condizioni iniziali. Avremo quindi:
ŷ(n + 1|n), ŷ(n + 2|n + 1), . . . , ŷ(N |N − 1)
4
5
(7.5-4)
in realtá la u(N − 1) agisce su y(N )
dipende da (k − 1) perché la monicità di A(z −1 ) fa sparire la dipendenza da y(k)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
172
raccogliamo i parametri in un vettore:


a1
 . 
 . 
 . 


a 
 nA 
ϑ=

 b1 


 . 
 .. 


(7.5-5)
bnB
A questo punto potrei operare la scelta di ϑ in modo che, per ogni k a partire
da n, vado a minimizzare la somma degli scarti tra y(k) e ŷ(k|k − 1).
Particolarizzando la (7.5-1) da n a L = n+N , possiamo costruire la seguente
Matrice di Hankel6 HL :


yn


yn−1

 
yn + 1  yn

 
 . = .
 ..   ..

 
yL
|
{z
Y
yL−1
}
|
...
y0
un−1 . . .
...
..
.
y1
..
.
un . . .
..
.
...
yN
uL−1 . . .
{z
HL =[HL (y)|HL (u)]

an
 . 

u0 
 .. 



ζn



  

u1 
  a1  ζn+1 
 + . 
.. 
   . 
. 
  bn   . 
 . 
.
uN 
ζL
 . 
}
b1
(7.5-6)
Posso allora scrivere la (7.5-3) in questa forma equivalente:
ŷ(k|k − 1) = hT (k − 1)ϑ̂
(7.5-7)
e andare a minimizzare il seguente scarto quadratico medio:
min
ϑ
N
X
1
[y(k) − ŷ(k|k − 1)]2
N − (n + 1) k=n+1
(7.5-8)
6
É una matrice le cui diagonali sono uguali (ai,j = ai−1,j+1 ); il che é equivalente a dire
che la colonna successiva si ottiene shiftando di una posizione la colonna precedente
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
173
Si tratta di un valor medio quadratico campionario. Organizzando tutto
vettorialmente avrei:




y(N )




ŷ(n + 1|n)




..
Ŷ = 

.
y(n + 1)




..
Y=
;
.
(7.5-9)
ŷ(N |N − 1)
e la (7.5-8) diventa:
min
ϑ
1
kY − Ŷk2
N − (n + 1)
(7.5-10)
In effetti possiamo sempre dire che:



ŷ(n + 1|n)

 

 
..
Ŷ = 
=
.


ŷ(N |N − 1)
hT (n)
..
.




 ϑ̂ = HL ϑ̂ = [HL (y)|HL (u)]ϑ̂ (7.5-11)

hT (N − 1)
Poiché HL potrebbe essere una matrice rettangolare molto lunga, allora io
posso risolvere questo problema minimizzando l’errore, cioé trovando il ϑ̂ che
minimizza l’errore tra le y e le ŷ. Devo quindi scegliere una ϑ̂ che produce la
ŷ attraverso la matrice nota HL , minimizzando lo scarto quadratico y − ŷ.
Ottengo cosí7 :
ϑ̂∗ = HL† Y
(7.5-12)
La migliore predizione si ottiene utilizzando i parametri di ϑ∗ ottenuti tramite la (7.5-12).
Ricapitolando, il problema della identificazione di questo predittore (7.5-3)
si riduce a:
1. costruire la matrice HL e farne la pseudoinversa;
2. moltiplicare la pseudoinversa di HL per il vettore dei termini noti che
si ottiene a partire dalla Y ;
Potrei utilizzare la tecnica ricorsiva, ovvero la pseudoinversa ricorsiva:
dico che non ho un lotto di dati, ma ho dati che mi pervengono continuamente da questo modello; allora faccio un’identificazione ricorsiva migliorando la
7
HL† = (HLT HL )−1 HLT
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
174
mia stima con dati che arrivano continuamente, facendo un’aggiornamento
della stima attraverso la tecnica dei minimi quadrati ricorsivi che prende la
stima precedente ed effettua una correzione sulla stima precedente in base
all’innovazione che é arrivata con il nuovo dato (secondo la tecnica Bayesiana dell’innovazione).
Il presupposto per l’identificabilitá del modello é la pseudo invertibilitá della
matrice HL ; bisogna verificare la condizione che la matrice HL sia di pieno
rango (ovvero abbia rango pari alla piú piccola delle due dimensioni di HL ).
A priori peró non possiamo dire con certezza che HL sia a pieno rango.
Infatti siccome questa matrice ha una struttura ciclica dei dati al suo interno, dipenderá da come son fatti i blocchi HL (y) e le HL (u). Ovviamente
il problema di pseudoinvertibilitá risulta essere il problema di invertibilitá
della matrice HLT HL . Tutto diventa pseudoinversa perché il legame tra i
parametri ed i dati del problema é un legame di tipo lineare. A questo
punto si rimanda al paragrafo inerente le condizioni di identificabilitá.
Osservazioni:
All’aumentare di N (ovvero all’aumentare dei dati) la sti-
ma é destinata a migliorare? Cioé la ϑ∗ , stimata in maniera ricorsiva con
infiniti dati, tende alla ϑ vera?
Abbiamo scelto dei parametri che ci consentono di fare una previsione rispetto ai dati generati dal modello e ci sará sempre un errore; infatti anche
se nella (7.5-3)) ponessimo i parametri veri (A e B), avremo comunque una
differenza tra la y e la ŷ, a maggior ragione se io metto, invece dei parametri veri A e B, delle loro stime  e B̂, la differenza si incrementerá di
una componente deterministica. Abbiamo minimizzato la norma quadratica
dell’errore e sappiamo che é il piú piccolo possibile.
Ora questo errore puó diminuire se la stima la faccio su un record di campioni sempre maggiore? Ricordiamo che noi lo stimatore a minimi quadrati
abbiamo detto che era quello che minimizzava il valore atteso (in ambito
aleatorio)8
8
ma non é quello che abbiamo fatto ora noi perché noi l’abbiamo fatto su di un solo
campione (7.5-12), é uno scarto quadratico ma non éP
il valore atteso dello scarto quadratico. Ovvero min E[(y − ŷ)2 ] é diverso da min N1
(y − ŷ)2 . Infatti il primo é proprio
la media mentre il secondo é un valore medio quadratico campionario (calcolato su di un
campione).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
175
Ora se N lo faccio tendere ad infinito si ha che la media campionaria diventa una media fatta su tutti gli infiniti k che io sto considerando; ma questa
media fatta sull’intervallo infinito coincide con il valore atteso? Se io faccio
l’ipotesi che il mio processo stocastico é ergodico 9 , allora posso dire che
per N → ∞ il valore medio quadratico medio campionario diventa il mio
valore atteso; ma se la mia cifra di merito é il valore atteso allora io so che
il mio stimatore a minimi quadrati é non polarizzato e quindi mi restituirá
nella media il valore vero del parametro.
Quindi fin quando il campione é finito io non posso dire nulla sul fatto che
la mia stima sia polarizzata o meno, se invece il mio campione diventa infinito allora potró dire, sotto l’ipotesi di ergodicitá, che il mio stimatore é
non polarizzato.
Io sto facendo la media temporale, se posso dire che questa media temporale
é uguale alla media d’insieme allora io posso dire che sto facendo un valore
atteso e siccome nel valore atteso c’é lo scarto tra y e ŷ allora sto facendo
uno stimatore ai minimi quadrati. Lo stimatore a minimi quadrati come
abbiamo visto ha delle proprietá e quindi io potrei calcolare la varianza dello stimatore, la sua media ed altre caratteristiche; e quindi rendermi conto
della qualitá del mio stimatore.
Mentre se abbiamo un campione noi lo stimatore lo prendiamo, facciamo il
migliore punto e basta, non possiamo dire niente sulla qualitá della stima
che abbiamo ottenuto perché abbiamo ottenuto dei numeri che messi nella
macchinetta predittore generano lo scarto quadratico piú piccolo possibile
rispetto ai dati che abbiamo. Ma sul fatto che questi parametri siano i veri
parametri non possiamo dire nulla. Cioé noi abbiamo creato un dispositivo
(il predittore) che é capace di dare un contenuto ai dati in maniera tale che
si approssimino quanto piú possibile a quei dati che io ho. Quindi ho fatto
un generatore sintetico di dati capace di riprodurre in certa parte le caratteristiche statistiche (o stocastiche) di quella serie dal quale siamo partiti.
Naturalmente il problema fondamentale é che io ho ipotizzato che quei dati
avessero un modello che li ha generati,e che questo modello fosse un modello
di tipo ARX; ma quando io prendo dal campo dei dati e prendo dei numeri,
9
media campionaria = media statistica.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
176
chi mi dice il modello che li ha generati?
Cioé noi abbiamo detto: questo é il modello che genera quei dati, ma poi
successivamente c’é un’altra domanda che dobbiamo porci, ovvero:Ma esiste un modello che ha generato quei dati?. Questa domanda ce la possiamo
sempre porre dato che i dati non sono prodotti dai modelli, ma dai fenomeni
fisici, quindi é dalla teoria interpretativa che nasce il modello (infatti il modello non é altro che una sintesi concettuale di un’ipotesi comportamentale).
Fin quando il gioco diventa: io produco i dati attraverso un modello, e poi
do a voi l’incarico di identificare (quindi é un gioco, perché io i dati non
li ho generati dalla realtá ma li ho prodotti da un modello che conosco)
il modello. Quindi ci sará sempre un residuo, cioé una differenza tra il
dato che noi produciamo (senza conoscere il modello) e quelli che vengono
prodotti dal modello. Questa differenza potrebbe essere una differenza di
realizzazione del processo stocastico; infatti anche se io indovinassi i dati,
essendo un processo stocastico, lo stesso modello genera dei dati differenti
perché il processo stocastico ha delle realizzazioni differenti e quindi ci sará
sempre un errore. L’analisi di questo errore peró mi consente di dire se
la differenza é puramente aleatoria o no; infatti io prendo questo errore e
vedo che é un rumore bianco; allora vuol dire che ho fatto l’identificazione
migliore che potevo e quindi posso validare il mio modello (una tecnica di
validazione del modello che vedremo é quella della Bianchezza del Residuo).
Infatti il residuo si alimenta di due sorgenti: una é che nel mio predittore
non c’é rumore bianco e l’altra é lo scostamento dai parametri; quindi se lo
scostamento dai parametri é nullo, il rumore residuo sará bianco. Se invece lo scostamento dai parametri non é nullo allora il residuo non é bianco
poiché il mio modello é dinamico e genera correlazione: avró un rumore
colorato.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.5.1
177
Bias e consistenza della stima
La stima é un problema aleatorio quando considero questo esperimento aleatorio10 : estraggo una u da una serie di ingressi possibili, determino una y
e questa automaticamente determina un errore e. L’ingresso é aleatorio
perché scegliamo una delle tante realizzazione possibili. Poniamoci quindi
~ˆ il vettore dei parametri stimati
in un processo aleatorio indicando con ϑ
~ ∗ il vettore dei parametri ideale
con la nostra procedura di stima, e con ϑ
(non é aleatorio).
Bias:
Ora possiamo chiederci: la stima ai minimi quadrati é polarizzata?
Dobbiamo quindi calcolare il bias:
~∗ =
~ˆ − ϑ
~ ∗ = E[(H T H)−1 H T Y
~]−ϑ
b = E[ϑ]
~ ∗ + ~e ho:
~ = Hϑ
andando a sostituire Y
~ ∗ = E[(H T H)−1 (H T H) −I]ϑ
~ ∗ +~e)]−ϑ
~ ∗ +E[(H T H)−1 H T ~e]
= E[(H T H)−1 H T (H ϑ
|
{z
I
}
in definitiva:
b = E[(H T H)−1 H T ~e]
(7.5-13)
Come vediamo il bias non é nullo (in effetti é vero che e ha media nulla,
ma le matrici H implicitamente dipendono da e in quanto le misure di y
dipendono dall’errore). Allora quando la mia stima sará polarizzata? Se il
processo ~e é bianco (tende in modo statistico a zero) ed é ergodico (media
temporale=media statistica)11 . In particolare é possibile dimostrazione che
vada a zero la quantitá
H T ~e
N
con N → ∞.
10
Il concetto di distribuzione di probabilitá é che un intero processo aleatorio, che
puó essere un insieme anche infinito di realizzazioni, ha una distribuzione in genere, per
esempio un processo aleatorio gaussiano, con media zero e covarianza assegnata: vuol dire
che possiamo prendere infinite funzioni del tempo, distribuite intorno allo zero che sono
tutte diverse tra loro. Peró se ne facciamo la media e la varianza escono fuori sempre le
stesse matrici. Nella teoria della probabilitá esistono distribuzioni a priori e a posteriori,
con l’unica differenza che quella a posteriori é condizionale.
11
Se e statisticamente va a zero, non é detto che ogni singolo processo vada a zero. Per
questo ci avvaliamo dell’ipotesi di ergodicitá: al crescere del numero di misure anche ogni
singolo esperimento andrá a zero
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
178
In definitiva la stima é polarizzata se il numero di misure é elevato e il
rumore é un processo bianco ed ergodico.
Covarianza:
la calcoliamo tramite la definizione:
~ˆ − E[ϑ])]
~ˆ
~ˆ = E[(ϑ
~ˆ − E[ϑ])
~ˆ T (ϑ
cov ϑ
Dopo una serie di passaggi si arriva a12 :
~ˆ = σ 2 E[(H T H)−1 ]
cov ϑ
e
(7.5-14)
Errore di predizione:
~ε = y − ŷ(k|k − 1)
Si puó mostrare che la media della varianza13 é uguale a :
E[σε2 ] = σε2 (1 +
d
);
N
d = 2n
(7.5-15)
Si delinea un altro concetto fondamentale: quando l’ordine n del modello é elevato, incremento l’incertezza. Conviene avere sempre una
tecnica che mi determina l’ordine del modello piú piccolo possibile.
12
Sotto le ipotesi che valgono per la stima polarizzata, si puó togliere il valore atteso
σε2 rappresenta una variabile aleatoria vicino al simbolo di operatore atteso, mentre a
destra dell’uguale é un valore. In realtá non é altro che la formula di uno stimatore della
varianza dell’errore di predizione. Si puó utilizzare anche un altro stimatore:
13
σ̂ 2 =
L
X
1
ε2i
N −d
i=n−1
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.6
179
Identificazione ARMAX ai Minimi Quadrati
Immaginiamo di avere un modello Armax a rumore omnicomprensivo:
A(z −1 )y(k) = z −d B(z −1 )u(k) + C(z −1 )ζ(k)
dove ζ(k) é rumore bianco a media nulla, colorato dal filtro C(z −1 ).
Dobbiamo sempre cercare di mettere il nostro modello dalla forma di generazione dei dati, nella forma di regressore [y(k) = φT (k)θ + v(k)] per poter
utilizzare la tecnica dei minimi quadrati. Abbiamo visto che il problema
dell’identificazione lo facciamo in questo modo: creiamo un predittore e
lo mettiamo nella forma di regressore; cerchiamo,quindi, di minimizzare lo
scarto quadratico medio tra i dati che provengono dal campo rispetto ai dati
che riusciamo a predire con il predittore.
Ma il predittore del modello ARMAX é un predittore non lineare nei parametri quindi questa tecnica di mettere il predittore nella forma di regressore,
non puó funzionare in questo caso.
Dobbiamo quindi operare in maniera differente. La quantitá C(z −1 )ζ(k)
assume la natura di rumore colorato e lo chiamiamo ψ(k):
ψ(k) = C(z −1 )ζ(k)
(7.6-1)
A questo punto é come se lavorassimo con un ARX soggetto ad un rumore
di tipo colorato. Quindi ci riferiremo ad un sistema del tipo:
A(z −1 )y(k) = z −d B(z −1 )u(k) + ψ(k)
(7.6-2)
Questo modello ARX si puó mettere nella forma di regressore. E quindi
posso sicuramente pervenire ad un scrittura del tipo:
ŷ(k|k − 1) = [hTy (k − 1)|hTu ]θ
(7.6-3)
Questo predittore non é ottimale, perché nella costruzione non abbiamo
sfruttato l’ipotesi che il rumore fosse bianco. Il predittore é detto ottimale
quando minimizza la varianza dell’errore di previsione. Qual’é l’inconveniente di questo predittore? Nella riga hT ci sono misure che hanno a che
fare con le y e con le u.
E quindi é vero che su un lotto di N dati posso scrivere che l’insieme delle
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
180
mie previsioni é:
ŷ = [Hy
Hu ]θ =
Hθ
(7.6-4)
Per trovare il miglior valore del parametro θ, l’ obiettivo é minimizzare lo
scarto quadratico medio tra la capacitá predittiva, data da una certa scelta
dei parametri, e i dati veri y:
min
X
1
1
|y − ŷ|2 =
min (yi − ŷi )2
N
N
i
(7.6-5)
che significa dire minimizzare la sommatoria a secondo membro14 .
La soluzione ai minimi quadrati di questo problema é:
−1
θ̂ = H † y = H T H HT y
(7.6-6)
Fin ora il fatto che il rumore sia bianco non ha influenzato il risultato
ottenuto; abbiamo una soluzione ai minimi quadrati deterministici, perché
non abbiamo guardato la natura del rumore ma semplicemente cercato di
minimizzare lo scarto tra ŷ e y.
Qualcosa cambia quando consideriamo lo stimatore. Se intendo θ̂ come
stimatore e usiamo la versione ricorsiva come:
θ̂ = (H T H)−1 H T y = (
X
hi hTi )−1
X
hi yi
(7.6-7)
i
invece di considerare il prodotto riga per colonna posso fare il prodotto
colonna per riga (posto che siano compatibili le dimensioni); quando si fa
cosi si ottiene una matrice. Sicché facendo il prodotto di tante colonne
per tante righe si ottengono tante matrici; si sommano tra loro e si ha
precisamente quello che si ottiene facendo il prodotto riga per colonna. Cioé
nel prodotto riga per colonna ogni elemento che si va a sommare sarebbe un
elemento dello stesso posto delle varie matrici che vado a formare. Facciamo
14
i é l’indicatore del vettore che al solito non ha per forza a che fare con la variabile
temporale; N é la dimensione del campione.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
181
le seguenti posizioni:


hT
 1
h
 . 
H =  ..  H T = h1 · · ·

hTN
hN
i
h
⇒ H T H = h1 · · ·




hT
i 1 
 . 
hN  .. 
hTN
θb = (
Moltiplicando per

1
N
1 X
1 X
hi hTi )−1
hi yi
N
N
(7.6-8)
le due quantitá non succede nulla perché il primo
1
N
é invertito. Vedo che questa é la stima fatta su un campione di N dati. Se
cresce N succede che la mia stima diventa sempre piú precisa perché uso
sempre piú dati e al limite per N → ∞ (sotto l’ipotesi di ergodicitá); la
quantitá dovrebbe essere il valore atteso di θ̂.
Se voglio vedere il risultato che ottengo con il rumore non bianco posso
andare a immaginare che il mio modello di generazione dei dati, la mia y
costruita con il campione di dimensione N, si possa scrivere come:
ỹ = Hθ0 + ψ
(7.6-9)
dove ψ é il vettore che contiene tutte le ψ(k).
Ebbene sotto questa ipotesi:
θb = (H T H)−1 H T (Hθ0 + ψ) = θ0 + (H T H)−1 H T ψ
(7.6-10)
dove θ0 é il valore vero dei parametri. Lo scarto si puó scrivere come:
θ̂ − θ0 = (H T H)−1 H T ψ
(7.6-11)
Se ora faccio lo stesso ragionamento di prima posso scrivere:
θ̂ − θ0 =
1 X
1 X
(hi hTi )−1 ( hi ψi )
N
N i
(7.6-12)
Questa espressione rappresenta il bias valutato su un campione; se N → ∞
diventa il bias vero e proprio.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
182
Per avere uno stimatore consistente (bias = 0), si devono verificare:
1 X
hi hTi non singolare15
N
X 1
hi ψi = 0
N
i
(7.6-13a)
(7.6-13b)
Per avere uno stimatore non polarizzato, da un lato la matrice (senza il
−1 ,
quella che chiamavamo S) deve essere non singolare perché si deve invertire,
e la seconda quantitá deve andare a 0. Se ψ fosse rumore bianco allora
la quantitá dell’equazione (7.6-13b) tenderebbe a zero per caratteristica di
WN (diventerebbe in effetti la media). Se invece considero che ψ non é
rumore bianco, posso dire che al limite per N → ∞ la quantitá (θ − θ0 ) si
assesta su un valore finito se la matrice é invertibile.
Ricapitolando: trattare l’identificazione di un modello ARMAX come se
fosse un ARX soggetto a rumore non bianco porta a una stima polarizzata
dei parametri.
Gli inconvenienti sono due:
- fin ora stimiamo solo i parametri ai e bi , ma nei paramenti di ARMAX
ci sono anche i ci ;
- e c’é il fatto che i parametri verrebbero polarizzati e non sappiamo
di quanto; in sostanza la seconda quantitá (7.6-13b) converge ad un
valore che potrebbe non essere zero.
Questa polarizzazione puó essere eliminata tramite il metodo della variabile
strumentale
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.6.1
183
Metodo della variabile strumentale
Supponiamo che riesca costruire una matrice Z, detta Matrice degli Strumenti, che abbia le stesse dimensioni di H (N x n), le cui righe siano
ortogonali nella media al rumore ψ:
Z : E[z T ψ] = 0
(7.6-14)
Il problema sará trovarla, perché difficile trovare qualcosa di incorrelato
con il rumore colorato. Allora faccio una prima operazione banale, ovvero
moltiplico la (7.6-9) a primo e secondo membro per z T :
z T y = z T Hθ0 + z T ψ
Se prendo il valore atteso di questa quantitá ho:
E[z T y] = E[z T Hθ0 ] + 0
se scelgo:
θ̂ = [z T H]−1 z T ỹ
allora θ̂, facendo il valore atteso di questa quantitá, sará proprio θ0 :
θ̂ = E[(z T H)−1 z T ỹ] = θ0
(7.6-15)
Per ottenere uno stimatore non polarizzato dei parametri ai e bi di un modello ARMAX bisogna utilizzare la matrice degli strumenti. Notiamo che
questa non si tratta della soluzione ai minimi quadrati perché altrimenti
avremmo dovuto avere la pseudo-inversa al posto dell’inversa. Si tratta in
questo caso di una soluzione di un sistema lineare AX = b che ha rango
pieno, dove i termini noti b sono pari a Z T Y e la matrice A é pari a (Z T H).
Se adesso scrivessi:
θ̂ − θ0 = (z T H)−1 zψ = (
N
N
1 X
1 X
zi hTi )−1 (
zi ψi )
N i=1
N i=1
(7.6-16)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
184
Per quanto detto nella (7.6-13b), in questo caso la seconda quantitá tende a
zero per l’assunto sulle variabili strumentali; resta comunque da verificare la
condizione che la prima matrice sia invertibile. Se l’andiamo a sviluppare, é
una matrice (i cui elementi sono i prodotti zi hTi ) che al crescere di N é data
dalla somma di piú matrici.
X
Se N → ∞ ⇒
zi hTi → ∞
1 X
∞
⇒
zi hTi =
= qualcosa di f inito
1
1
N
∞
→
N
∞
(7.6-17)
Affinché non si ottengano mai matrici nulle, ovvero che
PN
T
i=1 zi hi
resti
invertibile, la variabile strumentale z deve essere correlata con le h.
Ricapitolando: La Matrice degli strumenti deve essere tale da avere delle
righe che sono correlate con le hi , e quindi con le yi e le ui , e scorrelate con
il rumore ψi .
Costruzione della Matrice degli Strumenti
Costruisco un sistema dinamico artificiale del tipo:
D(z −1 )η(k) = z −d F (z −1 )u(k)
(7.6-18)
alimento (7.6-18) con le stesse u che alimentano il processo; scelgo il grado
dei polinomi D e F come grado dei polinomi che sto identificando e vado a
scrivere la z T :
z T = [η(k − 1)η(k − 2)...η(k − na )u(k − d)u(k − d − 1)...]
(7.6-19)
Mi aspetto che le uscite del filtro artificiale, essendo alimentato dal medesimo ingresso dell’ARX da identificare, siano correlate con quelle del modello
ARX. E questa correlazione sará fortissima quando:
D(z −1 ) = A(z −1 )
F (z −1 ) = B(z −1 )
(7.6-20)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
185
In realtá stiamo facendo l’identificazione del modello, quindi avró a disposizione delle stime dei parametri:
D(z −1 ) = Â(z −1 )
F (z −1 ) = B̂(z −1 )
(7.6-21)
Ricapitolando: Prendiamo un filtro, il migliore sarebbe quello dei parametri, i parametri veri non li conosciamo e li sostituiamo con i parametri
stimati e con questi parametri stimati perveniamo ad una stima migliore
perché ho una variabile strumentale migliorata rispetto a quella precedente;
piú c’é correlazione piú si stringe la matrice di covarianza dell’errore di
stima. Otteniamo una procedura iterativa che solitamente converge in pochi
passi.
Un’altra procedura di filtraggio potrebbe essere:
D(z −1 ) = 1
F (z −1 ) = z −(nB +d)
(7.6-22)
nella quale rinuncio a mettere la parte auto regressiva del modello.
Riassumendo, la Tecnica della Variabile Strumentale puó essere suddivisa
in questi passi:
1. Definisco la Z iniziale Z0 (utilizzando per esempio solo un ritardo
sull’ingresso);
2. Calcolo ϑ̂0 ;
3. Simulo il filtro ausiliario con ingresso u (misurato, che giá ho a disposizione) ottenendo una sequenze di η(k);
4. Definisco ora Z1 = [Hη |Hu ];
5. Ritorno al punto 2 iniziando cosí il procedimento ricorsivo.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
186
Stima parametri ci
Abbiamo stimato i parametri ai , bi . Siamo in grado, quindi, di fare una
previsione sulle uscite:




e
 1
 .. 
ŷ − y = e =  . 
en
(7.6-23)
questo errore é un vettore; possiamo dire che e(k) é generato da C(z −1 )ζ(k),
ovvero:
e(k) = C(z −1 )ζ(k) ∀k
(7.6-24)
Per la stima dei parametri ci utilizziamo un metodo specializzato per l’identificazione di un modello Moving Average.
7.6.2
Minimi quadrati estesi
Il Metodo della variabile strumentale é complesso da utilizzare; il metodo
dei minimi quadrati estesi ci viene in soccorso.
Si considera il modello ARMAX come:
A(z −1 y(k) = z −d B(z −1 )u(k) + C(z −1 )ζ(k)
se definisco il vettore dei parametri:
θ = [−a1 , −a2 , ..., −anA ; b0 , b1 , ..., bnB ; c1 , c2 , ..., cnC ]
(7.6-25)
posso sempre scrivere:
y(k) = hT (k − 1)θ + ζ(k)
hT (k − 1) = [y(k − 1), ..., y(k − n); u(k − d), ..., u(k − d − nb ); ζ(k − 1), ...ζ(k − n)]
(7.6-26)
cioé ho allargato il vettore delle misure come se potessi misurare da ζ(k − 1)
e tornare indietro. Ho posto in hT tutta la parte colorata del rumore,
considerando a se stante la quota di rumore bianco ζ(k).
Se fosse vera questa scrittura potrei utilizzare il metodo dei minimi quadrati,
ma mancano le ζ. Usando il metodo ricorsivo16 , in ogni istante di tempo
in cui faccio l’aggiornamento dei parametri ho un set di parametri nuovo
16
A lotti non riesco a ricavare le ζ(k).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
187
con il quale fare una ŷ(k|k − 1) e approssimare la ŷ(k|k − 1) − y(k) = ζ(k).
Quindi io posso ritenere di avere delle stime di questi valori attraverso la
differenza tra valore predetto e valore vero; utilizzo come dati del problema
gli errori di predizione.
Se faccio questo algoritmo, che non ha certezza di funzionamento perché
puramente euristico, l’errore remoto viene approssimato con l’errore di
predizione; ma sappiamo bene che in realtá sono differenti perché hanno
statistiche differenti.
7.7
Condizioni di Identificabilitá
Consideriamo le due sottomatrici HL (y) e HL (u). Quando abbiamo utilizzato il metodo dei minimi quadrati abbiamo fatto delle considerazioni sul
rango della matrice H (che abbiamo chiamato anche Φ). Avevamo detto che
il metodo dei minimi quadrati si utilizza perché il vettore Y non dipende
linearmente dalle colonne della matrice H, e quindi non esiste un sistema
lineare che abbia come soluzione esatta il vettore ϑ. Ora peró ci possiamo
chiedere: Le misure che io ho fatto, l’ingresso che io ho scelto, la corrispondente uscita che ho misurato, sono sufficienti per determinare tutti questi
parametri?. Abbiamo 2n parametri (in seguito indicheremo con d = 2n il
numero di parametri), il rango che mi aspetto da H é al piú 2n, mentre se
orlo H con il vettore dei termini noti ([H
Y ]) mi aspetto il rango di H +
1 (Th. di Rouché-Capelli).
La condizione che il rango sia al piú 2n puó venire a mancare perché ad
esempio scelgo l’ingresso sbagliato. Se il rango di H deve essere al piú 2n,
(H T H) deve essere invertibile, cioé deve avere determinante diverso da zero.
E questa condizione puó venire a mancare per colpa o del blocco H(y) o del
bloccoH(u). Se io ad esempio scelgo come ingresso il gradino unitario, H(u)
presenta tutti 1, e le colonne non sono evidentemente linearmente indipendenti. In genere, nei problemi di identificazione, come ingresso si sceglie un
rumore bianco: si inietta un rumore bianco nel sistema, si misura l’uscita corrispondente, si costruisce la matrice H e si stimano i parametri. Si
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
188
utilizza il rumore bianco perché devo garantire che:
∀N :
HT H
sia invertibile17
N
(7.7-1)
Def. 7.7.1. Un segnale di ingresso u(.) si dice persistentemente eccitatorio18 di ordine n se la matrice H T H(??) é sempre non singolare.
Stiamo dicendo che preso un segnale persistentemente eccitatorio, se lo
metto in ingresso ad un sistema, mi produce una matrice di rango pieno che
ha n righe.
In altre parole, quando vado a fare il metodo dei minimi quadrati, se il sistema non é identificabile non é per colpa dell’ingresso se l’ordine é minore
di n.
In generale, quando scegliamo un segnale di ingresso persistentemente eccitatorio, si dice che ci siamo messi nelle condizioni di Identificabilitá sperimentale. Ma l’identificabilitá dipende anche dalla struttura del modello
[H(y)]. Elaboriamo H T H:
"
#
H T (y) h
H H=
H(y)
H T (u)
T
i
H(u) =
"
#
H T (y)H(y)
H T (y)H(u)
H T (u)H(y)
H T (u)H(u)
(7.7-2)
Quindi affinché H T H sia invertibile, devono essere invertibili (determinante
diverso da zero) i blocchi sulla diagonale principale. Quindi pur scegliendo
l’ingresso esatto, potrebbe accadere che abbiamo una struttura sbagliata; ad
esempio puó capitare che vado a stimare un parametro che in realtá a priori
conoscevo. Allora quando H T (y)H(y) é invertibile, siamo nelle condizioni
di Identificabilitá strutturale.
Ricapitolando: il discorso sull’identificabilitá dipende essenzialmente dal
rango della matrice H T H; il rango di questa matrice puó essere ricondotto al
determinante di
HT H
N .
Quando la condizione sul determinante é soddisfatta
A denominatore N compare perché il determinante di H T H dipende dal numero di
righe; ci dobbiamo quindi liberare dalla dipendenza dal tempo (numero di misure) per
avere una proprietá dell’ingresso; bisogna garantire che qualsiasi sia il numero di campioni
dell’ingresso, si possono utilizzare per identificare un sistema di ordine n. Infatti, se u
fosse aleatoria, H T H sarebbe una covarianza campionaria
18
Si tratta quindi di una condizione che si basa sul determinante ( perché H T H é una
matrice quadrata), ma un’analoga condizione esiste sul rango.
17
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
189
per H(u) si dice che il segnale é persistentemente eccitatorio di ordine n.
Quando é soddisfatta per H(y) allora vuol dire che abbiamo scelto bene
il modello; altrimenti vuol dire che abbiamo scelto piú parametri di quelli
strettamente necessari.
7.8
Stima dell’ordine
Facciamo prima di tutto un ragionamento in assenza di errore 19 , per renderci conto come anche la scelta del modello é legata alla dipendenza lineare delle colonne di H. Consideriamo allora questa matrice (con k intero
qualsiasi):
h
Hk∗ = Hk (y)
Hk (u)
Yk
i
Questa matrice ha N righe e (2k+1) colonne. Dobbiamo pensare di costruire
questa matrice per colonne, perché quello che ci stiamo chiedendo é quale sia
l’ordine ottimale: quindi facciamo variare l’ordine e vediamo cosa succede
ad Hk∗ . Questa matrice ha appunto un numero di colonne variabili che
dipende dall’ordine che scelgo del modello; la speranza é quella di ricavare
un criterio che mi faccia scegliere un k ottimale.
Se l’errore é identicamente nullo e supponiamo di avere un ordine ottimale n,
se k é minore di n il rango (che indicheremo con ρ) di Hk∗ sará (2k+1) poiché
Yk sará linearmente indipendente dalle altre colonne; se invece k = n allora
il rango Hk∗ sará 2k . Abbiamo quindi trovato un criterio per determinare
la condizione ottimale:
k<n:
k=n:
ρ(Hk∗ ) = 2k + 1
ρ(Hk∗ ) = 2k
(7.8-1)
Ricapitolando: costruisco questa matrice senza fare Identificazione, ne
faccio il rango e quando da (2k + 1) diventa 2k ho l’ordine ottimale, perché
quel k rappresenterá l’ordine del sistema. Il tutto equivale a calcolare il
determinante della matrice Sk∗ = Hk∗T Hk∗ .
19
Oltre ad avere scelto l’ingresso esattoee di disporre di misure esatte;siamo nella
condizione di massima idealitá.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
190
Quando introduco l’errore 20 :
h
Hk∗ = Hk (y)
Hk (u)
∗
(Hk ϑ~k + e~k )
i
la condizione sul determinante diventa21 :
detE[Sk∗ ] = detE[Hk∗T Hk∗ ] = N σe2 detE[HkT Hk ]
Possiamo ricavarci:
σe2 =
detE[Sk∗ ]
N detE[HkT Hk ]
(7.8-2)
é possibile mostrare che la sequenza di σe2 per k < n é decrescente, per
k >= n é costante (si stabilizza). Quindi quello che posso fare é calcolare
la sequenza σe2 e quando si stabilizza ho determinato l’ordine ottimale del
modello. Il vantaggio che ho ottenuto é che questa sequenza si puó determinare senza risolvere il problema di identificazione e senza fare inversioni.
Ricapitolando: prima pongo l’errore uguale a zero e mi rendo conto che
il determinante me lo posso calcolare tramite il rango della matrice Hk∗ ; poi
passo al contesto aleatorio in cui l’errore non é nullo ma comunque mi calcolo il determinante di Sk∗ e riesco a ricavare una condizione su k: questa
condizione mi dice che la successione di questi σe2 é decrescente e l’errore
ottimale si ottiene quando si stabilizza22 .
20
21
In questo caso k sará aleatorio
Supponendo:
E[eTk ek ] = N σe2
e ricordando che in una matrice a blocchi 2x2:
det
22
A
C
B
= det(AD − BC)
D
É anche intuitivo, se l’errore é sbagliato la varianza dell’errore sará elevata.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.8.1
23
191
PPCRE (Predicted PerCent Reconstruction Error) Criterion
La (7.8-2) non si utilizza spesso; é sostituita da:
s
P P CRE(k) = 100
detSk
ykT yk det(HkT Hk )
(7.8-3)
nella quale la varianza dell’errore é rapportata alla varianza dell’uscita.
7.8.2
Altri Criteri
Definiamo il funzionale:
J(ϑoN ) =
L
1 X
1 T
e2 (t)
e
e
=
No
N o t=n+1
(7.8-4)
dove N o = N − m non é altro che la dimensione di e.
FPE (Final Prediction Error) Criterion: Questo criterio consiste nel
minimizzare il valore atteso della varianza dell’errore di predizione σε2 :
F P E(k) =
No + d
J(ϑoN )
No − d
(7.8-5)
Differentemente da quanto visto prima, questo indice tende a infinito se d →
N . Una volta stabilita la sequenza (F P E(1), F P E(2), . . . , F P E(k+1), . . . ),
sceglieremo come ordine del modello quel k (o n) che mi restituisce il minimo
valore dell’indice:
Come vediamo nel caso 2, la curva potrebbe risalire; nel caso 3 la curva
potrebbe continuare a scendere, spostando il minimo a destra: ma in realtá
prenderemo sempre n come minimo poiché dobbiamo privilegiare l’ordine
basso.
In ogni caso l’FPE tende a sovrastimare l’ordine del modello.
23
Percentuale rispetto alla varianza dell’uscita
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
192
Figura 7.1: Probabili grafici ottenibili
AIC(Akaike Information Criterion24 ): Proviene da questa famiglia
di modelli:
N o log[J(ϑoN )] + γ(N o , d)
Dove γ(N o , d) é una funzione che tende a penalizzare modelli con ordini
elevati. Presa γ(N o , d) = 2d avró:
AIC(k) = N o log[J(ϑoN )] + 2d
(7.8-6)
Come prima prenderemo come indice quello che va a stabilizzare il grafico.
Questo criterio riduce la penalizzazione sull’ordine del modello per alti valori
di N .
MDL (Minimum Description Length) Criterion:
Mentre i criteri
FPE e AIC si basano su considerazioni statistiche, il criterio MDL si basa sulla minimizzazione dell’informazione necessaria a descrivere un modello e il suo errore di predizione. Aumentando l’ordine del modello, é
necessaria un’informazione aggiuntiva per descrivere i suoi parametri e di
un’informazione in meno per descrivere il suo errore di predizione25 :
M DL = log[N o ]d + N o log[J(ϑoN )]
(7.8-7)
24
É asintoticamente equivalente al criterio FPE
L’unica differenza con il criterio AIC é che il 2 é sostituito da log[N o ]; di solito
log[N o ] > 2 e quindi vado a penalizzare di pi’,̆ rispetto all’AIC, l’ordine elevato del
modello.
25
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.9
Validazione del modello
7.9.1
26
193
Test di Bianchezza sui Residui
Se l’identificazione é andata a buon fine, l’errore di predizione effettiva-
mente sará ergodico e bianco; altrimenti il procedimento ha fallito in qualche
punto. Possiamo fare quindi un test di bianchezza sui residui, calcolando la
correlazione in tempo-ritardo campionaria27 :
RεN (τ ) =
N
1 X
ε(k)ε(k + τ ) ;
N k=1
τ = 1, . . . , M ;
N = dim(ε)−M (7.9-1)
Si prenderá poi la distribuzione:
ξN,M =
M
X
N
2
RεN (τ )
N
2
Rε (0) τ =1
(7.9-2)
e la confronteró con quella di un rumore bianco che ha distribuzione χ2 (M )
(é tabellata28 , si conosce in modo numerico).
Il rumore sará bianco se risulterá:
ξN,M < χ2α (M )
(7.9-3)
dove α é una percentuale di confidenza29 .
7.9.2
30
Test di Indipendenza
Il concetto é sempre lo stesso: faccio l’identificazione che si fonda sull’i-
potesi che l’errore sia indipendente dall’ingresso e poi vado a verificare che
ció sia vero:
N
Rεu
(τ ) =
N
1 X
u(k)ε(k + τ )
N k=1
(7.9-4)
26
Si chiamano anche Test di Anderson
R sta per risultato.
28
É possibile richiamarla in Matlab tramite i comandi ’chi2pdf’,’chi2cdf’,chi2inv’.
29
Di solito α = 0.95 o α = 0.99, che significa dire che il 95% o il 99% dei campioni
risulterá all’interno della distribuzione.
30
Tra residui e inputs precedenti.
27
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
194
Se le due distribuzioni [ε(•), u(•)] sono indipendenti, la variabile
una distribuzione gaussiana con media nulla e varianza
∞
X
2
σεu
=
Rε (k)Ru (k)
2
σεu
√
N R(t) é
data da:
(7.9-5)
k=−∞
7.10
Metodo di Yule Walker
Il metodo di Y-W imposta delle equazioni in cui compaiono le covarianze
campionarie.
Si costruisce una matrice R con le seguenti proprietá:
• contiene Le auto covarianze della y espresse nella forma di tempo
ritardo:
E[y(t), y(t − τ )]
• Le diagonali sono uguali. Cioé R é una matrice di Toepliz 31 .
• é simmetrica.
• Ha un numero di righe pari al ritardo massimo che io considero e un
numero di colonne pari all’ordine del sistema (che possiamo trovare
con tecniche viste precedentemente).

r
 0
 ..
R= .
···
..
.

rm−1 · · ·

rn−1

.. 
. 
rm−n
(7.10-1)

In questa matrice si hanno gli elementi della diagonale inferiore uguale alla
superiore (ovvero r−1 = r1 , dove r−1 andrebbe alla diagonale inferiore e
r1 nella superiore) perché l’autocovarianza é una funzione pari e quindi la
31
In algebra lineare, una matrice di Toeplitz o matrice a diagonali costanti é una matrice
in cui ogni diagonale discendente da sinistra a destra é costante. Ad esempio, la seguente
matrice é una matrice di Toeplitz:

a
f

g
h
j
b
a
f
g
h
c
b
a
f
g
d
c
b
a
f

k
d

c
b
a
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
195
distanza temporale su cui faccio la media é uguale sia indietro che avanti
nel tempo.
Quando R é quadrata abbiamo la soluzione minima.
Se considero un numero di ritardi superiore a n sto ipervincolando il sistema.
Che senso ha sovradimensionare il sistema? Per poter fare la sola stima
minimale dovrei avere misure esatte. Avere piú numeri aiuta a contrastare
l’errore insito nelle misure e nei modelli. É questo il motivo per cui anche
nei minimi quadrati si tende ad ipervincolare, ad avere un numero elevato di
vincoli. Questi vincoli sono tra loro incompatibili ma cercando un soluzione
che minimizza l’errore posso trovare un stima migliore.
La sorgente principale d’errore nella matrice R é nel modo in cui sono approssimate le covarianze. Quindi R sará tanto piú accurata quanto piú
grande é il numero dei campioni.
Si puó dimostrare che:
se m = 0 ⇒ θ̂ = R−1 ρ = (H T H)−1 (H T Y )
(7.10-2)
Ovvero, quando il grado di sovra determinazione m=0 e quindi R é quadrata,
allora la procedura coincide con i minimi quadrati. I termini di R sono gli
elementi di (H T H)−1 , quelli del vettore dei termini noti ρ sono H T y. La
soluzione si ottiene invertendo la matrice.
Quando noi otteniamo la stima di ϑ̂ con il metodo dei minimi quadrati,
poiché questa stima minimizza lo scarto quadratico medio, l’errore sará il piú
piccolo possibile in norma, ovvero geometricamente sará quello ortogonale.
Mentre quando facciamo la stima con il metodo di Yule-Walker questo errore
non é quello che minimizza il funzionale di costo (a meno che questo errore
coincida con quello avuto dal metodo dei minimi quadrati, coincidenza che
si ha solo quando il grado di sovradeterminazione m = 0)32 .
Il metodo di Yule-Walker non puó migliorare la stima del metodo dei minimi
quadrati nei sensi della media quadratica dell’errore (non si puó appunto
32
In ambito aleatorio ricordiamo che possiamo ragionare solo su 3 cose: 1)sulla norma
dell’errore, 2)sulla media e 3)sulle varianze. In ambito deterministico solo sulla norma
dell’errore.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
196
perché con i minimi quadrati quell’errore é il minimo); ma questo metodo
di Y-W migliora le matrici di covarianza dell’errore33 .
Ricapitolando: facendo il metodo dei minimi quadrati otteniamo l’errore
minimo, mentre con il metodo di Y-W otteniamo le matrici di covarianza
dell’errore minori.
7.11
Modello AR
Il modello AR é un sistema che evolve per effetto della sollecitazione del
rumore ζ(k):
A(z −1 )y(k) = ζ(k)
(7.11-1)
Quindi se volessi vedere come é fatto il mio sistema, riscrivo il mio modello
in questo modo, moltiplicando e dividendo tutto per z n :
zn
−1
z n A(z )y(k)
=
⇒ y(k)
A(z)
z n y(k) =
zn
ζ(k)
= A(z)
ζ(k) ⇒
(7.11-2)
ovvero:
ζ(k) →
zn
→ y(k)
A(z)
Io ora voglio identificare i parametri di A(z) sulla base questa volta soltanto
dei dati y(k). Quindi il mio problema diventa ancora piú semplice perché
io ho dei dati:
y(0), . . . , y(n), y(n + 1), . . . , y(N )34
(7.11-3)
voglio stimare:




a
 1
 .. 
ϑ= . 
an
(7.11-4)
33
L’errore varia di meno rispetto al proprio valore vero. Quindi con questo metodo di
Y-W noi sacrifichiamo l’ottimalitá dell’errore in media quadratica per avere delle varianze
migliori.
34
n é il grado del polinomio A(z)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
197
A questo punto io potrei operare come nel caso ARX, quindi pensare di
ottenere un predittore pari a:
ŷ(k/k − 1) = [1 − A(z −1 )]y(k)
(7.11-5)
e, senza rifare tutti i conti, scrivere direttamente:
7.11.1
Ŷ = Hy ϑ̂
(7.11-6a)
ϑ̂∗ = Hy† Y
(7.11-6b)
Formulazione di Yule-Walker
Riprendiamo il modello AR ed riscriviamolo in forma estesa come combinazione lineare tra dati correnti e precedenti:
y(k) + a1 y(k − 1) + · · · + an y(k − n) = ζ(k)
(7.11-7)
moltiplichiamo tutto per y(k + m) con m 6= 0:
y(k)y(k +m)+a1 y(k −1)y(k +m)+· · ·+an y(k −n)y(k +m) = ζ(k)y(k +m)
(7.11-8)
Se io ne faccio il valore atteso, avró:
• termini del tipo E[y(k)y(k + m)] = rm : supponendo che Y sia un
processo stocastico, allora questo valore atteso é il prodotto di due
elementi che sono distanti nel tempo (poiché m é diverso da zero);
quindi questo valore atteso é esattamente una covarianza perché in
realtà se il mio processo parte con condizioni iniziali nulle allora la
media di y é nulla;
• E[ζ(k)y(k+m)] = 0: perché il processo ζ(k) é rumore bianco e y(k+m)
non dipende statisticamente da ζ(k) (dipenderá da ζ(k + m));
A questo punto il valore atteso della (7.11-8) puó riscriversi come:
rm + a1 rm−1 + · · · + an rm−n = 0
(7.11-9)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
198
che é una rappresentazione del modello AR in termini di Yule-Walker.
Con m = 1 posso scrivere:
r1 = −r0 a1 − r−1 a2 − · · · − r1−n an
Siccome rm = r−m abbiamo35 :
r1 = −r0 a1 − r1 a2 − r2 a3 − · · · − rn−1 an
r2 = −r1 a1 − r0 a2 − r1 a3 − · · · − rn−2 an
..
.
(7.11-10)
In questo modo posso vedere quali sono le relazioni tra le correlazioni al
passo 1,al passo 2, ecc...
Posso quindi scrivere n equazioni, ovvero quanti sono i miei parametri, e
ottenere in forma vettoriale:



r
r
 1
 0
 .. 
r
 .  = − 1
 
.
..
rn
r1
r2
...
r0
..
.
r1
..
.
...
..
.
|
rn−1


a
  1


rn−2   ... 

..   
.
an
{z
(7.11-11)
}
Rnxn
Ora se fossero note le correlazioni, e quindi se fosse nota la matrice R , allora
io potrei risolvere il mio problema della stima di a1 , a2 , . . . , an moltiplicando
l’inversa della matrice R per il vettore dei termini noti (vettore contenente
le correlazioni) e ricavare quindi il vettore dei parametri a:








a
r
 1
 1
 .. 

.
 .  = R−1  .. 
an
rn
(7.11-12)
Questa si chiama Soluzione del problema di Yule-Walker di ordine minimo;
di ordine minimo perché io arrivo ad una matrice quadrata nxn e mi fermo.
35
E[y(k)y(k + m)] = E[y(k − m)y(k)] perché ho solo traslato il processo di m passi,
quindi o faccio m = 1 o faccio m = −1 ottengo lo stesso risultato dal punto di vista della
media, infatti sto semplicemente osservando che relazione c’é tra un dato e ció che lo
precede(con m = −1) oppure un dato e ció che lo segue(con m = 1). Quindi sto vedendo
che cosa hanno in comune dei dati che si susseguono, ovvero se sono statisticamente
indipendenti o meno. Infatti se fossero statisticamente indipendenti questi valori attesi
sarebbero nulli.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
199
In realtá non é detto che io debba considerare le correlazioni solo fino all’ordine n, ma potrei proseguire ed andare a considerare correlazioni > n e
quindi costruire una matrice R che non é piú quadrata ma rettangolare verso il basso mentre il numero di parametri resta sempre lo stesso; calcolando
cosí la Soluzione di Yule-Walker di ordine superiore.
Ma come faccio a dire quali sono le correlazioni?
Posso fare un ragionamento approssimato e dire che se non conosco le correlazioni allora le posso andare a stimare in maniera campionaria. Notiamo
che noi fino ad ora non abbiamo considerato i dati a disposizione, ma abbiamo solo riscritto il modello in forma di Yule-Walker. Quindi io dovrei
andare a calcolare queste correlazioni attraverso il dato campionario. E
come faccio a calcolare queste correlazioni? Faccio una stima campionaria
della covarianza sulla base dei dati disponibili:
N
1 X
y(k)y(k) = r0
N k=1
N
1 X
y(k)y(k + 1) = r1
N k=1
N
1 X
y(k)y(k + 2) = r2
N k=1
Dove r0 é la varianza, r1 é la correlazione di passo 1, r2 la correlazione di
passo 2 e cosí via. Quindi io posso riempire questa matrice R dai dati che
provengono dal mio campione (il campione che mi é dato per la stima).
A questo punto R é nota ed il vettore delle correlazione é un vettore di
termini noti e di conseguenza é possibile ricavare il vettore dei parametri di
A tramite la (7.11-12).
Questa matrice R in realtá coincide con la matrice (HyT Hy ). Ce ne possiamo
rendere conto tramite il prossimo esempio.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
200
Esempio:
Prendiamo un modello AR di ordine 2 e vogliamo stimare a1 , a2 :
y(k) + a1 y(k − 1) + a2 y(k − 2) = ζ(k)
scrivo il predittore:
ŷ(k|k − 1) = −a1 y(k − 1) − a2 y(k − 2)
partiamo allora da k = 3 per non avere y negativi:
ŷ(3|2) = −a1 y(2) − a2 y(1)
ŷ(4|3) = −a1 y(3) − a2 y(2)
ŷ(5|4) = −a1 y(4) − a2 y(3)
e
cosi
via
Abbiamo quindi:

y(2)
y(1)


 y(3)


Ŷ = 
 y(4)
 .
 ..

y(2)

"
#

 −a1


 −a2
 | {z }

y(N )
|
y(3)
..
.
ϑ̂
y(N − 1)
{z
}
Hy
A questo punto sceglieró i parametri a1 , a2 tali che Ŷ diventi molto prossimo
a:

y(3)



 y(4) 






y(5)
Y =

 . 
 .. 


y(N )
ricaviamo:
ϑ̂∗ = (HyT Hy )−1 HyT Ŷ
(7.11-13)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
201
dove in effetti (HyT Hy ) equivale a scrivere:
y(2)
y(1)


#
 y(3)

y(N )
 y(4)

y(N − 1)  .
 ..

y(2)




=





"
y(2)
y(3)
y(4)
...
y(1)
y(2)
y(3)
...
y(3)
..
.
y(N − 1)
y(N )
"
=
#
y(2)y(2) + · · · + y(N )y(N )
y(2)y(1) + · · · + y(N )y(N − 1)
y(1)y(2) + · · · + y(N − 1)y(N )
y(1)y(1) + · · · + y(N − 1)y(N − 1)
" P
= P
y(k)y(k)
y(k − 1)y(k)
P
=
#
y(k)y(k − 1)
P
y(k)y(k)
Ricapitolando: La soluzione minimale di Yule-Walker coincide con la soluzione ottenuta con la tecnica dei minimi quadrati. Mentre con Yule-Walker
di ordine superiore si puó andare a soluzioni non minimali, perché non é
detto che io mi debba fermare quando la matrice diventa quadrata. In generale la soluzione con Yule-Walker e la soluzione ottenuta con la tecnica
ai minimi quadrati non coincidono sempre; esiste peró un momento in cui
la stima di Yule-Walker genera la stessa stima dei minimi quadrati, cioé
esiste un lotto di campioni di determinata lunghezza per la quale la forma
di Yule-Walker ci fa riottenere la formula dei minimi quadrati.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
202
7.12
Modello MA
Con le tecniche viste fino ad ora riesco ad identificare i parametri della componente autoregressiva; come si identificano i parametri della componente
a media mobile? Consideriamo il predittore del modello ARMAX:
ŷ(k) = [1 − Â(z −1 )]y(k) + z −d B̂(z −1 )u(k)
posso fare la differenza tra y(k) e il dato ŷ(k) che predico attraverso l’identificazione giá fatta dei parametri ai e bi .
Se avessi fatto identificazione perfetta (Â(z −1 ) = A(z −1 ), B̂(z −1 ) = B(z −1 )),
potrei dire che:
e(k) = y(k) − ŷ(k) = C(z −1 )ζ(k)
Se l’identificazione non é perfetta (come avviene nella realtá), posso sempre
ritenere valida l’approssimazione:
e(k) ' C(z −1 )ζ(k)
(7.12-1)
A questo punto con e(k) il problema diventa valutare i parametri del polinomio C(z −1 ). Il problema si riduce all’identificazione di un modello di tipo
MA.
Consideriamo il seguente modello a media mobile:
y(k) = C(z −1 )ζ(k)
(7.12-2)
ζ(k) é sempre un rumore bianco che peró viene colorato dal filtro C(z −1 ).
Le misure delle y(k) dovró sfruttarle per risalire ai parametri:
ζ(k) →
C(z)
→ y(k)
z nC
Sembra di essere bloccati in quanto i parametri ci sono legati a ζ(k − i) che
a sua volta é legato a y(k). Ma esplicitiamo il modello:
y(k) = ζ(k) + c1 ζ(k − 1) + · · · + cnC ζ(k − nC )
(7.12-3)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
203
Se noi questa espressione la calcoliamo in (k−1), possiamo ricavarci ζ(k−1):
ζ(k − 1) = y(k − 1) − c1 ζ(k − 2) − · · · − cnC ζ(k − nC − 1)
e andarlo a sostituire nella (7.12-3):
y(k) = ζ(k)+c1 y(k − 1) + (c2 − c21 ) ζ(k−2)−· · ·−c1 cnC ζ(k − nC − 1) + · · ·+cnC ζ(k−nC )
|
{z
a
}
|
{z
b
}
|
{z
c
}
Che cosa é cambiato?
1. nasce un termine autoregressivo (a);
2. il secondo coefficiente diventa piú piccolo36 (b);
3. compare un nuovo termine di rumore (c);
E il discorso fatto per ζ(k − 1) possiamo farlo per tutti gli altri contributi
di rumore; capiamo che il processo si estenderebbe all’infinito. Arriviamo
a uno statement definitivo: un modello MA é approssimabile con un
AR di ordine infinito 37 :
A∞ (z −1 )y(k) = w(k)
(7.12-4)
ŷ(k) − [1 − Â∞ (z −1 )]y(k) = w(k) ' ζ(k)
(7.12-5)
Posso allora affermare che:
É circa uguale a ζ(k) perché questo modello é un’approssimazione della
(7.12-2). Cioé il residuo che io calcolo posso immaginare che sia proprio
uguale a ζ(k); ovvero lo scarto che c’é per effetto del non collimare delle
y(k) con il dato ŷ(k), lo attribuisco tutto a ζ(k). Una volta nota la ζ(k)
il problema non é piú di identificazione, poiché attraverso un sistema di
equazioni lineari, note le y(k), mi calcolo i parametri ci .
36
0 < ci < 1
Ulteriore approssimazione che faremo sará quella di approssimare un MA con un AR
di ordine sufficientemente elevato
37
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
204
Ricapitolando: Il modello MA é equivalente a un modello AR di ordine
infinito; posso quindi ritenere che i dati a mia disposizione provengono da
un modello AR di ordine sufficientemente alto. Procedo all’Identificazione
dei parametri αi che sono una certa combinazione dei ci ; che cosa rende
i parametri del modello differenti dai parametri che ho identificato? Una
molteplicitá di fattori, ma se voglio essere estremamente semplificativo, la
prima causa di disallineamento (se i modelli sono della stessa natura) é il
rumore. E quindi ho identificato il rumore in ogni istante di tempo.
7.12.1
Significato di Media Mobile
Consideriamo il seguente schema:
In ingresso alla struttura MA pongo il processo stocastico; é un sistema
dinamico, quindi ci saranno delle strutture che conservano i dati, ovvero in
uscita mi ritroveró:
y(k) =
k−N
X
ci ζ(i)
i=k
Quando k avanza, la nuova combinazione lineare permetterá alla finestra di
traslare sempre sullo stesso numero di dati: rappresenta l’analisi del trand
del processo stazionario.
La dimensione della finestra sará pari, quindi, proprio al numero dei coefficienti di C(z −1 ). Ed é diverso dal modello autoregressivo: mentre il modello
a media mobile lavora su un input esterno, quello autoregressivo si autosostenta, é una specie di evoluzione libera (es: generatore di Fibonacci é un
AR).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
205
Piú in generale, esplicitando il polinomio monico C(z −1 ) dalla (7.12-2):
y(k) = (1 + c1 z −1 + · · · + cnC z −nC ) ζ(k)
|
{z
f.d.t.
}
Questa funzione di trasferimento é scritta in maniera anomala perché espressa in funzione di z −1 , per riportarla in z basta moltiplicare e dividere per
z nC :
z nC + z (nC −1) c1 + · · · + cnC
z nC
Filtro F.I.R.
É una forma piú familiare, si tratta della f.d.t. di un filtro F.I.R.: per capire
il filtro FIR, quindi, é meglio dire che fa la media mobile.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
206
7.13
Modello ARMA
7.13.1
Stima a Massima Verosimiglianza
Consideriamo, per semplificarci la vita, un modello ARMA38 di questo tipo:
A(z −1 )y(k) = C(z −1 )ζ(k)
(7.13-1)
Di ζ(k) abbiamo sempre detto che si tratta di un processo aleatorio rumore
bianco; ora facciamo l’ulteriore assunzione che sia anche gaussiano: ζ(k) ∈
W GN [0, σ 2 ]. A questo punto la funzione di distribuzione39 del rumore si
potrá scrivere:
f (ζ(k)) = √
1
−
exp
2πσ 2
(ζ(k)−µζ )2
2σ 2
∀k
(7.13-2)
Nel nostro caso particolare µζ = 0. Esplicitiamo il modello:
y(k) = −α1 y(k − 1) − α2 y(k − 2) − · · · + ζ(k) + c1 ζ(k − 1) + · · · + cnC ζ(k − nC )
(7.13-3)
questo modello finisce con l’essere una combinazione lineare di variabili aleatorie di tipo gaussiano. Se noi adesso immaginassimo di partire da condizioni
iniziali nulle40 , potremmo dire che anche la y(k) é una variabile aleatoria
gaussiana41 , di media pari alla combinazione delle medie e di varianza pari
alla combinazione delle varianza42 . Se utilizzo sempre la stessa notazione,
dove Y rappresenta il vettore delle osservazioni, ovvero i dati che abbiamo
a disposizione di un campione di dimensioni pari a N:




y(1)


 .. 
Y= . 
y(N )
38
Cambia poco rispetto al caso ARMAX, visto che l’ingresso esogeno u rientra sempre
tra i contributi deterministici.
39
Introduciamo la pdf perché vogliamo arrivare a utilizzare il principio della massima
verosimiglianza: il nocciolo di questo metodo é quello di conoscere la funzione di densitá
di probabilitá in modo parametrico.
40
Oppure partiamo da condizioni iniziali diverse da zero ma ne trascuriamo l’effetto.
41
Una combinazione lineare di variabili aleatorie gaussiane é essa stessa una variabile
aleatoria gaussiana.
42
I coefficienti sono al quadrato.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
207
Se io lo vedo come vettore aleatorio, posso dire che i suoi componenti saranno
tutti gaussiani; quindi se io vado a considerare ŷ(i|i − 1)), posso generare
il vettore corrispondente delle predizioni e posso indicare con (Y − Ŷ) il
vettore degli errori di predizione, che a priori é esso stesso un vettore
di tipo gaussiano.
Intanto é chiaro che la Y, se il mio problema é di identificazione, avrá una
pdf incognita, perché il modello non é noto. Posso dire soltanto che la
densitá é di tipo gaussiano e i parametri sono dipendenti dai parametri del
modello. Siccome la media é nulla, l’unico parametro incognito (la varianza)
sará funzione dei parametri (quindi funzione di ϑ)43 . Si ha44 :
2
(ζ(k)−µζ )
1
−
2σ 2 (ϑ)
f (Y) = p
exp
2πσ 2 (ϑ)
(7.13-4)
A questo punto posso costruire la funzione di verosimiglianza, cioé posso
dire conosco la densitá di probabilitá (la struttura) della funzione, mi é
incognito un parametro che é la varianza. Allora vuol dire che la funzione
di verosimiglianza, funzione dei parametri ϑ, la scriveró in questo modo:
N
Y
(
1
[y(i) − ŷ(i|i − 1)]2
p
L(ϑ) =
exp
−
2σ 2 (ϑ)
2πσ 2 (ϑ)
i=1
)
(7.13-5)
elaboriamo la formula:
L(ϑ) = √
1
[2πσ 2 (ϑ)]N
= q
n
exp −
1
[2πσ 2 (ϑ)]N
PN
i=1
(
[y(i)−ŷ(i/i−1)]2
2σ 2 (ϑ)
kY − Ŷk2
exp −
2σ 2 (ϑ)
o
=
)
Questa funzione, a priori la scrivo cosi: ha una parte legata alla funzione
aleatoria e una parte legata ai parametri. Siccome ho un campione, la parte
legata alla funzione aleatoria viene in qualche modo sostituita dal valore
del campione. Quindi per massimizzare la verosimiglianza dovró prendere
il massimo di L(ϑ) rispetto a ϑ.
43
La natura gaussiana della ζ(k) fa si che anche Y sia gaussiano, ma i parametri saranno
incogniti.
44
Allo stesso modo per f (e)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
208
Per semplificarci i conti poniamo σ 2 (ϑ) = λ:
L(λ) = q
(
1
[2πλ]N
kY − Ŷk2
exp −
2λ
)
(7.13-6)
Passiamo al logaritmo45 :
log L(λ) = log[( q
= log( q
1
)(e−
kY−Ŷk2
2λ
)]
[2πλ]N
1
) + log(e−
kY−Ŷk2
2λ
)
[2πλ]N
kY − Ŷk2
2λ
2
kY − Ŷk
N
N
=−
−
log λ −
log 2π
2
2
)
( 2λ
N
kY − Ŷk2
=
− log λ − log 2π
−
2
Nλ
= log(2πλ)
−N
2
−
a questo punto faccio la massimizzazione di questa funzione46 :
N
2
(
1
kY − Ŷk2
−
2
Nλ
λ
)
= 0 ⇒ λ∗ =
kY − Ŷk2
N
(7.13-7)
Alla fine λ∗ risulta collegato allo scarto quadratico medio. Avendo trovato il
λ∗ devo trovare la ϑ che mi garantisce la condizione (7.13-7), ovvero é come
se cercassi la ϑ che minimizza lo scarto quadratico medio.
Nel caso gaussiano, la massimizzazione secondo il metodo della verosimiglianza finisce con il coincidere con la minimizzazione dello scarto quadratico medio.
Osservazioni:
Capite che attraverso questo discorso che abbiamo fatto
non arriviamo al valore dei parametri, ma si capisce che potrei utilizzare
una procedura di tipo evolutivo47 (puramente numerico) in cui faccio cam45
Il punto soluzione non cambia. Vedi paragrafo sulla Stima a Massima Verosimiglianza
=0
Chiamiamo metodo ricorsivo quello in cui di volta in volta aggiungiamo un dato; un
metodo evolutivo lavora sempre sulla stessa quantitá di dati. Ad esempio una struttura
46 ∂log L(λ)
∂λ
47
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
209
biare i valori dei parametri. Ad esempio mi costruisco lo scarto quadratico,
faccio una condizione iniziale sui parametri, faccio un passo di gradiente
(minimizzando lo scarto) e cerco di modificare i parametri al fine di avere
uno scarto piú piccolo e cosi via. Sto cambiando quindi iterativamente i parametri del predittore e sto andando nello spazio dei parametri ad esplorare
dei punti che mi generano scarti quadratici sempre piú piccoli.
7.13.2
48
Formulazione di Yule - Walker
Consideriamo sempre il modello ARMA nella sua espressione esplicita
(7.13-1)
y(k) = −α1 y(k − 1) − α2 y(k − 2) − · · · + ζ(k) + c1 ζ(k − 1) + · · · + cnC ζ(k − nC )
Moltiplichiamo ambo i membri per y(k − m):
y(k−m)y(k) = y(k−m)[−α1 y(k−1)−α2 y(k−2)−· · ·+ζ(k)+c1 ζ(k−1)+· · ·+cnC ζ(k−nC )]
e andiamo a considerare il valore atteso:
E[y(k−m)y(k)] = −α1 E[y(k−m)y(k−1)]−· · ·−αnA E[y(k−m)y(k−nA )]
(7.13-8)
questa vale se m > nC : nel modello AR c’era solo ζ(k) e quindi bastava
ritardare di un passo (y(k − m) = y(k − 1)) per liberarmi di tutto il rumore;
ora, se voglio che tutte le correlazioni con il rumore vadano a zero, ho bisogno
che m > nC . Basta quindi moltiplicare per un dato che é sufficientemente
lontano dalla memoria relativa alla componente MA del modello per poter
scrivere un’equazione nella quale non compare il rumore.
Chiamando r le correlazioni:
rm = −α1 rm−1 − α2 rm−2 − · · · − αnA rm−nA
(7.13-9)
come quella del metodo del gradiente evolve nel tempo ma é di tipo evolutivo.
48
Procediamo come nel caso MA. I termini che si generano sono termini autoregressivi
di ordine maggiore di quello che c’é. Vedremo che é possibile sostituire tutto il sistema
con un AR di ordine almeno 2 aggiungendo un numero di termini tali che il rumore sia
trascurabile. Il sistema risultante si chiama AR equivalente. Il metodo si chiama Yule
Walker modificato.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
m > nC
7. Identificazione
210
Posso quindi scrivere un sistema di equazioni lineari, particolarizzando l’espressione partendo dal piú piccolo m che posso prendere (m = nC + 1);
particolarizzando quest’espressione ∀m ∈ [nC + 1, nC + nA ] otteniamo il
seguente risultato in forma matriciale:

rnC +1

 rn +2
 C

..

.






 rn +1
C


 = −
..


.


rnC +nA
|
{z
ρ
~
rnC
rnC +nA −1
}
|

α1


α2
..
.






rnC −1
...
rnC +1−nA
rnC
..
.
...
..
.

rnC +2−nA 



..

.
rnC +nA −2
{z
R
...

αnA
rnC
} | {z }
ϑ
(7.13-10)
In questo modo posso calcolare il vettore dei parametri incogniti:
ϑ = −R−1 ρ
~
(7.13-11)
Le covarianze non le conosco ma posso sostituirle con quelle stimate; considero quindi il sistema ρ
~ˆ = R̂ϑ. Facciamo l’esempio per la prima riga49 :
rnC +1 = E[y(k)y(k − nC − 1)] ⇒ r̂nC +1
N
1 X
=
y(i)y(i − nC − 1)
N i=1
Possiamo osservare che utilizziamo un dato corrente y(i) e un dato anticipato
y(i − nC − 1) tanto da non incidere con la memoria del nostro sistema.
Ma questa non é nient altro che la Tecnica della Variabile Strumentale.
Ricapitolando: Nel nostro caso usiamo come strumento le y(i) stesse.
Alla fine possiamo concludere dicendo che nella tecnica di Yule-Walker il
problema viene riformulato in modo tale da liberarsi della ζ(k) attraverso le
covarianze (di passo sufficientemente ampio); nel sistema di equazioni che
scrivo, utilizzo la variabile strumentale 50 .
49
Allo stesso modo faremo per gli altri contributi
Anche se storicamente lontane, la tecnica di Yule-Walker si puó inserire tra le tecniche
della Variabile Strumentale.
50
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
7.14
211
Esercizi
Come si procede nell’Identificazione?
1. Si prendono delle misure;
2. Si stima l’ordine;
3. Faccio l’identificazione e trovo dei coefficienti;
Come faccio ora a sapere che questi coefficienti sono corretti?
Bisogna valutare l’errore; con il metodo dei minimi quadrati sappiamo che
l’errore é minimo, ma chi ci dice che é piccolo ed accettabile per il sistema
sotto osservazione?
Per esempio nel caso degli AR l’errore é proprio l’incertezza (che é supposta
bianca). Una particolare realizzazione di questa incertezza per esempio
potrebbe avere dei picchi enormi, cioé in alcuni istanti potrebbe essere molto
elevata51 , e quindi non é detto che l’errore minimo che abbiamo trovato con
il metodo dei minimi quadrati sia accettabile per il nostro problema.
7.14.1
Tecnica della Variabile Strumentale in Matlab
y(t) = 0.6y(t − 1) − 0.034y(t − 2) + 0.4564u(t − 1) + 0.2738u(t − 2)+
+w(t) − 1.1w(t − 1) + 0.34w(t − 2)
Svolgimento:
clear, clc;
% definizione del sistema
num_sys = [0 0.4564 0.2738];
den_sys = [1 −0.6 0.34];
num_err = [1 −1.1 0.3];
sys = tf(num_sys,den_sys,1,'Variable','z^−1');
sys_err = tf(num_err,den_sys,1,'Variable','z^−1');
%
N
w
u
definizione di ingresso e rumore
= 1000;
= 1e−2*randn(N,1);
= randn (N,1);
% simulazione del sistema
51
Poiché io la estraggo da una variabile aleatoria che ha media nulla e una certa varianza.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
212
yu = lsim(sys,u);
yw = lsim(sys_err,w);
y=yu+yw;
plot(y);
% identificazione
L=N−2;
Z0=[u(1:L−2) u(2:L−1) u(3:L) u(4:L+1)];
H=[y(1:L−2) y(2:L−1) y(3:L) y(4:L+1)];
% prima stima
theta=(Z0'*H)\(Z0'*y(5:L+2));
%
%
%
%
%
%
%
passo iterativo
estrarre i coefficienti della tf del sys aux
determinare la tf del sys aux
simulare il sys aux con l'ingresso disponibile
costruire Zi
calcolare thetai
eseguiamolo 10 volte
for i=1:10
num_sysa = [0 theta(4) theta(3)]; %estrae i coefficienti della tf del sys aux
den_sysa = [1 theta(2) theta(1)];
sys_aux = tf(num_sysa,den_sysa,1,'Variable','z^−1');
eta=lsim(sys_aux,u); % simula il sys aux con l'ingresso disponibile
Z=[eta(1:L−2) eta(2:L−1) u(3:L) u(4:L+1)];
%theta=(Z'*H)\(Z'*y(5:L+2));
end
theta
Osservazioni: Nel vettore ϑ abbiamo incluso solo i coefficienti a e b, quindi
stiamo rinunciando a stimare i coefficienti di w. In realtá noi ora arriviamo
ad una stima plausibile, poi utilizzando la struttura del predittore (y−ŷ = e)
ci determiniamo l’errore (infatti noi abbiamo le misure y, abbiamo gli ingressi u ma non abbiamo ancora la struttura del rumore w) e poi identifichiamo
con il metodo dei minimi quadrati.
Una volta determinata la realizzazione del rumore si fa un test di bianchez© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
213
za, se il test si trova almeno al 70% allora procediamo con l’identificazione52 .
Errore nello script: Quando andiamo a simulare il sistema, le approssimazioni dei coefficienti del sistema non hanno garantito la stabilitá;
Soluzione: Si deve cambiare la Z0 iniziale (dato che con questa nostra
scelta di Z0 il sistema é instabile).
Successivamente si utilizza la struttura del predittore per calcolare una realizzazione di w; dopo si re-identifica tutto con il metodo dei minimi quadrati.
Quindi avremo ϑ̂ = [a1 a2 . . . b1 b2 . . . c1 c2 . . . ] e utilizziamo il metodo
dei minimi quadrati.
7.14.2
Stima Bayesiana
La cifra di merito della stima bayesiana é funzione dell’errore: J(ε).
Parto da una stima iniziale dei parametri ϑ̂, utilizzo il modello del predittore ŷ e determino una realizzazione dell’errore di predizione (ε); da questa
realizzazione di ε posso calcolare la cifra di merito J(ε) e posso eseguire un
algoritmo numerico (ad esempio Newton) che serve a calcolare la ϑ̂ successiva.
Ricapitolando:
1. Determino una stima iniziale dei parametri (a, b, c, ovvero determino
ϑ̂);
2. Sfruttando il modello del predittore posso determinare una realizzazione dell’errore (in realtá nel predittore i termini del rumore si possono
rimuovere, poiché si possono sostituire con termini dipendenti da y, da
u e dalle stime precedenti di y). Quindi io non ho nemmeno bisogno
di conoscere una realizzazione del rumore;
3. Determino una stima iniziale (scelgo io una certa serie di coefficienti
ai , bi , ci );
4. Ora utilizzando l’equazione del predittore mi posso determinare le y
stimate e di conseguenza calcolare l’errore di predizione;
52
Nella realtá se il rumore é di origine termica allora risulta essere bianco.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
7. Identificazione
214
5. A questo punto conoscendo l’errore di predizione posso calcolarmi il
valore della cifra di merito J.
Ho cosí stabilito una procedura per calcolare sempre la cifra di merito, basandomi sull’equazione del predittore e sulla stima precedente, ed ora posso
utilizzare un algoritmo numerico che minimizza questa cifra di merito.
Ci sará una tecnica per calcolare gli y stimati→calcolo errore di predizione→
calcolo la funzione J() →utilizzo per esempio la fminunc che mi calcola il
minimo.
La differenza sostanziale é che noi ora non sappiamo come minimizzare esplicitamente.
Prima con il metodo della variabile strumentale sapevamo che questo procedura ha un minimo che é calcolabile a priori ed é nota la formula (come
nei minimi quadrati). Ora invece noi non sappiamo la formula esplicita
del minimo, ma sappiamo solo come determinare il valore della funzione
obiettivo noti i parametri al passo k. Quindi costruisco una funzione che
é un algoritmo per calcolare il valore della funzione obiettivo, la passo alla
fminunc e automaticamente otteniamo la stima Bayesiana.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
CAPITOLO
8
Controllo Adattativo
Non é semplice dare una definizione di controllo adattativo, dal momento
che ogni ciclo di retroazione ha la funzione di ’adattarsi’ ai disturbi ed alle
variazioni parametriche del sistema controllato. In questi casi assumeremo
che il controllo sia realizzato da un ciclo di feedback attraverso un controllore
che abbia parametri modificabili in tempo reale e l’adattabilitá del controllo
sará attribuita ad un secondo anello di retroazione che modifica i parametri
del controllore sulla base di misure di processo. Quando i parametri del
controllore vengono modificati attraverso una procedura che, identificando
il processo in tempo reale, consente di ridisegnarne i valori sempre in tempo
reale, si parla di controllo adattativo SELF TUNING (ST). É evidente
che nel controllo ST é implicito l’uso del principio della certezza equivalente
e dunque esso é di natura sostanzialmente euristica. Nel seguito vengono
illustrate alcune tecniche ST, prima in ambito deterministico poi in ambito
incerto.
8. Controllo Adattativo
216
8.1
Self Tuning diretto per il Pole Placement Deterministico
Assumiamo l’impianto da controllare descritto da:
A(z)y(k) = B(z)u(k)
(8.1-1)
con:
deg A(z) = na
deg B(z) = nb = na − d
A(z) = z na + a1 z na −1 + · · · + ana
(8.1-2)
B(z) = b0 z nb + · · · + bnb
Si noti che in termini di ’polinomio reciproco’ A(z −1 ) = zna A(z), l’impianto
si puó riscrivere, cosí come usuale in identificazione, nella forma di ARX
deterministico:
A(z −1 )y(k) = z −d B(z −1 )u(k)
(8.1-3)
Un controllore di struttura lineare per questo impianto ha la forma generale:
R(z)u(k) = T (z)r(k) − S(z)y(k)
(8.1-4)
con r(k) segnale di riferimento.
Questo controllore ha evidentemente una struttura di feedback con f.d.t.
−S(z)
R(z)
e di feedforward con f.d.t.
T (z)
R(z) .
Si dice che esso ha ’due gradi di
libertá’.
Figura 8.1: Schema a blocchi
Con questo schema si puó fare l’assegnamento dei poli, non attraverso una
retroazione dello stato, ma con un compensatore sull’uscita.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
217
La funzione di trasferimento H(z) del sistema complessivo sará1 :
H=
B
TB
T
A
=
S
B
R1+ AR
AR + BS
(8.1-5)
Indichiamone con Ac = AR + BS il polinomio caratteristico. Assegnato il
polinomio D dei poli desiderati del sistema a ciclo chiuso, si puó determinare
la componente di feedback del controllore risolvendo l’equazione diofantina
Ac = AR + BS = D
(8.1-6)
nelle incognite R, S.
La (8.1-6) si puó riscrivere come:
(z na + a1 z na −1 + · · · + ana )(r0 z m + r1 z m−1 + · · · + rm )+
+(b0 z nb + b1 z nb −1 + · · · + bnb )(s0 z m + s1 z m−1 + · · · + sm ) =
=
z na +m
+ d1
z na +m−1
(8.1-7)
+ · · · + d0
avendo assunto il compensatore proprio e di grado m da determinare2 . Nelle
ipotesi in cui R ed S sono non monici, ognuno dei due polinomi ha (m+1)
parametri da stimare, per un numero di parametri totale pari a (2m + 2) .
Del resto, per la fisica realizzabilitá delle azioni di controllo, dalla (8.1-6)
possiamo dire che:
deg D = deg A + deg R = na + m
(8.1-8)
Il polinomio assegnato D avrá grado (na + m); essendo noto e non monico,
il numero di equazioni che si possono scrivere sono na + m + 1 . Allora,
affinché la (8.1-6) sia risolubile si deve verificare la seguente condizione:
2m + 2 = na + m + 1 ⇒ m = na − 1
(8.1-9)
1
Per non appesantire la notazione, da questo momento in poi non espliciteremo la
dipendenza dei polinomi da z.
2
deg R = deg S = m
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
218
In questa ipotesi, uguagliando i coefficienti, si ottiene il sistema lineare:
equivalente all’equazione diofantina. Si puó dimostrare che la matrice dei
coefficienti, detta matrice di Sylvester é invertibile quando A e B sono coprimi3 .
Si noti che per semplificare la notazione, nel sistema precedente abbiamo
assunto d = 1, ovvero nb = na − 1. A partire dalla soluzione ottenuta col
metodo precedente, si possono generare infinite soluzione sfruttando l’osservazione secondo la quale se S0 e R0 sono soluzioni dell’equazione diofantina
(8.1-6), sono soluzioni anche:
R = R0 + QB
S = S0 − QA
con Q polinomio arbitrario. Ovviamente, essendo S0 e R0 di grado na − 1,
nelle ipotesi fatte, le nuove soluzioni saranno di grado piú alto. In questo
caso si andrebbero ad utilizzare compensatori sovraparametrizzati, di non
interesse in questa discussione.
Per completezza dobbiamo aggiungere che la soluzione del sistema lineare
di equazioni non é il metodo numerico correntemente usato per la soluzione
dell’equazione diofantina (8.1-6). La matrice di Sylvester, infatti, puó risultare mal condizionata4 se le radici dei polinomi sono prossime tra loro. La
soluzione dell’equazione diofantina permette di calcolare R ed S di grado
3
Due polinomi si dicono coprimi se non ci sono fattori primi comuni (MCD=1).
Un problema in cui ad una piccola variazione dei dati di input, corrisponde una grande
variazione dei valori della soluzione, viene definito problema malcondizionato.
4
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
219
minimo na − 1 assegnato che sia il polinomio D di grado 2na − 1 risolvendo
in tal modo il problema dell’assegnamento dei poli attraverso l’utilizzo del
controllore in feedback
S
R.
In questo modo i poli del sistema a ciclo chiuso
vengono assegnati ad arbitrio nelle radici del polinomio D mentre gli zeri
del ciclo chiuso rimangono quelli del sistema a ciclo aperto, rappresentati
dal polinomio B e quelli conferiti dal polinomio T. Si noti, a questo punto,
la similitudine di quanto detto con la tecnica di assegnamento dei poli nel
dominio del tempo che, attraverso la struttura osservatore-controllore, ci
fanno pervenire ad un sistema a ciclo chiuso con 2na autovalori (2na − 1 se
si usasse un osservatore di ordine ridotto5 ), interpretabili come i poli conferiti al sistema e poli dell’osservatore.
Volendo utilizzare la stessa logica, potremmo fattorizzare il polinomio D
nella forma:
D = Am A0
deg Am = na
(8.1-10)
deg A0 = na − 1
avendo raggruppato in Am i poli che si desidererebbe conferire all’impianto
e in A0 avendo considerato i poli accessori, detti anche, per analogia, poli
dell’osservatore.
Potendo disporre dell’ulteriore grado di libertá rappresentato dal controllore
in feedforward, possiamo, in aggiunta a quanto giá fatto,
a) cancellare il polinomio osservatore;
b) conferire al sistema un certo numero di zeri desiderati, cancellando se
possibile quelli ereditati dall’impianto.
Si configura in questo modo il problema del Model Matching: il nostro controllore deve essere progettato in modo da far apparire l’impianto controllato
come un modello nella forma:
Am y(k) = Bm r(k), deg Am = na ; deg Bm ≤ na − 1
(8.1-11)
5
Perché da un sistema di ordine n ricavo un osservatore di ordine n. Se un’uscita é
presa come variabile di stato, l’osservatore diventa di ordine n-1.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
220
Il che significa risolvere simultaneamente due equazioni:


T B = Bm
TB
Bm
⇒
=
 AR + BS = A
AR + BS
Am
m
Per ottenere il soddisfacimento del punto a) precedente basta scegliere
T = A0 B m
(8.1-12)
mentre il soddisfacimento del punto b) richiede qualche precisazione. Infatti
una cancellazione degli zeri ereditati dall’impianto implica che il controllore
in retroazione possegga, oltre ai poli desiderati dell’impianto ed i poli dell’osservatore, anche poli corrispondenti agli zeri dell’impianto. Per evitare
che queste cancellazioni riguardino gli zeri instabili di B si fattorizzi B come
B = B+B−
(8.1-13)
con B + polinomio monico con zeri stabili. Dal momento che gli zeri instabili
di B non potranno essere cancellati, il ’model matching’ potrá soddisfarsi
solo se
0
Bm = B − Bm
(8.1-14)
0 che rappresenta un’ulteriore aliquota di zeri che voglio conferire per
con Bm
plasmare la risposta del sistema. Gli zeri stabili sono cancellati tramite il
denominatore Ac ; allora il polinomio noto D dovrá avere come fattore anche
B+
Ac = B + Am A0
(8.1-15)
Il grado di A0 potrá ridursi a na − 1 − deg B + lasciando inalterato il grado
di D.
Guardando l’espressione del polinomio a ciclo chiuso (8.1-6), ci rendiamo
conto che essendo B + un fattore sia di B che di D, per potersi cancellare,
deve essere un fattore di R6 e dunque
R = B + R0
6
(8.1-16)
Non puó essere un fattore di A perché coprimo con B.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
221
e l’equazione diofantina (8.1-6) diventa
AR0 + B − S = A0 Am
(8.1-17)
mentre T prende necessariamente la forma
0
T = A0 Bm
(8.1-18)
Per rispettare la condizione di causalitá del controllore, e quindi affinché la
(8.1-17) risulti fisicamente realizzabile, bisogna che risulti
deg S ≤ deg R
deg T ≤ deg R
(8.1-19)
Prima di tutto dalla (8.1 − 8) possiamo fissare il grado di R
deg R = deg Ac − deg A
(8.1-20)
Tra tutte le soluzioni generabili7 , vogliamo fissare la soluzione S in modo
che
deg S < deg A
(8.1-21)
Prendiamo allora il grado piú alto ammissibile per S, ovvero deg S = na − 1.
A questo punto, tenendo presente le condizioni di risolubilitá (8.1 − 19)
, ricaviamo dalla prima delle due:
deg R ≥ deg S ⇒ deg Ac − deg A ≥ na − 1 ⇒ deg Ac ≥ 2na − 1 (8.1-22)
mentre dalla seconda, tramite le espressioni (8.1 − 15) e (8.1 − 18):
+
+deg B 0 ≤ deg A −deg A = deg
A
deg T ≤ deg R ⇒ deg
A0 +deg Am +deg B −deg A
0
c
m
ovvero:
0
deg Am − deg Bm
≥ deg A − deg B +
7
Ammesso sempre che ci sia soluzione.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
222
se sommo a destra e sinistra la stessa quantitá − deg B − :
0
deg Am − (deg Bm
+ deg B − ) ≥ deg A − (deg B + + deg B − )
|
{z
deg Bm
}
|
{z
deg B
}
ottengo:
deg Am − deg Bm ≥ deg A − deg B = d
(8.1-23)
La condizione di fisica realizzabilitá implica che l’eccesso poli-zeri del modello sia maggiore o uguale all’eccesso poli-zeri dell’impianto. In altre parole, il ritardo intrinseco del modello deve essere superiore a quello dell’impianto. L’algoritmo di self tuning diretto per il Minimum Degree Pole
Placement (MDPP) puó dunque essere sintetizzato come segue:
• Assegnato l’impianto, sono disponibili A, B;
• Le specifiche assegnano Am , Bm , A0 ;
si verifichino le condizioni di compatibilitá
deg Am = deg A
deg Bm = deg B
deg A0 = deg A − deg B + − 1
(8.1-24)
0
Bm = B − Bm
• passo 1: fattorizziamo B = B + B − con B + monico;
• passo 2: troviamo una soluzione R0 , S con deg S < deg A Risolvendo
l’equazione diofantina AR0 + B − S = A0 Am ;
0 e calcoliamo il segnale di
• passo 3: ricaviamo R = B + R0 e T = A0 Bm
controllo come
Ru = T r − Sy
Analizziamo ora due casi particolari in cui la procedura descritta si semplifica notevolmente.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
223
Caso in cui tutti gli zeri sono cancellabili
In questo caso
deg A0 = deg A − deg B − 1 = d − 1
(8.1-25)
Se scegliamo, come risulta abbastanza naturale Bm = Am (1)q n−d ottenendo
in tal modo risposte con minimo ritardo e guadagno statico unitario, risulta:
• passo 1: B − = b0 , B + =
B
b0
monico;
• passo 2: AR0 + b0 S = A0 Am che si risolve facilmente essendo R0 il
quoziente e b0 S il resto della divisione di A0 Am per A;
• passo 3: R =
R0 B
b0 ,
T = A0 q n−d Amb0(1) .
Caso in cui gli zeri non vengono cancellati
B+ = 1
B− = B
(8.1-26)
Bm = βB
con
β=
Am (1)
B(1)
deg A0 = deg A − deg B − 1
T = βA0
L’equazione diofantina assume la forma
AR + BS = Am A0
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
224
8.1.1
Self tuning indiretto
Sulla base della procedura di progetto MDDP si puó organizzare un controllo
di tipo SELF TUNING:
• stimando attraverso un algoritmo ricorsivo (ad esempio RLS) i parametri di A e di B;
• calcolando i parametri del controllore R, S, T sulla base di tali stime;
• calcolando la legge di controllo prodotta dal controllore al passo precedente;
• ripetendo i passi precedenti ad ogni istante di campionamento (ovvero
a multipli del passo di campionamento).
8.1.2
Self tuning diretto
La procedura di self tuning indiretto potrebbe portare a mal condizionamento di qualche parametro. É possibile derivare uno schema di controllo
self tuning in cui il ricalcolo del compensatore é eliminato. É possibile fare
ció riparametrizzando il modello attraverso i parametri del controllore. In
questo modo la procedura di identificazione fornirá direttamente i nuovi parametri del controllore. Per fare questo consideriamo il processo Ay = Bu
ed il modello di riferimento Am ym = Bm r.
Consideriamo l’equazione diofantina A0 Am = AR0 +B0 S come un operatore
identitá ed applichiamolo alla y ottenendo
A0 Am y(k) = AR0 y(k) + B − Sy(k) = R0 Bu(k) + B − Sy(k)
Ora
R0 B = R0 B + B − = RB −
e dunque
A0 Am y(k) = B − (Ru(k) + Sy(k))
(8.1-27)
che rappresenta proprio la parametrizzazione ricercata. Se stimassimo i
parametri del modello nella forma (8.1-27), otterremmo direttamente i parametri del controllore.
Appare tuttavia evidente il fatto che la parametrizzazione del modello é non
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
225
lineare per la presenza del fattore B − . Questa difficoltá é superata nel caso
di sistemi a fase minima, per i quali B − = b0 e tutti gli zeri possono
essere cancellati essendo zeri stabili. In questo caso risulta
deg A0 = deg A − deg B − 1 = d − 1
(8.1-28)
quindi riscritta la (8.1-27) nella forma
A0 Am y(k) = b0 (Ru(k) + Sy(k)) = R̃u(k) + S̃y(k)
(8.1-29)
moltiplicando ambo i membri per z −(d−1) z −na si ottiene:
A∗m (z −1 )A∗0 (z −1 )y(k) = R̃∗ (z −1 )u(k − d) + S̃ ∗ (z −1 )y(k − d)
(8.1-30)
Ci siamo riportati a un modello ARX. Ora, dopo questi passaggi, cambiamo
modo di pensare e supponiamo di dovere fare identificazione: nell’ identificazione y e u sono dati, d é noto. Quindi la quantitá a primo membro
dell’equazione (8.1-30) puó essere calcolata a partire da dati precedenti.
Tutto é noto e si puó scrivere come regressore:
η(k) = ΦT (k)θ
posto:
η(k) = A∗0 (z −1 )A∗0 (z −1 )y(k)
ΦT (k)θ = R̃∗ (z −1 )u(k − d) + S̃ ∗ (z −1 )y(k − d)
Si noti che i parametri di θ sono R̃∗ (z −1 ), S̃ ∗ (z −1 ).
In alternativa si potranno introdurre i filtri numerici
uf (k) =
1
u(k),
A∗0 A∗m
yf (k) =
1
y(k)
A∗0 A∗m
(8.1-31)
mettere in forma di regressore il sistema
y(k) = R̃∗ uf (k − d) + S̃ ∗ yf (k − d)
(8.1-32)
e procedere all’identificazione attraverso il metodo dei minimi quadrati ricorsivi.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
226
Qualora l’impianto da controllare fosse a fase non minima, si potrebbe procedere come segue.
Consideriamo di nuovo il processo trasformato
A0 Am y(k) = B − (Ru(k) + Sy(k))
(8.1-33)
con deg R = deg S = deg (A0 Am ) − deg B − .
Introduciamo due polinomi
R = B−R
J = B−S
(8.1-34)
la (8.1-33) puó essere riscritta come
y(k) =
1
(Ru(k) + Jy(k)) = R∗ uf (k − d) + J ∗ yf (k − d)
A0 Am
(8.1-35)
Identificati R∗ e J ∗ , per implementare il controllore bisogna fare attenzione
ad eliminare i fattori comuni (instabili) di R∗ e J ∗ .
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
8.2
227
Self Tuning per il Pole Placement Stocastico
8.2.1
Controllo a Minima Varianza
L’ impianto da controllare é un ARMAX8 :
A∗ (z −1 )y(k) = z −d B ∗ (z −1 )u(k) + C ∗ (z −1 )ζ(k)
(8.2-1)
Con le solite ipotesi del caso.
Se effettuiamo la divisione dei polinomi
un resto P ∗ :
C∗
A∗
otteniamo un quoziente9 Q∗ ed
∗
C∗
∗
−m P
=
Q
+
z
A∗
A∗
quindi C ∗ puó essere scomposto come:
C ∗ = A∗ Q∗ + z −m P ∗
(8.2-2)
Si tratta di un’equazione diofantina particolare: riferendoci all’espressione
standard C = AX + BY , nel nostro caso le incognite saranno Q∗ , P ∗ poiché
C ∗ , A∗ sono noti dal modello e z −m é noto perché supponiamo di andare m
passi in avanti. In generale:
Def. 8.2.1. Un’equazione diofantina nella quale B = z −m , si puó risolvere
con m passi di divisione.
Si tratta é una divisione infinita (poiché fatta su potenze negative); con
m passi in avanti stiamo facendo tanti passi di divisione quanto é grande l’orizzonte della mia previsione. Ci stiamo predisponendo a scrivere il modello
a m passi in avanti ottenendo:
A∗ y(k + m) = z −d B ∗ u(k + m) + C ∗ ζ(k + m)
(8.2-3)
Sostituendo la (8.2-2) nella (8.2-3):
A∗ y(k + m) = z −d B ∗ u(k + m) + A∗ Q∗ ζ(k + m) + P ∗ z −m ζ(k + m)
= z −d B ∗ u(k + m) + A∗ Q∗ ζ(k + m) + P ∗ ζ(k)
(8.2-4)
8
9
Scriviamo A∗ (z −1 ) solo per differenziarlo da A(z), matrice del sistema.
deg Q∗ = m.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
228
Abbiamo scomposto il rumore in due parti: una prima parte che comprende
i termini arretrati rispetto a (k + m) e una seconda parte che comprende i
termini che vengono prima di k.
Dalla (8.2-1) ricaviamoci l’espressione di ζ(k):
ζ(k) =
∗
A∗
−d B
y(k)
−
z
u(k)
C∗
C∗
(8.2-5)
e sostituendo l’espressione appena ottenuta nella (8.2-4):
A∗ y(k + m) = z −d B ∗ u(k + m) + A∗ Q∗ ζ(k + m) + P ∗
y(k + m) =
∗
A∗
∗ −d B
y(k)
−
P
z
u(k)
C∗
C∗
P ∗ z −m
P∗
−d ∗ 1
y(k)
+
z
B
(
−
) u(k + m) + Q∗ ζ(k + m)
∗
∗C ∗
C∗
A
A
|
{z
}
∗
C ∗ −P ∗ z −m
=Q
A∗ C ∗
C∗
Il modello Armax (8.2-1) puó quindi essere riscritto come segue:
y(k + m) =
∗
P∗
−d ∗ Q
y(k)
+
z
B
u(k + m) + Q∗ ζ(k + m)
C∗
C∗
(8.2-6)
Abbiamo difatti ottenuto una ri-parametrizzazione dell’impianto10 .
Il migliore predittore era quello che minimizzava la varianza dell’errore di
predizione della y, quindi se vogliamo minimizzare lo scarto quadratico dobbiamo scegliere il predittore pari proprio alla componente deterministica
della (8.2-6):
ŷ(k + m|k) =
∗
P∗
−d ∗ Q
y(k)
+
z
B
u(k + m)
C∗
C∗
(8.2-7)
Il nostro impianto é caratterizzato da un ritardo intrinseco ’d’; quindi nel
momento in cui andiamo a decidere l’azione di controllo, questa avrá effetto
soltanto d passi in avanti. A questo punto possiamo calcolare la predizione
’d’ passi in avanti:
ŷ(k + d|k) =
∗
∗
P∗
P∗
−d ∗ Q
∗Q
y(k)
+
z
B
u(k
+
d)
=
y(k)
+
B
u(k) (8.2-8)
C∗
C∗
C∗
C∗
In un problema di regolazione, come quello in cui siamo, vorremmo che
10
Ricordiamo che il Self-Tuning indiretto é basato su una ri-parametrizzazione.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
229
l’uscita fosse pari a zero. Quindi dobbiamo imporre:
ŷ(k + d|k) = 0
(8.2-9)
di conseguenza la scelta di controllo dovrá essere pari a:
u(k) =
−P ∗
y(k)
B ∗ Q∗
(8.2-10)
Abbiamo ottenuto il controllo in modo tale che dopo ’d’ passi l’uscita
risultasse nulla. Sostituendo la (8.2-10) nella (8.2-6):
y(k + m) = Q∗ ζ(k + m)
Quindi l’azione di controllo, che avrebbe dovuto portare l’uscita a zero,
realizza un processo a media mobile, con ζ(k) mediamente nulla. Questa é
la minima varianza che noi possiamo ottenere dalla variabile di uscita perché
abbiamo ridotto le escursione della y alle minime compatibili con il modello
a disposizione. Per questo motivo questo controllo é detto Controllo a
Minima Varianza.
Notiamo che questo controllo si basa solo sulla y(k + d), ovvero ’d’ é il
minimo che posso guardare in avanti essendo pari al ritardo intrinseco del
sistema. Quindi imponiamo che quel valore ’d’ passi in avanti sia uguale
a zero, poi trascorre un altro istante e nuovamente imponiamo che l’altro
valore sia pari a zero11 .
11
Diciamo che é piú una logica istantanea che integrale (quando abbiamo fatto la
sommatoria dei costi di transizioni ecc ecc.)
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
230
In che senso questo controllo é di tipo Self Tuning?
Considerando la (8.2-10), possiamo pensare ad uno schema di controllo del
tipo : Che puó essere visto come un sistema per assegnare i poli. E do-
ve li assegno questi poli? Basta guardare l’equazione Diofantina. Tra le
infinite scelte possibile della collocazione dei poli possiamo sceglierne una
che realizza il controllo a minima varianza. Essendo questo un controllore
ad assegnamento dei poli potrebbe essere reso di tipo Self-Tuning facendo l’adeguamento dei pi , bi , qi . Sintetizzando, l’algoritmo Self Tuning per il
Controllo a Minima Varianza potrebbe essere il seguente:
1. stimiamo i parametri del modello (A,B e C);
2. ricaviamo l’equazione diofantina Cˆ∗ = Â∗ Q̂∗ + z −d Pˆ∗ ;
3. otteniamo:
u(k) =
−Pˆ∗
y(k)
Bˆ∗ Q̂∗
Self Tuning diretto
Riscriviamo la (8.2-6) m passi all’indietro:
y(k) =
∗
P∗
−d ∗ Q
y(k
−
m)
+
z
B
u(k) + Q∗ ζ(k)
C∗
C∗
(8.2-11)
Potremmo fare una specie di Self-Tuning di tipo diretto dal momento che
nel controllore (8.2-10) abbiamo (B ∗ Q∗ ) e P ∗ che sono presenti direttamente nel modello (8.2-11).
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
231
Poiché l’identificazione la facciamo sul predittore della (8.2-11),possiamo
procedere all’identificazione dell’impianto attraverso questa ri-parametrizzazione;
in questo modo non andiamo a calcolare i parametri dell’impianto (B,C) ma
calcoliamo direttamente P ∗ e B ∗ Q∗ .
Il problema é che il predittore della (8.2-11)
ŷ(k) =
∗
P∗
−d ∗ Q
y(k
−
m)
+
z
B
u(k)
C∗
C∗
(8.2-12)
é Non Lineare nei parametri12 .
Questo problema di avere C ∗ a denominatore lo abbiamo superato in precedenza tramite il metodo dei minimi quadrati estesi 13 dove confondendo il
rumore con il residuo14 , si forzava il calcolo dei parametri C.
A questo punto é possibile immaginare la quantitá (1/C ∗ ) come un filtro
numerico attraverso il quale facciamo passare i dati y(k) e il controllo u(k):
yf (k) =
1
1
y(k); uf (k) = ∗ u(k)
∗
C
C
(8.2-13)
e in questo modo otteniamo:
y(k) = P ∗ yf (k − m) + z −d B ∗ Q∗ uf (k)
(8.2-14)
L’ulteriore problema é che questa C ∗ potrebbe essere aggiornata, ma non
approfondiamo il discorso15 .
Infatti i nuovi parametri sarebbero P ∗ e B ∗ Q∗ che sono esattamente quelli che servono
nel controllore.
13
Ricordiamo che tramite il metodo della Variabile Strumentale non riusciamo a stimare
il polinomio C direttamente, ma lo approssimiamo come residuo su un modello MA e
identifichiamo l’AR equivalente di ordine infinito.
14
ζ(k) negli istanti di tempo precedenti lo confondiamo con il residuo, cioé con l’errore
che c’é tra y e ŷ
15
Ci sono delle dimostrazioni che dicono che anche se la C ∗ non é esatta si puó convergere
a questa uscita di tipo MA.
12
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
232
8.3
LQG Self Tuning
Anche questo controllo si puó rendere Self-Tuning, basta metterlo sotto
forma di Pole-Placement. In generale:
Def. 8.3.1. Qualunque metodo di controllo che si puó esprimere come un
regolatore a due gradi di libertá16 , si puó rendere Self-Tuning.
Consideriamo il seguente modello:
A(z)y(k) = B(z)u(k) + C(z)ζ(k)
(8.3-1)
Non consideriamo z −d in questa trattazione. Si tratta di un sistema MISO (2
IN e 1 OUT) di cui si potrebbe fare una realizzazione in termini di variabili
di stato17 .
Supponendo il sistema proprio18 :
x(k + 1) = Ax(k) + bu(k) + kζ(k)
y(k) = cT x(k)
Tra le rappresentazioni di stato, consideriamo la Rappresentazione di
Innovazione cosí definita19 :

−a1


 −a2


.
A =  ..


−a
 na −1
−ana
1
0
0
..
.
..
.
1
..
.
..
.
0
0
...
..
.
..
.
..
.
...

0
.. 

.

.. 
.

(8.3-2a)

1

0
16
u = (f dt) ∗ (y) + (f dt) ∗ (agente esterno).
Ricordiamo che di questo sistema sono noti l’ordine dei polinomi A (ordine di A =
ordine del mio sistema), B,C e sono noti i coefficienti ai , bi , ci .
18
grado numeratore<grado denominatore.
19
Una matrice A cosi definita é detta forma compagna delle matrici; simile alla
matrice della forma canonica di controllo dove peró quest’ultima, invece di avere la prima
colonna con termini diversi da zero, aveva l’ultima riga con i termini diversi da 0.
17
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
233
Si costruiscono i vettori20

0


c1 − a1

 
 c2 − a2
 0 

 

 . 
..

 .. 
.

 

b =  ;k = 
..
 b0 

.
 

 . 

..
 .. 

 
.

bnb
cna − ana






h
 T
;c = 1






...
0
i
(8.3-2b)
dove l’uscita é la prima variabile di stato.
Per questo sistema possiamo creare il filtro di Kalman, poiché non conosciamo lo stato ma solo l’uscita; valutiamo lo stato stimato del sistema poiché
é quello che potremo retroazionare. Costruiamo l’osservatore:
x̂(k + 1|k) = Ax(k|k − 1) + bu(k) + k[y(k) − ŷ(k|k − 1)]
(8.3-3)
Abbiamo scritto direttamente k come guadagno: infatti, se andassimo a
calcolare il valore di steady-state del filtro di Kalman associato a questo
impianto scritto in questa forma (8.3-3), troveremo che il valore sará proprio
k. Utilizziamo un’osservatore che corrisponde al filtro di Kalman di regime,
ovvero quello che si ha quando l’equazione di Riccati á arrivata al suo valore
di regime.
Se della (8.3-3) ne facciamo la trasformata Z e la poniamo sotto forma
di f.d.t, volendo arrivare ad una rappresentazione in termini di polinomi,
possiamo scrivere21 :
[zI − A + kcT ]x̂(k|k) = bu(k) + ky(k)
(8.3-4)
20
Ricordiamo che attraverso il teorema della fattorizzazione spettrale si poteva sempre
ritenere che il polinomio C fosse monico, con tutte le radici all’interno del cerchio di raggio
unitario; inoltre il polinomio C si puó sempre considerare di grado massimo na .
21
Ricordando che ŷ = cT x̂.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
234
Immaginiamo l’osservatore come un sistema che riceve due segnali in
ingresso:
Dalla (8.3-4) ricaviamo lo stato stimato:
x̂(k|k) = [zI − A + kcT ]−1 b u(k) + [zI − A + kcT ]−1 k y(k)
|
{z
}
a
|
{z
(8.3-5)
}
b
Che possiamo sintetizzare in forma matriciale come segue:

W1 (z)


W10 (z)



 0

 W2 (z) 
 W (z) 


 2

x̂(k|k) =  .  u(k) +  .  y(k)
 .. 
 .. 




(8.3-6)
Wn0 (z)
Wn (z)
Notiamo nella (8.3-5) la presenza di (a) e (b) che rappresentano dei vettori
di f.d.t. (8.3-6) che condividono lo stesso polinomio al denominatore ma con
numeratori diversi.
Portando avanti i calcoli22 :
kcT =


 c1 − a1





c2 − a2
..



.



c − a
n
n
0
..
.
...
..
.
..
.
0
...
0



0

c1

 

.. 



c2 
.

T =
⇒
A
−
kc

.. 
.. 



.
.



cn
0
si ha:
det[zI − A + kcT ] = C(z)
(8.3-7)
Con questo abbiamo dimostrato che le f.d.t (a) e (b) hanno tutte al denominatore C(z).
Vediamo che kcT ha di nuovo una struttura di una matrice compagna solo che nella
prima colonna avremo anche le c.
22
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
235
In definitiva possiamo dire che la stima dello stato si puó avere come:
x̂(k|k) =
m(z)
n(z)
u(k) +
y(k)
C(z)
C(z)
(8.3-8)
riducendo la struttura di osservatore ad uno schema del tipo:
A questo punto possiamo introdurre per questo sistema,nella sua rappresentazione in termini di variabili di stato, una cifra di merito come segue:
J = E[xT (N )QF x(N ) +
N
−1
X
xT (i)Qx(i) + ρu2 (i)]
(8.3-9)
i=0
che viene minimizzata quando si sceglie23 una u(k) = −lT (k)x(k); ma
siccome di x(k) é disponibile solo la sua stima, si ha:
T
u(k) = −lT (k)x̂(k) = −l x̂(k)
(8.3-10)
lT (k) si calcola decidendo di usare la sua versione a regime lT , soluzione
dell’equazione di Riccati.
23 T
l
perché u é scalare, ci saranno quindi dei prodotti riga per colonna.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
236
L’algoritmo Self Tuning per il controllo LQG puó essere sintetizzato
come segue:
1. Identifichiamo l’impianto ottenendo delle â, b̂, ĉ;
2. Con questi coefficienti possiamo costruire la Rappresentazione di Innovazione stimata [(8.3-2a)e(8.3-2b) con le stime] del sistema;
3. Scelti i valori dei pesi per il controllo ottimo (ρ, Q, QF ), calcoliamo la
soluzione dell’equazione di Riccati del controllo, che é all’indietro, e
dovendola fare a regime dobbiamo andare sufficientemente all’indietro
per ottenere il valore di lT ;
T
4. Determinato lT calcoliamo l’azione di controllo come il prodotto l (k)x(k),
con x(k) stimato tramite la (8.3-8);
Alla fine questo meccanismo genera lo stato stimato sulla stima dei parametri, rendendo cosí Self-Tuning il sistema.
Questo controllo u viene fatto prima o durante l’identificazione?
Poiché siamo a ciclo chiuso, il controllo é automaticamente determinato,
quindi il controllo che noi utilizziamo é quello che noi andiamo a calcolare.
Questo puó far perdere al controllo le caratteristiche di identificabilitá del
sistema, perché puó rendere il controllo poco eccitante rispetto al modello;
si puó quindi innescare un ciclo vizioso per il quale l’identificatore funziona
sempre peggio ed il controllore genera segnali sempre piú flat e quindi ad
un certo punto non funziona piú niente. Quindi per evitare questo problema si ricorre a uno stratagemma: invece di dare il controllo u(k), si da un
controllo u0 (k) = u(k) + d(k), dove d(k) = deater, ovvero un segnale additivo di rumore di ampiezza sufficientemente piccola, ma adatto a stimolare
le dinamiche del sistema. Addirittura, pur di non spegnere l’algoritmo di
controllo, a volte si aumenta l’incertezza, sperando che l’algoritmo riesca a
gestire questo incremento. Stranamente il tutto nella pratica funziona!
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
8. Controllo Adattativo
8.4
237
Esercizi
8.4.1
Esercizio 1
B
0.1065z + 0.0902
= 2
A
z − 1.607z + 0.6065
(8.4-1)
É assegnato:
0.1756z
Bm
= 2
Am
z − 1.321z + 0.4966
Il polinomio é assegnato in modo tale che
Bm (1)
Am (1)
= 1, guadagno unitario24 .
Fattorizzando otteniamo:
B − = 0.1065 ⇒ deg B − = 0
B+ = z +
0.0902
0.1065
⇒ deg B + = n − d
Sappiamo che deg(A0 B + ) = na − 1 ⇒ deg A0 = na − 1 − degB + = 0.
Scegliamo quindi:
A0 = 1
A questo punto:
0
T = A0 B m
= A0
8.4.2
0.1756z
Bm
=
−
B
0.1065
Esercizio 2
Lo stesso esercizio di prima, ma questa volta voglio che gli zeri rimangano
quelli dell’impianto:
B − = 0.1065z + 0.0902
B+ = 1
quindi:
0
0
deg Bm
= 0 ⇒ Bm
= b0m =
Am (1)
B − (1)
0 = 1, ma lo assegno in maniera tale da avere
Non mi conviene mettere Bm
guadagno unitario.
In questo caso deg A0 = 1; tipicamente si assegna una dinamica piú veloce
dell’impianto da controllare :
A0 = z − 0.3
24
Sostanzialmente si fa sempre cosi, per non amplificare i riferimenti.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
238
8. Controllo Adattativo
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
APPENDICE
A
Matrice di Sylvester
Quando scriviamo un’equazione Diofantina del tipo:
AX = C
(A.0-2)
con i seguenti polinomi:
a(z) = ana z na + ana −1 z na −1 + · · · + a0
x(z) = xnx z nx + xnx −1 z nx −1 + · · · + x0
c(z) = cnc z nc + cnc −1 z nc −1 + · · · + c0
con nc = na + nx . L’equaziona diofantina possiamo scriverla in forma
matriciale utilizzando la matrice di Sylvester:

ana


ana −1

 ..
 .



 a0


 0

 .
 ..

0

0
...
ana
..
.
..
.
a0
..
.
...
..
.
..
.
..
.
..
.
0
.. 

.
 


x
c
.. 
n
n
x
c
.
 


xnx −1  cnc −1 




.. 
= . 
.
.. 





.
.. 
 .   . 
.
x0
c0

.. 

.
0
...
a0

(A.0-3)
240
A. Matrice di Sylvester
Il numero di righe di A é pari a nc + 1, il numero di colonne pari a nx + 1.
Quindi praticamente costruiamo una matrice (nc + 1) ∗ (nx + 1) di zeri e
poi cominciamo a riempirla per colonne mettendo prima il polinomio a, poi
scaliamo di una riga e mettiamo di nuovo a fino a che a0 non é sull’ultima
riga (ovvero lo facciamo fino a quando non arriviamo all’indice nx + 1).
Ovviamente se abbiamo un matrice di questo tipo e dobbiamo calcolare X,
lo faccio tramite l’inversa. L’inversa la possiamo fare quando é quadrata;
ma in teoria abbiamo visto che il deg RS = m = na − 1 e questo garantisce che si possa invertire la matrice perché quadrata. X lo scegliamo noi
e quindi ci verrá quadrato. Questo dunque é il caso semplice quando l’equazione diofantina AX=C. Ovviamente l’inversa mostrata prima si fa solo
matematicamente; da un punto di vista algoritmico si risolve il sistema con
altre tecniche (operatore slash retroverso di matlab).
Ora vediamo un problema del tipo:
AX + BY = C
(A.0-4)
dove A,X e C restano uguali come definiti precedentemente. Questi evidentemente sono polinomi quando espressi in funzioni di z non di z −1 .
Definiamo i due nuovi polinomi:
b(z) = bnb z nb + bnb −1 z nb −1 + · · · + b0
y(z) = yny z ny + yny −1 z ny −1 + · · · + y0
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
A. Matrice di Sylvester
241
In questo caso nc = max[na + nx , nb + ny ]. Avremo, nel caso in cui il grado
massimo sia dato da na + nx :

0
 .
 .
 .
0
..
.


 bn
b


b
 nb −1
 .
Y =
 ..


 b0


 0

 .
 ..

0
bnb
..
.
b0
..
.
...
..
.
..
.
0
...
0
0
...
..
.
..
.
..
.
..
.
0
..
.
..
.
..
.













bnb 

0


.. 
. 

.. 
. 

(A.0-5)
b0
All’inizio c’é una matrice di zeri di [nc − (nb + ny )] righe e [ny + 1] colonne.
L’equazione diofantina diventa:

xnx



x

 nx −1 
 .  

 . 
cnc
 . 


 
 x  cnc −1 
 0  

[A|Y ] 

=
 yn   ... 
y 





 yny −1 
c
0


 . 
 .. 


(A.0-6)
y0
Praticamente costruiamo un matrice di zeri che ha na + nc + 1 righe e
nx + nc + 2 colonne e poi la riempiamo per colonne riempendo il blocco
destro con un offset di nc − nb − ny . Ovviamente se il grado massimo non
fosse stato na + nx e bensí fosse stato nb + ny gli zeri andavano nel blocco
sinistro della matrice e non in quello destro come mostrato.
Se i polinomi fossero espressi in termini di z −1 la matrice di Sylvester si
costruisce sempre come mostrato ma non si lasciano offset perché l’offset é
sotto. Questo modo di scrivere serve principalmente per il prodotto di 3,4 o
piú polinomi. Avendo la forma matriciale si puó fare l’inversa, ma bisogna
stare attenti al grado nx lasciando equazioni ed incognite in pari numero.
© 2012 by A.Salvati, A.Tufano, C.Viscuso, G.Pugliese Carratelli
Fly UP