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