1 Osservatore di Luenberger In queste note verrà presentato l osservatore di Luenberger, uno stimatore dello stato per sistemi lineari. Si farà il caso di sistemi dinamici tempo-continui e tempo-discreti. Si consideri il sistema dinamico ingresso-stato-uscita: { ẋ(t) = Ax(t) + Bu(t) y(t) = Cx(t) dove x IR n è lo stato, y IR m sono le uscite, u IR p gli ingressi, le matrici sono di dimensione opportuna: A IR n n, B IR n p, e C IR m n. La grandezza da stimare x(t) è lo stato del sistema, è quindi tempo-variante. Il motivo per cui si ricorre alla stima è che spesso non tutti gli stati sono fisicamente accessibili, oppure il costo per l aggiunta di un ulteriore trasduttore vuole essere risparmiato. Nel caso in cui lo stato sia misurabile ma affetto da molto rumore, la stima tramite osservatore rappresenta una sorta di filtraggio dello stato stesso. Si costruisca un sistema lineare stazionario: ẇ(t) = F w(t) + Γ u(t) + Gy(t), (2) (1) si vuole che: { limt x w = 0 u, x(0), w(0). (3) L uscita dell osservatore, dopo un transitorio, deve convergere numericamente al valore dello stato. Poichè lo stato è tempo-variante la loro differenza si manterrà limitata nel tempo. Questo deve valere per ogni ingresso e per ogni stato iniziale sia dell osservatore che del sistema dinamico (in generale x(0) non è noto). In Figura 1 uno schema dell osservatore. u y x G obs w Γ Figura 1: Schema dell osservatore di Luenberger. Si definisca un errore, e(t) = x(t) w(t), e se ne calcoli la dinamica: ė(t) = ẋ(t) ẇ(t) = Ax(t) + Bu(t) F w(t) Γ u(t) Gy(t), (4) affinchè sia indipendente dall ingresso è necessario che sia Γ = B. Si noti come questa posizione sia stringente, è richiesta la conoscenza esatta dell influenza dell ingresso sul sistema per poterla compensare esattamente. Si ottiene quindi: ė(t) = (A GC) x(t) F w(t). (5)
2 Si sceglie F tale da fornire un sistema omogeneo: F = A GC (6) in questo modo la dinamica dell errore è caratterizzata dell equazione: ossia dall evoluzione: ė(t) = F e(t) (7) e(t) = e F t e(0). (8) Si deve quindi richiedere che gli autovalori della matrice dinamica F appartengano tutti appartenenti al semipiano reale sinistro per garantire che l errore converga a zero. I gradi di libertà del progettista sono G e F. Si potrebbe pensare di prendere G = O e F = A. Questa soluzione ha due inconvenienti fondamentali, può essere utilizzata solo per sistemi stabili e l evoluzione dell errore dell osservatore evolve con la stessa dinamica del sistema da osservare. Questo significa che, a causa dei differenti stati iniziali, i valori dell osservatore diventano utili quando il transitorio del sistema si è estinto. Il procedimento da seguire è quello di assegnare gli autovalori di F, che equivale ad assegnare l evoluzione dell errore. Esistono infinite matrici caratterizzate dagli stessi autovalori, quindi assegnare gli autovalori di F non significa averne vincolato tutti gli elementi. Si calcola poi G e da questa si determina univocamente F. Nel dettaglio, si assegnano gli n autovalori desiderati λ d,i tutti al semipiano reale sinistro: λ d = {λ d,1,..., λ d,n }. (9) da questi si ricavano i coefficienti del polinomio caratteristico desiderato: n (λ λ d,i ) = λ n + d 1 λ n 1 +... + d n. (10) i=1 A questo punto è fissato il polinomio caratteristico che è dato da: λi (A GC) (11) in cui si hanno come incognite gli elementi della matrice G. Supponendo di assegnare lo stesso polinomio caratteristico per tutte le uscite, tramite il principio di identità dei polinomi, si potrebbe pensare di ricavare i G i,i tramite un sistema di equazioni di dimensioni opportune. In realtà ciò non è in generale possibile, le incognite, infatti, dopo l operazione di calcolo del determinante compaiono in forma nonlineare e la risoluzione del sistema sarebbe estremamente complessa. È possibile utilizzare una formula, nota come formula di Ackermann, la cui derivazione viene omessa. Nel seguito, per semplicità di notazione, si farà riferimento ad un sistema con una uscita scalare, le matrici C e G, quindi, sono vettori riga o colonna e verranno rispettivamente indicate con i simboli c e g. Si calcoli il polinomio caratteristico della matrice dinamica del sistema A dato da: λi A = λ n + a 1 λ n 1 +... + a n. (12)
3 Si calcoli la matrice: a n 1 a n 2... a 1 1 T = [ c T A T c T... A Tn 1 c T ] a n 2 a n 3... 1 0..............., (13)............... 1 0... 0 0 della quale è necessario verificarne il rango pieno, che si riduce a verificare il rango della prima matrice che è proprio la trasposta della matrice di osservabilità del sistema. Definendo è possibile scrivere la formula di Ackermann: d = [ d n... d 1 ] T a = [ a n... a 1 ] T g = T -T (a d). (14) Questo determina univocamente l incognita g, sostituendola nella (6) si ottiene la matrice F. Scelta degli autovalori di F Ciò che si richiede ad un osservatore è di convergere il più velocemente possibile al valore dello stato. Non ci sono limiti teorici nella scelta della posizione degli autovalori ne energetici, considerando che l osservatore è un emulatore, implementato al calcolatore nel caso tempo-discreto, del sistema reale. I limiti sono dovuti alla inevitabile presenza di rumore sulla misura. Osservatore ridotto La formulazione appena fornita dell osservatore prevede di stimare tutto lo stato. Nel caso in cui parte dello stato sia accessibile è possibile partizionare il vettore di stato ed implementare i risultati ottenuti a sottoinsiemi del sistema originario. Riformulazione in termini di retroazione L equazione (2), alla luce della (6) può essere riscritta come: ẇ(t) = Aw(t) + Γ u(t) + G (y(t) Cw(t)), (15) che mette in evidenza come l osservatore sia costituito da una componente che emula il processo più una retroazione, pesata tramite G, sull uscita misurabile per ipotesi. In molti testi l osservatore viene presentato direttamente in questa forma.
4 Sulla conoscenza del modello L implementazione di un buon osservatore richiede un accurata conoscenza del modello matematico. La procedura di progetto dell osservatore, infatti, si basa sulla compensazione degli ingressi e sulla conoscenza delle matrici dinamiche e di uscita del sistema al fine di ottenere un sistema omogeneo nell errore. La conoscenza inesatta di queste matrici ha come conseguenza l immissione di disturbi nella dinamica dell errore. In pratica, quindi, l errore non converge esattamente a zero per le inaccuratezze parametriche, le dinamiche non modellate e gli errori di misura. Apparentemente, quindi, sembra di non ritrovare le proprietà di robustezza ed insensibilità alle variazioni parametriche tipiche della retroazione, si noti però che il sistema utilizza una combinazione lineare dello stato (l uscita) per estrarne informazioni e che la compensazione degli ingressi è fatta a ciclo aperto. In dettaglio, si consideri l evoluzione dell errore: ė(t) = (A GC) x(t) F w(t), in cui la matrice Γ non compensa perfettamente B e la conoscenza di A è soggetta ad un errore, mentre supporremo C noto: F = Â GC = A + Ã GC Γ = ˆB = B + B l evoluzione dell errore è quindi determinata dall equazione: ė(t) = F e(t) Ãw(t) + Bu(t). Procedura operativa I passi per la progettazione di un osservatore asintotico sono: 1. porre Γ = B; 2. determinare gli autovalori desiderati assegnando il vettore d; 3. calcolare la matrice di trasformazione lineare T tramite la (13); 4. calcolare g tramite la (14); 5. calcolare F tramite la (6). Osservatore per sistemi tempo-discreti Modello dinamico: { x(k + 1) = Ax(k) + Bu(k) y(k) = Cx(k) dove x IR n è lo stato, y IR m sono le uscite, u IR p gli ingressi, le matrici sono di dimensione opportuna: A IR n n, B IR n p, e C IR m n. Sistema lineare tempo-discreto: (16) w(k + 1) = F w(k) + Γ u(k) + Gy(k), (17)
5 Condizioni dell osservatore: { limk x w = 0 u, x(0), w(0). (18) Errore: e(k) = x(k) w(k) e(k + 1) = x(k + 1) w(k + 1) = Ax(k) + Bu(k) F w(k) Γ u(k) Gy(k), (19) si pone Γ = B: e(k + 1) = x(k + 1) w(k + 1) = (A GC) x(k) F w(k). (20) Si sceglie F come per il tempo continuo (Equazione 6). Equazione omogenea nell errore: ossia evoluzione: e(k + 1) = F e(k) (21) e(k) = F k e(0). (22) Autovalori della matrice dinamica F tutti all interno del cerchio di raggio unitario. Formalmente come per il caso tempo-continuo.