Testo del corso - supsi
Transcript
Testo del corso - supsi
Scuola universitaria professionale della Svizzera italiana I S UP Dipartimento Tecnologie Innovative S Progettazione di Controllori Docente: Ivan Furlan1 3 gennaio 2014 1 Questo documento, salvo i capitoli 5 e 7 ed alcune modifiche/aggiunte, corrisponde al testo del corso progettazione di controllori redatto dal Prof. Silvano Balemi, durante gli anni accademici in cui è stato docente di questo corso (1998-2008). Si ringrazia il Prof. Balemi per aver lasciato il solido corso da lui concepito a disposizione per lo svolgimento dell’attuale lezione. Progettazione di Controllori 2 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Indice 1 Controllori di stato 1.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Controllo di stato . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Controllabilità . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Determinazione dei coefficienti del controllore tramite trasformazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.3 Eliminazione dell’errore statico . . . . . . . . . . . . . . . . 1.3 Osservatore di stato . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Progettazione dell’osservatore . . . . . . . . . . . . . . . . . 1.3.2 Osservabilità . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.3 Principio di separazione . . . . . . . . . . . . . . . . . . . . 1.3.4 Dualità di controllore ed osservatore . . . . . . . . . . . . . 1.3.5 Determinazione dei coefficienti dell’osservatore tramite trasformazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.6 Forma lineare di un controllore di stato con osservatore . . . 1.4 Osservatore ridotto . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Sistema con D = 0 . . . . . . . . . . . . . . . . . . . . . . . 1.4.2 Sistema con D 6= 0 . . . . . . . . . . . . . . . . . . . . . . . 1.5 Controllore di stato discreto nel tempo . . . . . . . . . . . . . . . . 1.5.1 Osservatore discreto nel tempo . . . . . . . . . . . . . . . . 1.5.2 Controllore di stato discreto nel tempo con parte integrale . 1.5.3 Design a tempo finito (deadbeat) . . . . . . . . . . . . . . . 2 Compensations 2.1 Feed-forward compensation . . . . . . . . 2.1.1 Actuation compensation . . . . . . 2.1.2 Reference conditioning . . . . . . . 2.1.3 General feed-forward scheme . . . . 2.2 Compensation of measureable disturbance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 4 . . . . . . . 9 14 18 19 21 24 27 . . . . . . . . . 27 30 31 31 34 36 37 38 39 . . . . . 43 43 43 44 44 45 3 Ottimizzazione di traiettorie di processi dinamici 47 3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2 Esempi di indici di prestazione . . . . . . . . . . . . . . . . . . . . . . 47 3.3 Minimizzazioni degli indici di prestazione . . . . . . . . . . . . . . . . 48 3 gennaio 2014 Ivan Furlan, Silvano Balemi 3 Progettazione di Controllori INDICE 3.4 3.5 3.6 3.7 3.8 Massimo e minimo di funzioni multivariabili invarianti nel tempo . Calcolo delle variazioni . . . . . . . . . . . . . . . . . . . . . . . . Ottimizzazione di processi dinamici . . . . . . . . . . . . . . . . . Vista d’insieme dei diversi metodi di ottimizzazione . . . . . . . . Sistemi LQR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.1 Ottimizzazione con orizzonte infinito . . . . . . . . . . . . 3.8.2 Generalizzazione del controllo LQ . . . . . . . . . . . . . . 3.9 Filtri di Kalman-Bucy . . . . . . . . . . . . . . . . . . . . . . . . 4 Sistemi non lineari 4.1 Introduzione . . . . . . . . . . . . . . . . . 4.1.1 Definizione . . . . . . . . . . . . . . 4.1.2 Paragone con sistemi lineari . . . . 4.2 Alcuni metodi di analisi . . . . . . . . . . 4.2.1 Metodo della funzione descrittiva . 4.2.2 Metodi delle isocline e dei gradienti 4.3 Linearizzazione di un processo . . . . . . . 4.3.1 Compensazione di nonlinearità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Controllo vettoriale 5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Rappresentazione vettoriale di una terna sinusoidale in un riferimento fisso . . . . . . . . . . . . . . . . . . . . . . . 5.3 Rappresentazione vettoriale di una terna sinusoidale in un riferimento rotante . . . . . . . . . . . . . . . . . . . . . 5.4 Trasformate inverse . . . . . . . . . . . . . . . . . . . . . 5.5 Trasformate inversa di Park . . . . . . . . . . . . . . . . 5.6 Trasformate inversa di Clarke . . . . . . . . . . . . . . . 5.7 Controllo nel dominio (d, q) . . . . . . . . . . . . . . . . 5.8 Trasformazione del modello trifase nel dominio (d, q) . . 5.9 Esempio: Controllo vettoriale di un inverter . . . . . . . 6 Quantization effects 6.1 Analysis of round-off error . . . . . . . . . . 6.1.1 Introduction . . . . . . . . . . . . . . 6.1.2 The worst-case error bound . . . . . 6.1.3 The steady-state worst-case . . . . . 6.1.4 Stochastic analysis of round-off error 6.1.5 Illustrative example . . . . . . . . . . 6.2 Roundoff of parameters . . . . . . . . . . . . 6.3 Limit cycles and dither . . . . . . . . . . . . 4 Ivan Furlan, Silvano Balemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 50 52 55 55 58 58 59 . . . . . . . . 63 63 63 64 64 64 65 66 71 73 . . . . . . . 73 sistema di . . . . . . . 74 sistema di . . . . . . . 75 . . . . . . . 77 . . . . . . . 77 . . . . . . . 77 . . . . . . . 78 . . . . . . . 79 . . . . . . . 81 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 83 83 83 84 84 87 88 88 3 gennaio 2014 INDICE Progettazione di Controllori 7 Cenni di stima lineare ed osservatore degli stati ottimo 7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Cenni di teoria della stima: la stima lineare . . . . . . . . . . . . . 7.2.1 Stimatore lineare non polarizzato . . . . . . . . . . . . . . . 7.2.2 Stimatore lineare ottimo (stimatore di Gauss-Markov) . . . . 7.2.3 Derivazione dello stimatore lineare ottimo . . . . . . . . . . 7.2.4 Stima ottima: algoritmo ricorsivo . . . . . . . . . . . . . . . 7.3 Predittore di Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 Osservatore degli stati ottimo . . . . . . . . . . . . . . . . . 7.3.2 Predittore degli stati ottimo: algoritmo ricorsivo . . . . . . . 7.3.3 Predittore degli stati ottimo stazionario . . . . . . . . . . . . 7.3.4 Relazione tra l’osservatore degli stati ottimo ed osservatore degli stati classico . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Appendice : Derivazione dello stimatore lineare ottimo ricorsivo . . 8 Controllo predittivo 8.1 Introduzione . . . . . . 8.2 Predizione . . . . . . . 8.3 Ottimizzazione . . . . 8.4 Attuazione . . . . . . . 8.5 Esempio con sistema di . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . primo ordine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 91 91 91 93 94 96 97 98 99 100 . 100 . 102 . . . . . . . . . . 105 105 106 107 107 108 9 Reti neurali 9.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . 9.2 Il neurone . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Apprendimento di una rete neurale . . . . . . . . . . 9.4 Struttura di una rete . . . . . . . . . . . . . . . . . . 9.5 Definizioni e formule . . . . . . . . . . . . . . . . . . 9.5.1 Metodo di apprendimento “backpropagation” 9.5.2 Elemento Bias (“on”-Neuron) . . . . . . . . . 9.5.3 Apprendimento delta . . . . . . . . . . . . . . 9.5.4 Apprendimento di Hebb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 . 109 . 109 . 110 . 111 . 111 . 112 . 112 . 112 . 112 10 Controllo Fuzzy 10.1 Introduzione . . . . . . . . . . . . . . 10.2 Un po’ di storia . . . . . . . . . . . . 10.3 Cos’è la logica fuzzy . . . . . . . . . 10.4 Funzioni di appartenenza . . . . . . . 10.5 La logica fuzzy nel controllo . . . . . 10.5.1 Fuzzyfication (classificazione) 10.5.2 Motore inferenziale . . . . . . 10.5.3 Defuzzyfication . . . . . . . . 10.6 Applicazioni commerciali . . . . . . . 10.7 Applicazioni industriali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 gennaio 2014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ivan Furlan, Silvano Balemi . . . . . . . . . . 113 113 113 114 114 115 116 117 118 119 121 5 Progettazione di Controllori INDICE 10.8 Applicazioni di laboratorio . . . . . . . . . . . . . . . . . . . . . . . . 122 10.9 Implementazione di controllori fuzzy . . . . . . . . . . . . . . . . . . 123 10.10Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 1 Controllori di stato 1.1 Introduzione L’analisi e i design di sistemi non lineari, come pure quello di sistemi con entrate e uscite multiple, non possono essere facilmente eseguiti con i mezzi del design in frequenza (controllo classico). Questo capitolo si prefigge dunque di introdurre il design con la rappresentazione nel piano degli stati (controllo moderno), un approccio sistematico, che come verra mostrato, offre possibilità maggiori rispetto al design in frequenza. Per riassumere il controllo classico, lo scopo del design in frequenza di un controllore è quello di portare i poli dominanti del sistema in una posizione più favorevole per il comportamento desiderato. In pratica si ottiene un controllo in cascata al processo, e si spera che il comportamento ad anello chiuso sia quello desiderato. Questo dipende in gran parte dal fatto che il sistema viene approssimato ed analizzato come un sistema di 2. ordine, tralasciando l’influsso dei poli non dominanti sulla risposta. Il comportamento del sistema è invece dato dall’insieme di poli del sistema ad anello chiuso. Con i metodi in frequenza non è però possibile agire contemporaneamente su tutti gli n poli di un sistema. In effetti, per poter variare n incognite occorrono n variabili. Il metodo di controllo moderno nel piano degli stati permette invece di avere più variabili in gioco, e quindi di poter agire su più parametri. Inoltre questo metodo mette a disposizione delle tecniche che permettono di piazzare i poli del sistema ad anello chiuso in posizioni desiderate. Queste tecniche permettono di lavorare in modo meno “empirico” di quanto fatto finora. Una limitazione del metodo nel piano degli stati è che esso permette di portare i poli in posizioni desiderate ma non di piazzare gli “zeri” del sistema, ciò che invece era possibile con i metodi in frequenza (questo svantaggio può però essere eliminato con tecniche feedforward che saranno trattate più tardi) Vedremo ora come applicare queste tecniche ai sistemi lineari. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 1 Progettazione di Controllori 1.2 Capitolo 1. Controllori di stato Controllo di stato Come punto di partenza prendiamo un processo descritto da ( ẋ = A · x + B · u y = C ·x+D·u (1.1) Con un diagramma a blocchi rappresentiamo questo processo come nella figura 1.1 - u - B D + ?y x C +- e - -e - R + 6 + A Figura 1.1: Diagramma a blocchi di un sistema lineare In un controllo la variabile in uscita y viene di solito riportata in entrata. Ora, invece di riportare in entrata un’unica variabile y, riportiamo in entrata una combinazione lineare di tutte le variabili di stato xi , moltiplicandole con il vettore di retroazione −K. Moltiplicando ogni variabile di stato per un guadagno ki otteniamo n parametri che possono essere variati a piacere per ottenere la posizione desiderata dei poli ad anello chiuso del sistema. La nuova situazione cosı̀ ottenuta è rappresentata nella figura 1.2. - r - eu B + 6 − D -e - R + 6 x + - + C e -? y + A K Figura 1.2: Diagramma a blocchi di un sistema lineare con retroazione di stato u=r−K·x L’equazione di stato del sistema ad anello chiuso può essere scritta come ( ẋ = A · x + B · u = A · x + B · (−K · x + r) = (A − B · K) · x + B · r y = C · x + D · u = C · x + D · (−K · x + r) = (C − D · K) · x + D · r La procedura da usare per trovare i valori ki desiderati è la seguente: 2 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.2. Controllo di stato Progettazione di Controllori 1. Rappresentare il processo con le variabili di stato 2. Trovare il polinomio caratteristico del sistema ad anello chiuso (cioè del polinomio caratteristico della matrice A − B · K) 3. Scegliere la posizione dei poli e trovare il polinomio caratteristico del sistema ad anello chiuso desiderato 4. Tramite un paragone di coefficienti determinare i valori di ki 5. Moltiplicare gli stati con il vettore K e retroazionare in entrata Può essere dimostrato che le n equazioni lineari nelle n variabili ki hanno una soluzione per qualsiasi scelta dei poli desiderati solo se il sistema è controllabile. Se il sistema invece non è controllabile, alcuni poli del sistema originale non possono essere spostati. In matlab i comandi K=acker(A,B,p) oppure K=place(A,B,p) forniscono la matrice di retroazione K a partire dalle matrici A e B e da un vettore p contenente i poli desiderati. Esempio 1.1 Dato il processo descritto dalla funzione di trasferimento G(s) = 20 · (s + 5) s · (s + 1) · (s + 4) determinare il feedback degli stati che dia un %OS di 9.48 e un Ts di 0.74 s. Le specifiche portano a definire il polinomio caratteristico ad anello chiuso con due poli a −5.4±j7.2. Poichè il sistema è di terzo ordine dobbiamo scegliere un terzo polo per la funzione ad anello chiuso. Poichè la funzione ad anello aperto possiede uno zero a -5, potremmo scegliere il polo in modo che i due si annullino. Per dimostrare però l’effetto di questo terzo polo, lo scegliamo leggermente diverso, a -5.1. L’equazione nel piano degli stati del sistema ad anello chiuso è data da 0 0 1 0 0 1 ẋ = 0 ·x + 0 ·r 1 −k1 −(4 + k2 ) −(5 + k3 ) h y = 100 20 0 i ·x + h 0 i ·r Partiamo dalla nuova matrice di stato 0 1 0 0 1 A−B·K = 0 −k1 −(4 + k2 ) −(5 + k3 ) e calcoliamo il polinomio caratteristico del sistema ad anello chiuso det(s · I − (A − B · K)) = s3 + (5 + k3 ) · s2 + (4 + k2 ) · s + k1 3 gennaio 2014 Ivan Furlan, Silvano Balemi 3 Progettazione di Controllori Capitolo 1. Controllori di stato Questo polinomio deve essere uguale al polinomio s3 + 15.9 · s2 + 136.08 · s + 413.1 = (s + 5.4 − j7.2) · (s + 5.4 + j7.2) · (s + 5.1) le radici del quale sono i poli desiderati. Il paragone dei coefficienti ci fornisce k1 = 413.1, k2 = 132.08 e k3 = 10.9. La simulazione del sistema ad anello chiuso cosı̀ ottenuto con la funzione di trasferimento Gtot = s3 20 · (s + 5) + 15.9 · s2 + 136.08 · s + 413.1 per una entrata gradino unitario fornisce la risposta data nella figura 1.3. Step Response 0.25 Amplitude 0.2 0.15 0.1 0.05 0 0 0.2 0.4 0.6 0.8 1 Time (sec.) Figura 1.3: Risposta al gradino unitario Otteniamo un %OS dell’11% e un Ts pari a 0.8 s. Rifacendo il calcolo con il terzo polo a -5 rispettiamo pienamente le specifiche. Possiamo però vedere come il valore finale tenda verso 0.24 e non a 1. Vedremo in seguito in che modo è possibile ristabilire anche le specifiche statiche. 1.2.1 Controllabilità Nel paragrafo precedente si è mostrato come gli autovalori della matrice A possono essere modificati a piacimento per mezzo di un’appropiata matrice K di retroazione degli stati. Questo è però solamente possibile solo per alcune classi di sistemi, detti controllabili. I sistemi controllabili sono quei sistemi in cui tutte le variabili di stato 4 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.2. Controllo di stato Progettazione di Controllori possono essere portate ad un valore desiderato tramite la grandezza in entrata u(t). Ad esempio il seguente sistema diagonale 0 a1 0 0 ẋ = 0 a2 0 · x + 1 · u 1 0h 0 a3 i y = 1 1 1 ·x + [0] · u rappresentabile graficamente come in figura 1.4 non risulta essere controllabile. Ina1 1/s @@e e @ a2 @ @ @e Re @ u e - e 1/s y @ a3 @ @ @e R e 1/s @ Figura 1.4: Sistema non controllabile fatti la variabile di stato x1 non può essere evidentemente influenzata dall’entrata u(t). Conseguentemente, secondo quanto affermato in precedenza, per questo sistema non si potrà trovare una matrice K tale da modificare gli autovalori della matrice A ad un valore desiderato. Purtroppo non è sempre cosi evidente capire dalla rappresentazione grafica se il sistema è controllabile o meno, ad esempio il sistema seguente diagonale 1 a1 0 0 ẋ = 0 a2 0 · x + 1 ·u 1 0 0 a 3 i h y = 1 1 1 ·x + [0] · u rappresentabile graficamente come in figura 1.5 apparirebbe essere controllabile sica1 @ 1/s @e e @ a2 @ @ 1/s @e R ey @ e e u @ a3 @ @ @e R e 1/s @ Figura 1.5: Sistema controllabile se e solo se a1 6= a2 6= a3 come tutti gli stati sono influenzati dall’entrata u. In realtà, come vedremo in 3 gennaio 2014 Ivan Furlan, Silvano Balemi 5 Progettazione di Controllori Capitolo 1. Controllori di stato seguito, il sistema in figura 1.5 è controllabile se e solamente se a1 6= a2 6= a3 . Conseguentemente, se e solamente se a1 6= a2 6= a3 , per questo sistema si potrà trovare una matrice K tale da modificare gli autovalori della matrice A ad un valore desiderato. In modo più formale, la controllabilità di un sistema è definita come segue Definizione 1.1 (Controllabilità) La controllabilità è la proprietà di un sistema che permette di portare le variabili di stato da un qualsiasi stato scelto all’origine con una velocità scelta risp. in un tempo dato per mezzo di un segnale in ingresso u(t). Se e solo se un sistema Lineare Tempo Invariante (LTI) è controllabile, le seguenti prorpietà risultano essere pure verificate: • Se un sistema LTI è controllabile allora è possibile portare le variabili di stato dall’origine ad un qualsiasi stato scelto per mezzo di un segnale in ingresso u(t). • Se un sistema LTI è controllabile allora è possibile portare le variabili da uno qualsiasi stato x(t1 ) ad al tempo t1 ad uno stato x(t2 ) desiderato al tempo t2 dato per mezzo di un segnale in ingresso u(t). • Ed infine, come già accennato sopra, se un sistema LTI è controllabile allora è possibile trovare una matrice K di retroazione degli stati, tale da portare tutti gli autovalori della matrice di stato A − B · K ad un valore desiderato. Come visto, dalla rappresentazione grafica di un sistema, non è sempre evidente determinare la controllabilità di un sistema. In taluni casi, quando uno stato è completamente staccato dal resto, è semplice affermare che tale stato non è di sicuro controllabile, ma, contrariamente, se lo stato è connesso all’entrata od ad altri stati, risulta molto difficile affermare qualcosa sulla controllabilità dello stesso. Fortunatamente esiste uno strumento matematico che permette di determinare la controllabilità di un sistema facilmente, la matrice di controllabilità C. La matrice di controllabilità C (Controllability Matrix) definita come h C = B, A · B, A2 · B, . . . , An−1 · B i (1.2) Un sistema è controllabile se e solo se la matrice di controllabilità C ha rango n (e quindi nel caso di una matrice quadrata, se è invertibile). 1.2.1.1 Spazio controllabile Lo spazio controllabile è il sottospazio di Rn che può essere raggiunto dall’origine con una velocità data, tramite un’entrata appropriata. Equivalentemente lo spazio controllabile è il sottospazio di Rn da dove può essere raggiunta l’origine con una velocità data, tramite un’entrata appropriata. 6 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.2. Controllo di stato Progettazione di Controllori La definizione matematica è data da spazio controllabile = {C · v | v ∈ Rn }, cioè lo spazio non nullo della matrice C. Esempio 1.2 Per il sistema descritto dall’equazione di stato 0 −1 1 0 0 −1 0 ẋ = A · x + B · u = ·x+ 1 ·u 1 0 0 −2 la matrice di controllabilità è 0 1 −2 2 1 C = B, A · B, A · B = 1 −1 1 −2 4 h i Siccome il determinante di C vale −1, il rango della matrice è 3. Il sistema è quindi controllabile. Otteniamo allora C · v = R3 Esempio 1.3 Dato è il sistema con la rappresentazione di stati ż = " 1 0 1 1 # y = h 1 0 i La matrice di controllabilità è ·z + ·z 0 0 C= 1 1 " 0 1 # ·u + [0] · u Dato v = [v1 , v2 ] otteniamo C · v = [0, v1 + v2 ]′ = α · [0, 1]′ . Lo spazio controllabile è quindi l’asse x2 . Ciò significa che è possibile tramite l’entrata u modificare il valore dello stato x2 ma non quello dello stato x1 . Esempio 1.4 Dato è il sistema con la rappresentazione di stati: ż = " 1 1 1 1 # y = h 0 1 i La matrice di controllabilità è C= ·z + ·z 1 2 1 2 " 1 1 # ·u + [0] · u Dato v = [v1 , v2 ] otteniamo C · v = [v1 + 2 · v2 , v1 + 2 · v2 ]′ . Lo spazio controllabile è quindi la diagonale α · [1, 1]′ . Ciò significa che è possibile modificare il valore degli stati tramite l’entrata u lungo questa diagonale ma che non è possibile influenzare il valore in direzione perpendicolare alla diagonale. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 7 Progettazione di Controllori Capitolo 1. Controllori di stato Esempio 1.5 Dato è il sistema con la rappresentazione di stati ż = " 1 1 1 4 # y = h 0 1 i ·z + ·z " 0 1 # ·u + [0] · u L’obiettivo è di spostare i due poli del sistema a −1. Per prima cosa controlliamo che il problema sia risolvibile. Per questo calcoliamo la matrice di controllabilità " # 0 1 C= . 1 4 Questa matrice ha determinante non nullo, quindi i poli possono essere portati entrambi a −1. Il polinomio caratteristico di A − B · K è det(s · I − (A − B · K)) = det s · I − = det " " 1 1 1 4 # − " 0 1 s−1 −1 −1 + k1 s − 4 + k2 # · #! h k1 k2 = s2 + s · (−5 + k2 ) + (3 + k1 − k2 ) !! i (1.3) Paragonando il polinomio caratterstico ottenuto con quello desiderato (s + 1) · (s + 1) = s2 + 2 · s + 1 otteniamo 2 = −5 + k2 1 = 3 + k1 − k2 e quindi k2 = 7 e k1 = 5. La risposta al gradino unitario del sistema ad anello chiuso con il controllore di stato è mostrata nella figura 1.6. Nota come il valore finale non sia corretto e come sia presente una sottoelongazione (undershoot): questa non è data da problemi di stabilità del sistema ad anello chiuso ma dalla presenza di uno zero nel semipiano complesso destro. 1.2.1.2 Stabilizzabilità La non controllabilità di un sistema può essere accettata in alcuni casi pratici. Un esempio è dato dai modi di vibrazioni parassite delle ali di un areoplano, che non devono necessariamente essere controllate (tuttalpiù si cercherà di non eccitare il modo parassita per esempio con l’aiuto di un filtro notch nell’attuazione). Evidentemente la condizione necessaria perchè la non controllabilità sia accettabile è che le parti non controllabili del sistema siano almeno stabili: in questo caso il sistema si dice stabilizzabile (se esiste una parte instabile del sistema questa dovrà quindi essere controllabile). La figura 1.7 indica la relazione tra controllabilità, stabilità e stabilizzabilità. 8 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.2. Controllo di stato Progettazione di Controllori Step Response 0.4 0.2 Amplitude 0 −0.2 −0.4 −0.6 −0.8 −1 0 5 10 15 Time (sec) Figura 1.6: Risposta al gradino unitario del sistema dato dalla rappresentazione di stato (1.3) In alcuni casi la stabilizzabilità potrebbe non essere sufficiente. Un modo non controllabile potrebbe essere stabile ma non abbastanza smorzato oppure troppo lento ed impedire il raggiugimento delle specifiche sul comportamento del sistema. 1.2.2 Determinazione dei coefficienti del controllore tramite trasformazione Abbiamo osservato come le equazioni per determinare i parametri del controllore di un sistema controllabile formino n equazioni lineari da risolvere. Una variante del metodo di soluzione sfrutta il fatto che queste n equazioni sono ancora più semplici se il sistema si trova nella forma normale del controllore. Dapprima consideriamo il caso nel quale il sistema sia già nella forma normale del controllore e cerchiamo poi in un secondo tempo di applicare la stessa procedura semplificata a sistemi che sono in forma generale. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 9 Progettazione di Controllori Capitolo 1. Controllori di stato stabile instabile non controllabile controllabile Figura 1.7: Un sistema è detto stabilizzabile se la parte instabile è controllabile (e quindi può essere resa stabile). Stabilizzabilità è legata alla zona inclusa nella linea tratteggiata. 1.2.2.1 Controllore a partire dalla forma normale del controllore Per un sistema nella forma normale del controllore A = 0 0 .. . 1 0 .. . 0 1 .. . ... ... .. . 0 0 .. . 0 0 0 ... 1 −a −a −a . . . −a 0 1 2 n−1 h i c c c . . . c C = 0 1 2 n−1 B= 0 0 .. . 0 1 D = [0] L’equazione caratteristica del processo è data da sn + an−1 · sn−1 + . . . + a1 · s + a0 = 0 Se chiudiamo il sistema riportando ogni variabile di stato all’entrata con il vettore K= Otteniamo allora la matrice A−B·K = 0 0 .. . h k1 k2 k3 . . . kn 1 0 .. . 0 1 .. . i ... ... .. . 0 0 .. . 0 0 0 ... 1 −(a0 + k1 ) −(a1 + k2 ) −(a2 + k3 ) . . . −(an−1 + kn ) L’ultima riga contiene i coefficienti del denominatore della funzione di trasferimento e quindi rappresenta anche il polinomio caratteristico del sistema ad anello chiuso. Questo risultato si ottiene anche risolvendo det(s · I − (A − B · K)) = sn + (an−1 + kn ) · sn−1 + . . . + (a1 + k2 ) · s + (a0 + k1 ) = 0 10 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.2. Controllo di stato Progettazione di Controllori Con i poli desiderati otteniamo Πi (s − pi ) = sn + dn−1 · sn−1 + . . . + d2 · s2 + d1 · s + d0 = 0 Con un paragone di coefficienti otteniamo infine di = ai + ki+1 i = 0, 1, 2, . . . , n − 1 da cui ricaviamo ki+1 = di − ai Una volta trovato il denominatore della funzione di trasferimento ad anello chiuso possiamo trovare il numeratore, sapendo che nella forma normale del controllore i coefficienti del numeratore coincidono con il vettore C. L’esempio 1.1 mostrava già questo caso particolare con un sistema dato nella forma normale del controllore. 1.2.2.2 Controllori per sistemi in rappresentazione generale Abbiamo precedentemente visto come sia relativamente semplice determinare i valori del vettore K quando il sistema è descritto nella forma normale del controllore. Non sempre però si ha il sistema descritto in questa forma. Per sfruttare il risultato appena visto si trasforma il sistema dalla forma data in quella normale del controllore mediante una matrice di trasformazione P , si determinano i coefficienti ki del vettore Kz e quindi si trasforma il vettore trovato nel Kx del sistema iniziale. Per far ciò è necessaria un’analisi più approfondita della trasformazione di un sistema verso la forma normale del controllore. Partiamo da un sistema non rappresentato nella forma normale del controllore ( ẋ = A · x + B · u y = C ·x+D·u Questo sistema è trasformabile nella forma normale del controllore mediante una trasformazione di variabili x=P ·z dove P = q′ q′ · A .. . q ′ · An−1 −1 e dove q ′ è l’ultima riga di Cx−1 (Cx è la matrice di controllabilità ottenuta a partire dalla rappresentazione con gli stati x). Il nuovo sistema assumerà la forma ( 3 gennaio 2014 ż = P −1 · A · P · z +P −1 · B · u y = C ·P ·z +D · u Ivan Furlan, Silvano Balemi 11 Progettazione di Controllori Capitolo 1. Controllori di stato Con il sistema nella forma normale del controllore sostituiamo u = −Kz · z + r ed otteniamo ż = P −1 · A · P · z − P −1 · B · Kz · z + P −1 · B · r = (P −1 · A · P − P −1 · B · Kz ) · z + P −1 · B · r Usando ora la trasformazione inversa z = P −1 · x ritorniamo alla rappresentazione originale nel piano degli stati e otteniamo ( ẋ = A · x − B · Kz · P −1 · x + B · r = (A − B · Kz · P −1 ) · x + B · r y = C · x − D · Kz · P −1 · x + D · r = (C − D · Kz · P −1 ) · x + D · r Da cui risulta che Kx = Kz · P −1 (1.4) Alternativamente il risultato dell’equazione (1.4) può essere anche ottenuto con il ragionamento seguente. Con la trasformazione di variabili nella forma normale del controllore otteniamo il controllore di stati a partire da z. Come è invece a disposizione solo x, trasformiamo gli stati x in z con P −1 ed applichiamo il controllore Kz . Ciò è però il risultato dell’equazione (1.4) (vedi anche figura 1.8). - r - eu B + 6 − D -e - R + 6 x - + C + ?-e y + A Kx z Kz P −1 Figura 1.8: Diagramma a blocchi con controllore di stati e trasformazione di stati Esempio 1.6 Dato è il sistema con la rappresentazione di stati ẋ = " 1 1 1 4 # y = h 0 1 i ·x + ·x " 0 1 # ·u + [0] · u L’obiettivo è di spostare i due poli del sistema a −1. Per prima cosa controlliamo che il problema sia risolvibile. Per questo calcoliamo la matrice di controllabilità " # 0 1 Cx = . 1 4 12 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.2. Controllo di stato Progettazione di Controllori Questa matrice ha determinante non nullo, quindi i poli possono essere portati entrambi a −1. Otteniamo allora: Cx−1 = " −4 1 1 0 # q ′ = [1 0] ⇒ e per la matrice di trasformazione: P −1 = " 1 0 1 1 # ⇒ P = " 1 0 −1 1 # La matrice di sistema nel nuovo sistema di coordinate è quindi P −1 ·A·P = " 0 1 −3 5 # Da questa matrice si legge il polinomio caratteristico p(s) = s2 − 5 · s + 3 mentre il polinomio caratteristico desiderato è p(s) = s2 + 2 · s + 1. Con il paragone di coefficienti delle matrici " 0 1 −3 − kz1 5 − kz2 # = " 0 1 −1 −2 # otteniamo la matrice di retroazione Kz = [ −2 7 ] e Kx = Kz · P −1 = [ 5 7 ] Per controllo calcoliamo la matrice del sistema con il controllore di stati: A − B · Kx = " 1 1 −4 −3 # Il polinomio caratteristico del sistema controllato è il determinante det(s · I − (A − B · Kx )) = s2 + 2 · s + 1 che corrisponde al risultato atteso con due poli a −1. Esercizio 1.1 Determinare Cz (la matrice di controllabilità ottenuta a partire dalla rappresentazione degli stati con z) in funzione di Cx e di P . Suggerimento: esprimere Cz in funzione di A e B. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 13 Progettazione di Controllori 1.2.3 Capitolo 1. Controllori di stato Eliminazione dell’errore statico Un controllore di stato modifica il comportamento del sistema modificando a piacimento i modi controllabili e osservabili. Sfortunatamente, un controllore di stato non garantisce errore statico nullo. Infatti, con il teorema del valore finale otteniamo per un sistema ad anello chiuso descritto da ( ẋ = (A − B · K) · x +B · r y = (C − D · K) · x +D · r grazie alla trasformata di Laplace dell’errore data da E(s) = R(s) − Y (s) e con Y (s) = Gcl (s) · R(s) l’espressione Gcl (s) = (C − D · K) · (s · I − (A − B · K))−1 · B − D si ottiene con il teorema del valore finale per un gradino unitario R(s) = 1/s lim e(t) = lim s · E(s) t→∞ s→0 = lim s · R(s) − Y (s) s→0 = lim s · R(s) − Gcl (s) · R(s) s→0 = lim s · I − (C − D · K) · (s · I − (A − B · K))−1 · B − D · R(s) s→0 = I + (C − D · K) · (A − B · K)−1 · B − D In effetti, se il processo è di tipo 0, e considerando che il controllore di stato non causa nessun cambiamento di tipo, l’espressione sopra è non nulla e il comportamento presenta un errore statico. 1.2.3.1 Precompensazione dell’errore statico con guadagno Per compensare l’errore statico, è possibile moltiplicare la funzione di trasferimento con un guadagno kprecomp . Per un gradino unitario R(s) = 1s l’errore statico diventa lim e(t) = lim s · E(s) t→∞ s→0 = lim s · R(s) − Y (s) s→0 = lim s · R(s) − Gcl (s) · kprecomp · R(s) s→0 = lim s · (I − Gcl (s) · kprecomp ) · R(s) s→0 = lim s · I − ((C − D · K) · (s · I − (A − B · K))−1 · B · +D) · kprecomp · s→0 = I + ((C − D · K) · (A − B · K)−1 · B − D) · kprecomp 14 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1 s 1.2. Controllo di stato Progettazione di Controllori L’errore statico limt→∞ e(t) è nullo quando l’espressione sopra vale 0, cioè quando kprecomp = ((C − D · K) · (−A + B · K)−1 · B + D)−1 Una derivazione alternativa parte dall’amplificazione statica del sistema. Questa è lim y(t)|r=1 = lim s · Y (s)|R(s)= 1 t→∞ s→0 s = lim s · Gcl (s) · R(s)|R(s)= 1 s→0 s = lim s · (C − D · K) · (s · I − (A − B · K))−1 · B + D · s→0 = (C − D · K) · (−A + B · K)−1 · B + D 1 s Per ottenere un guadagno statico unitario moltiplichiamo la funzione di trasferimento ad anello chiuso per un guadagno corrispondente all’inverso dell’amplificazione statica sopra, confermando il risultato trovato in precedenza. È evidente che tale metodo per eliminare l’errore statico è praticabile solo quando il processo è ben conosciuto, altrimenti l’errore statico non sarà eliminato. Talvolta, il guadagno di precompensazione può essere cosı̀ alto che una piccola variazione dei parametri del sistema può portare ad importanti errori statici. Il vantaggio di questo metodo è il fatto che l’ordine del sistema non è aumentato. 1.2.3.2 Controllore di stato con parte integrale Per poter eliminare l’errore statico anche in presenza di modellazioni imprecise è necessario aumentare il tipo del sistema. Questo è possibile aggiungendo al processo all’interno del rettangolo tratteggiato nella figura 1.9 non solamente la retroazione di stati ma anche un’ulteriore parte integrale. - r -e - R + 6 − xe- −Ke -e + 6 u − - B D -e - R + 6 x - + + C e -? y + A K Figura 1.9: Controllore di stati con parte integrale A causa della parte integrale otteniamo una nuova variabile di stato xe . L’errore tra il riferimento e l’uscita è la derivata di questa variabile e vale ẋe = r − y = r − C · x − D · u 3 gennaio 2014 Ivan Furlan, Silvano Balemi 15 Progettazione di Controllori Capitolo 1. Controllori di stato Le equazioni di stato del sistema esteso diventano ẋ = A · x + B · u ẋe = −C · x − D · u + r y = C ·x+D·u Riassemblando le matrici otteniamo " y ẋ ẋe # = " = A 0 −C 0 # " x xe # h i " x xe # · C 0 · + " # B −D ·u + " 0 I # ·r + [D] · u Il design di un controllore con parte integrale può essere allora ricondotto al design di un controllore per la coppia (Aext , Bext ) con Aext = " A 0 −C 0 # , " # (1.5) = −K · x − Ke · xe (1.6) Bext = B −D con la retroazione di stato " u = −Kext · xext = −[K Ke ] · x xe # Esempio 1.7 Dato il processo descritto da ẋ = y = " 0 1 −3 −5 h 1 0 # i ·x + " ·x 0 1 # ·u + [0] · u Il compito consiste nel costruire un controllore senza la parte integrale in modo da ottenere un %OS di 10% e un Ts di 0.5s. In seguito valutare l’errore statico per una entrata gradino unitario. Dalle specifiche dinamiche di sistema otteniamo due poli coniugati complessi a −8 ± j10.915, con un polinomio caratteristico pari a s2 + 16 · s + 183.137 Poichè il sistema è già descritto nella forma normale del controllore, il polinomio caratteristico con il feedback degli stati è s2 + (5 + k2 ) · s + (3 + k1 ) Dal paragone di coefficienti otteniamo K= 16 h k1 k2 i = h 180.137 11 Ivan Furlan, Silvano Balemi i 3 gennaio 2014 1.2. Controllo di stato Progettazione di Controllori L’equazione del sistema controllato è ẋ = (A − B · K) · x + B · r = " 0 1 −183.137 −16 h y = (C − D · K) · x + D · r = 1 0 # i ·x + " # 0 1 ·r ·x Usando l’equazione per l’errore statico per una entrata gradino unitario trovata nel capitolo precedente otteniamo " 0 1 lim = 1+C ·(A−B·K) ·B−D = 1+ 1 0 · t→∞ −183.137 −16 h −1 i #−1 " 0 · 1 # = 0.995 Esempio 1.8 Usando lo stesso sistema dell’esempio precedente, ripetere i passi dell’esempio precedente aggiungendo un controllore integrale. Con l’equazione trovata precedentemente per il sistema con integratore otteniamo la forma 0 x1 0 1 0 ẋ1 ẋ2 = −(3 + k1 ) −(5 + k2 ) −Ke · x2 + 0 · r 1 x −1 0 0 ẋ3 3 x 1 h i x 1 0 0 y = · 2 x3 Il comportamento desiderato trovato nell‘esempio precedente resta il medesimo con l’aggiunta di un polo supplementare molto distante, per esempio a −100 (altre scelte forse milgiori possono però essere effettuate). Il polinomio completo cosı̀ ottenuto (s + 100) · (s2 + 16 · s + 183.137) = s3 + 116 · s2 + 1783.137 · s + 18313.7 Il polinomio caratteristico del processo controllato è data da s3 + (5 + k2 ) · s2 + (3 + k1 ) · s − Ke Con un paragone di coefficienti troviamo k1 = 1780.137, k2 = 111 e Ke = −18313.7. Il sistema controllato ad anello chiuso diventa quindi 0 x1 0 1 0 ẋ1 ẋ2 = −1783.137 −116 18313.7 · x2 + 0 ·r 1 x −1 0 0 ẋ3 3 x 1 h i x 1 0 0 y = · 2 x3 L’errore statico è lim e(t) = 1 + t→∞ 3 gennaio 2014 h 1 0 0 i −1 0 1 0 · −1783.137 −116 18313.7 −1 0 0 Ivan Furlan, Silvano Balemi 0 · 0 =0 1 17 Progettazione di Controllori 1.3 Capitolo 1. Controllori di stato Osservatore di stato Si è visto precedentemente come sia possibile modificare il comportamento di un sistema retroazionando le variabili di stato del sistema. Queste grandezze possono essere misurate mediante sensori particolari: un giroscopio può per esempio essere utilizzato per misurare posizione e velocità di un veicolo in movimento. Non sempre è però disponibile una misura delle variabili di stato, sia per motivi fisici che per motivi di costo. Alcune grandezze possono essere calcolate partendo da altre misure (per esempio è possibile risalire alla velocità derivando le misure degli spostamenti). In ogni caso, se le variabili di stato non sono direttamente accessibili, è possibile stimare il loro valore ed utilizzare questa stima per costruire il controllore. La stima delle variabili di stato può essere fatta per mezzo di un osservatore (observer). Il punto di partenza per la stima è la conoscenza del modello del processo. Con il modello e con entrata data si hanno a disposizione i valori degli stati del modello. Questi possono allora essere utilizzati per controllare il processo al posto della misura dei veri stati del processo (vedi figura 1.10). r e -e + 6 − u - Processo P -y - Modello P - ŷ x̂ Controllore Figura 1.10: Processo controllato grazie alla stima degli stati Per valutare l’accuratezza della stima analizziamo un processo descritto dal sistema dato nel piano degli stati con ( ẋ = A · x +B · u y = C · x +D · u (1.7) e assumiamo la conoscenza perfetta del modello del processo ( x̂˙ = A · x̂ +B · u ŷ = C · x̂ +D · u dove gli stati x̂ sono la stima degli stati x. Calcolando l’errore ey = y − ŷ tra l’uscita misurata del processo e la stima dell’uscita del modello otteniamo ( ẋ − x̂˙ = A · (x − x̂) y − ŷ = C · (x − x̂) e definendo ex = x − x̂ le equazioni si semplificano nel modo seguente: ( 18 e˙x = A · ex ey = C · ex (1.8) Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.3. Osservatore di stato Progettazione di Controllori Si tratta di una equazione differenziale di tipo omogeneo, quindi con una risposta solo naturale (parte forzata nulla). Se il sistema è stabile, l’errore ex tra il valore reale e il valore stimato tende a 0. Questa differenza è dovuta alle condizioni iniziali diverse tra sistema e osservatore. Vediamo inoltre che la velocità di convergenza tra x e x̂ è la stessa della risposta al transiente del processo, visto che le equazioni caratteristiche dell’equazione (1.8) e dell’equazione (1.7) del processo sono uguali. 1.3.1 Progettazione dell’osservatore Se la velocità di convergenza è troppo lenta o addirittura se il sistema è instabile (e quindi l’errore di stima diverge), la stima degli stati ottenuta grazie ad un semplice modello non è sufficiente. In questo caso puè essere sfruttata la misura dell’uscita del processo e quindi retroazionato l’errore ey tra l’uscita misurata y e l’uscita stimata ŷ ( vedi figura 1.11). 6 verso il controllore - u B D ˙ + - e x̂- R x̂ 6 + + - + C -? e y +? e −6 ŷ + A L Figura 1.11: Osservatore come modello con ulteriore retroazione dell’errora di stima dell’uscita misurata L’errore y − ŷ è allora riportato sulle derivate delle variabili di stato mediante la matrice L. La descrizione del modello con retroazione diventa allora ( x̂˙ = A · x̂ + B · u + L · (y − ŷ) (1.9) ŷ = C · x̂ + D · u L’errore y − ŷ di stima dell’uscita uscita porta alle equazioni differenziali ( ẋ − x̂˙ = A · (x − x̂) − L · (y − ŷ) y − ŷ = C · (x − x̂) Sostituendo nella prima equazione ŷ con la seconda equazione otteniamo ( ẋ − x̂˙ = A · (x − x̂) − L · C · (x − x̂) y − ŷ = C · (x − x̂) e rappresentando in funzione di ey = y − ŷ e ex = x − x̂ ( 3 gennaio 2014 e˙x = (A − L · C) · ex ey = C · ex Ivan Furlan, Silvano Balemi (1.10) 19 Progettazione di Controllori Capitolo 1. Controllori di stato Si tratta nuovamente di una equazione differenziale di tipo omogeneo, quindi con una risposta solo naturale (parte forzata nulla). La differenza rispetto a prima è che la matrice di sistema è ora (A − L · C); questa può quindi essere modificata grazie ai parametri in L scelti a piacimento. Il modello cosı̀ modificato si chiama osservatore. Se tutti gli autovalori della matrice di sistema sono nel piano negativo complesso l’errore di stima sparirà, e tanto più velocemente quanto più questi autovalori sono distanti dall’asse immaginario. Gli autovalori della matrice di sistema sono la soluzione dell’equazione det(λ · I − (A − L · C)) = 0 Possiamo ora scegliere gli autovalori dell’osservatore in modo da avere stabilità e una risposta al transiente soddisfacente. Questi autovalori definiscono il nuovo polinomio caratteristico e portano alla determinazione dei valori del vettore L. In pratica si cercherà di posizionare i poli da 5 a 10 più veloci dei poli del controllo di stato. La procedura da usare per trovare i valori li desiderati è la seguente: 1. Rappresentare il processo con le variabili di stato 2. Trovare il polinomio caratteristico della matrice A − L · C 3. Scegliere la posizione desiderata dei poli e trovare il polinomio caratteristico del sistema dell’errore di stima degli stati 4. Tramite un paragone di coefficienti determinare i valori di li 5. Moltiplicare l’errore in uscita ey con L e inserire questi valori nella variazione della stima degli stati Può essere dimostrato che le n equazioni lineari nelle n variabili li hanno una soluzione per qualsiasi scelta dei poli desiderati solo se il sistema è osservabile. Se il sistema invece non è osservabile, alcuni poli del sistema originale non possono essere spostati. Esempio 1.9 Costruiamo un osservatore per il processo descritto dalla funzione di trasferimento G(s) = s+4 s+4 = 3 2 (s + 1)(s + 2)(s + 5) s + 8 · s + 17 · s + 10 La rappresentazione di stati del sistema è 20 0 ẋ = A · x + B · u = 1 0h ŷ = C · x̂ + D · u = 4 0 −10 0 −17 · x + 1 ·u 0 1 −8 i 0 0 1 · x̂ + [0] · u Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.3. Osservatore di stato Progettazione di Controllori Il sistema descrivente l’evoluzione dell’errore è quindi e˙x = (A − L · C) · ex ey = C · ex 0 = 1 h 0 = 0 0 −(10 + l1 ) 0 −(17 + l2 ) · ex 1 −(8 i + l3 ) 0 1 · ex Il polinomio caratteristico legato al sistema dell’errore è s3 + (8 + l3 ) · s2 + (17 + l2 ) · s + (10 + l1 ) = 0 Scegliamo ora il polinomio desiderato. Il sistema ha poli a -1 -2 e -5. Per garantire che la velocità di risposta dell’osservatore sia superiore a quella del sistema, scegliamo dei poli per il feedback dell’osservatore più a sinistra, a -10, -15 e -20. Il polinomio caratteristico desiderato diventa allora s3 + 45 · s2 + 650 · s + 3000 = 0 Da qui otteniamo per questa rappresentazione di stati i coefficienti l1 = 2990, l2 = 633 e l3 = 37. Per illustrare il comportamento dell’osservatore presentiamo i risultati di una simulazione. Il processo ha condizioni iniziali nulle (cioè x(0) = [ 0, 0, 0 ]), mentre l’osservatore ha un valore iniziale dello stato x̂(0) = [ 0, 4, 0 ]. Dalla figura 1.12 possiamo vedere come l’osservatore risponda molto più lentamente senza il feedback, cioè nel caso che l’osservatore sia unicamente una copia del processo. Il feedback dell’osservatore permette di portare al più presto a zero le differenze dovute a condizioni iniziali differenti. 1.3.2 Osservabilità Consideriamo un sistema dato nella forma parallela della figura ??. Abbiamo visto come la controllabilità sia condizione necessaria per poter influenzare tutti gli stati di un sistema. Dualmente è possibile determinare il valore di una variabile di stato solo se questa è in un qualche modo legata all’uscita y del sistema oppure, in altre parole, se è possibile dedurre il comportamento delle variabili di stato osservando l’uscita del sistema. La figura 1.13 mostra un sistema in cui tutte le variabili di stato non sono osservabili dall’uscita, poichè non tutte collegate ad essa. Figura 1.14 mostra invece un sistema in cui le variabili,se e solo se a1 6= a2 6= a3 , sono osservabili e quindi stimabili dall’uscita. Definizione 1.2 (Osservabilità) L’osservabilità è la proprietà di un sistema che permette di determinare uno stato con precisione desiderata in un tempo determinato a partire dalla misura dell’entrata u(t) e dell’uscita y(t) del sistema. In altre parole se il vettore degli stati iniziali x(t0 ) può essere determinato da misurazioni di u(t) e y(t) fatte in un intervallo di tempo finito, il sistema è detto osservabile, 3 gennaio 2014 Ivan Furlan, Silvano Balemi 21 Progettazione di Controllori Capitolo 1. Controllori di stato Initial Condition Results 0.35 0.3 0.25 Amplitude 0.2 0.15 0.1 0.05 0 −0.05 −0.1 0 0.5 1 1.5 2 2.5 3 3.5 4 Time (sec.) Figura 1.12: Paragone dell’errore di risposta dell’osservatore inteso come copia del processo (linea continua) con l’errore dela risposta dell’osservatore modificato (linea tratteggiata). Lo stato iniziale dell’osservatore non coincide con lo stato iniziale del processo. altrimenti non lo è. Analogamente al caso della controllabilità, dalla rappresentazione grafica non risulta in tutti i casi evidente determinare l’osservabilità del sistema. Anche in questo caso esiste uno strumento matematico che è chiamato matrice di controllabilità C. La matrice di osservabilità O (Observability matrix) definita come O= C C ·A C · A2 .. . C · An−1 a1 1/s @@e e a2 @ @e u e - e 1/s @ a3 @ @ @e @ R e 1/s - (1.11) - ey Figura 1.13: Sistema non osservabile 22 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.3. Osservatore di stato Progettazione di Controllori a1 1/s @@e e @ a2 @ @ @e Re @ u e - e 1/s y @ a3 @ @ @e R e 1/s @ Figura 1.14: Sistema osservabile se e solo se a1 6= a2 6= a3 Un sistema è osservabile se e solo se la matrice di osservabilità O ha rango n (e quindi nel caso di una matrice quadrata, se è invertibile). Esempio 1.10 Un sistema è descritto da 0 0 1 0 0 1 · x + 0 ẋ = 0 ·u 1 −4 h−3 −2 i y = 0 5 1 ·x + [0] · u La matrice di osservabilità di questo sistema è 0 5 −1 C 3 O = C · A = −4 −3 −12 −13 −9 C · A2 Poichè det(O) = −344 6= 0 la matrice di osservabilità ha rango 3 e quindi il sistema è osservabile. È importante costruire sempre la matrice di osservabilità e non trarre conclusioni analizzando soltanto il sistema superficialmente. In questo esempio si sarebbe potuto credere che il sistema non fosse osservabile per il fatto che la matrice C conteneva uno 0 per x1 . 1.3.2.1 Spazio non osservabile Lo spazio non osservabile è il sottospazio di Rn che non permette di essere determinato a partire dall’uscita del sistema. La definizione matematica è data da spazio non osservabile = {v ∈ Rn | O · v = 0}, cioè lo spazio nullo della matrice O. Esempio 1.11 Dato è il sistema con la rappresentazione di stati 3 gennaio 2014 ż = " 1 0 1 1 # y = h 1 0 i ·z + ·z " 0 1 # ·u + [0] · u Ivan Furlan, Silvano Balemi 23 Progettazione di Controllori La matrice di osservabilità è Capitolo 1. Controllori di stato 1 O= 1 0 0 Dato v = [v1 , v2 ] otteniamo O ·v = [v1 , v1 ]′ = 0, cioè v1 = 0 e v2 qualsiasi. Lo spazio non osservabile è quindi l’asse v2 . Ciò significa che è possibile stimare il valore dello stato x1 ma non quello dello stato x2 . 1.3.2.2 Rilevabilità (detectability) La non osservabilità di un sistema può essere accettata in alcuni casi pratici. Un esempio è dato dai modi di vibrazioni parassite delle ali di un areoplano, che non possono essere misurati (perchè non è previsto un apposito sensore). Non è possibile sapere quanto vibrano le ali ma si sa che queste resteranno limitate senza aumentare a dismisura. Evidentemente la condizione necessaria perchè la non osservabilità sia accettabile è che le parti non osservabili del sistema siano almeno stabili (cosı̀ che gli stati corrispondenti non divergano senza che ce se ne accorga): in questo caso il sistema si dice rilevabile stabilizzabile (se esiste una parte instabile del sistema questa dovrà quindi essere osservabile). La figura 1.15 indica la relazione tra osservabilità, stabilità e rilevabilità. stabile instabile non osservabile osservabile Figura 1.15: Un sistema è detto rilevabile se la parte non osservabile è stabile. Rilevabilità è legata alla zona inclusa nella linea tratteggiata. In alcuni casi la rilevabilità potrebbe non essere sufficiente. Un modo non osservabile potrebbe essere stabile ma non abbastanza smorzato oppure troppo lento ed impedire il raggiugimento delle specifiche sul comportamento della parte non osservabile. 1.3.3 Principio di separazione Il processo controllato con un osservatore è presentato nella figura 1.16. Il dettaglio con l’esplosione in rappresentazione di stato dello schema a blocchi del processo con controllore di stato e osservatore è dato nella figure 1.17 24 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.3. Osservatore di stato Progettazione di Controllori r e -e u - + 6 − - -y Processo Osservatore x̂ Controllore Figura 1.16: Processo controllato con un osservatore ed un controllore di stato - r +e −6 u - B D -e - R + 6 x - + ? -e y C + C + ŷ + − + - A - u - B ˙ + - e x̂- R 6 + + K D x̂ - ? - e -e y + A L Figura 1.17: Processo controllato con controllore di stato e osservatore L’osservatore con controllore di stato con parte integrale per l’eliminazione dell’errore statico è presentato nella figura 1.18. La rappresentazione di stato del sistema completo con il processo, l’osservatore (completo) ed il controllore di stato (senza parte integrale per l’eliminazione dell’errore statico) è data dalle equazioni ẋ ˙ x̂ 3 gennaio 2014 y = = A L·C −B · K x B · + ·r A−L·C −B·K x̂ B x [ C −D · K ] · +[D] · r x̂ Ivan Furlan, Silvano Balemi 25 Progettazione di Controllori Capitolo 1. Controllori di stato - r- e - R + 6 − xe- +e −6 −Ke u - B -e - R + 6 x - + -? e y C + C + ŷ + − + - A - u B K D D ˙ + - e x̂- R x̂ 6 + + - -? e - e y + A L Figura 1.18: Controllore di stati con osservatore e integratore per la compensazione dell’errore statico Determinando il polinomio caratteristico del sistema ad anello chiuso det " s·I −A B·K −L · C s · I − A + L · C + B · K det " I −I 0 I det " s·I −A+L·C 0 −L · C s·I −A+B ·K # " · #! =0 s·I −A B·K −L · C s · I − A + L · C + B · K #! # " · I I 0 I #! =0 =0 otteniamo |s · I − A + B · K| · |s · I − A + L · C| = 0 ⇓ |s · I − (A − B · K)| = 0, |s · I − (A − L · C)| = 0 Ciò significa che i modi del sistema ad anello chiuso sono i modi dell’osservatore più i modi del controllore di stato (che sono anche i poli della funzione di trasferimento del sistema ad anello chiuso). In altre parole, le progettazioni del controllore di stato e dell’osservatore sono indipendenti (e possono essere eseguite in maniera separata). 26 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.3. Osservatore di stato 1.3.4 Progettazione di Controllori Dualità di controllore ed osservatore Si può notare come il problema di scegliere K cosı̀ che A−B ·K presenti n autovalori desiderati è simile al problema di scegliere L cosı̀ che A − L · C abbia n autovalori desiderati. Infatti i due problemi sono indentici notando che 1. i poli di A − L · C sono i poli di (A − L · C)′ = A′ − C ′ · L′ , 2. trovare B cosı̀ che A − B · K abbia n autovalori desiderati è come trovare L′ cosı̀ che A′ − C ′ · L′ abbia n autovalori desiderati Il design di un osservatore è quindi il design di un controllore dove A viene sostituito con A′ , B con C ′ e dove il risultato L è K′ . In matlab i comandi L=acker(A’,C’,p)’ oppure L=place(A’,C’,p)’ forniscono quindi la matrice L a partire dalle matrici A e C e da un vettore p contenente i poli desiderati. 1.3.5 Determinazione dei coefficienti dell’osservatore tramite trasformazione Abbiamo osservato come le equazioni per determinare i parametri dell’osservatore formino n equazioni lineari da risolvere. Una variante del metodo di soluzione sfrutta il fatto che queste n equazioni sono ancora più semplici se il sistema si trova nella forma normale dell’osservatore Dapprima consideriamo il caso nel quale il sistema sia già nella forma normale dell’osservatore e cerchiamo poi in un secondo tempo di applicare la stessa procedura semplificata a sistemi che sono in forma generale. 1.3.5.1 Osservatore a partire dalla forma normale dell’osservatore Per un sistema nella forma normale dell’osservatore la matrice di sistema A−L·C = 0 ... 1 ... .. . . . . 0 ... 0 ... 0 0 −a0 0 0 −a1 .. .. .. . . . 1 0 −an−2 0 1 −an−1 − l1 l2 .. . ln−1 ln h · 0 0 ... 0 1 i si simplifica in A−L·C = 3 gennaio 2014 0 ... 1 ... .. . . . . 0 ... 0 ... 0 0 −(a0 + l1 ) 0 0 −(a1 + l2 ) .. .. .. . . . 1 0 −(an−2 + ln−1 ) 0 1 −(an−1 + ln ) Ivan Furlan, Silvano Balemi 27 Progettazione di Controllori Capitolo 1. Controllori di stato L’equazione caratteristica di (A − LC) è sn + (an−1 + ln ) · sn−1 + (an−2 + ln−1 ) · sn−2 + . . . + (a1 + l2 ) · s + (a0 + l1 ) = 0 Ora uguagliamo questa equazione con quella dei poli ad anello chiuso dell’osservatore, scelta in base alla risposta al transiente desiderata. Assumendo che questa equazione caratteristica sia descritta da sn + dn−1 · sn−1 + dn−2 · sn−2 + . . . + d1 · s + d0 = 0 possiamo trovare i coefficienti di L direttamente da li+1 = di − ai i = 0, 1, 2, . . . , n − 1 L’esempio 1.9 in effetti mostrava già questo caso particolare con un sistema dato nella forma normale dell’osservatore. 1.3.5.2 Osservatori per sistemi in rappresentazione generale Abbiamo precedentemente visto come sia relativamente semplice determinare i valori del vettore L quando il sistema è descritto nella forma normale dell’osservatore. Non sempre però si ha il sistema descritto in questa forma. Per sfruttare il risultato appena visto si trasforma il sistema dalla forma data in quella normale di osservabilità mediante una matrice di trasformazione P , si determinano i coefficienti li del vettore Lz e quindi si trasforma il vettore trovato nel Lx del sistema iniziale. Partiamo allora da un sistema non in forma normale dell’osservatore descritto da ( ẋ = A · x +B · u y = C · x +D · u Questo sistema è trasformabile nella forma normale dell’osservatore mediante una trasformazione di variabili x=P ·z (1.12) dove P = h q, A · q, . . . , An−1 · q i e dove q è l’ultima colonna di Ox−1 (Ox è la matrice d’osservabilità ottenuta a partire dalla rappresentazione con gli stati x). Nota che P è determinato senza un’inversione come è il caso per la trasformazione verso la forma normale del controllore. Come abbiamo precedentemente visto, il nuovo sistema assumerà la forma ( ż = P −1 · A · P · z +P −1 · B · u y = C ·P ·z +D · u Dopo aver trasformato il sistema nella forma normale dell’osservatore possiamo trovare Lz risolvendo ( 28 e˙z = (P −1 · A · P − Lz · C · P ) · ez ey = C · P · ez Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.3. Osservatore di stato Progettazione di Controllori con z = P −1 · x e troviamo ez = P −1 · ex . Sostituendo questa eguaglianza nell’ultima equazione trovata otteniamo ( e˙x = (A − P · Lz · C) · ex ey = C · ex Da cui risulta che Lx = P · Lz (1.13) Alternativamente il risultato dell’equazione (1.13) può essere anche ottenuto con il ragionamento seguente. Con la trasformazione di variabili nella forma normale dell’osservatore otteniamo una correzione di ż (vedi anche figura 1.11). Come è invece ẋ che è accessibile nel nostro osservatore applichiamo prima la correzione Lz per ż e poi la trasformiamo in una correzione in ẋ con P . Infatti dall’equazione (1.12) otteniamo ẋ = P · ż. Ciò ci conduce quindi al risultato dell’equazione (1.13) (vedi anche figura 1.19). - verso 6 D ˙ + - e x̂- R u B x̂ - 6 + + il controllore + ŷ + − ? - e -e C y + A ˙ P correzione per ẑ Lz Lx Figura 1.19: Diagramma a blocchi di osservatore con trasformazione di stati Esempio 1.12 Dato è il sistema con la rappresentazione di stati ẋ = " 1 1 1 4 # y = h 0 1 i ·x + ·x " 0 1 # ·u + [0] · u L’obiettivo è di determinare un osservatore tale che il sistema dell’errore presenta due poli a −10. Per prima cosa controlliamo che il problema sia risolvibile. Per questo calcoliamo la matrice di osservabilità " # 0 1 Ox = . 1 4 Questa matrice ha determinante non nullo, quindi i poli dell’osservatore possono essere portati entrambi a −10. Otteniamo allora: Ox−1 3 gennaio 2014 = " −4 1 1 0 # ⇒ q= " 1 0 # Ivan Furlan, Silvano Balemi 29 Progettazione di Controllori Capitolo 1. Controllori di stato e per la matrice di trasformazione: P = " 1 1 0 1 # ⇒ P −1 = " 1 −1 0 1 # La matrice di sistema nel nuovo sistema di coordinate è quindi " P −1 · A · P = 0 −3 1 5 # Da questa matrice si legge il polinomio caratteristico p(s) = s2 − 5 · s + 3 mentre il polinomio caratteristico desiderato è p(s) = s2 + 20 · s + 100. Con un paragone di coefficienti delle matrici " 0 −3 − lz1 1 5 − lz 2 # " = 0 −100 1 −20 # otteniamo la matrice di retroazione Lz = " 97 25 e Lx = P · Lz = " # 122 25 # Per controllo calcoliamo la matrice del sistema dell’errore: A − Lx · C = " 1 −121 1 −21 # Il polinomio caratteristico del sistema dell’errore è il determinante det(s · I − (A − Lx · C)) = s2 + 20 · s + 100 che corrisponde al risultato atteso con due poli a −10. Esercizio 1.2 Determinare Oz (la matrice di osservabilità ottenuta a partire dalla rappresentazione degli stati con z) in funzione di Ox e di P . Suggerimento: esprimere Oz in funzione di A e C. 1.3.6 Forma lineare di un controllore di stato con osservatore Le equazioni (1.9) delll’osservatore corrispondente alla figura 1.11 possono essere riscritte nella rappresentazione di stato 30 x̂˙ = [A − L · C] · x̂ +[B − L · D, L] · " u y # x̂ = " u y # [I] · x̂ Ivan Furlan, Silvano Balemi +[0, 0] · (1.14) 3 gennaio 2014 1.4. Osservatore ridotto Progettazione di Controllori L’osservatore è quindi un sistema lineare che ha come entrate u e y e fornisce come uscita la stima x̂ degli stati x. Il controllore formato dall’osservatore e dalla retroazione di stato (lineare) è anch’esso un sistema lineare. Con il controllore di stato dato dall’equazione u = −K · x̂ + r si ottiene per il controllore di stato con osservatore la rappresentazione di stato x̂˙ = (A − L · C − B · K + L · D · K) · x̂ +[B − L · D, L] " r y # u = " r y # −K · x̂ +[1, 0] (1.15) Il controllore di stato con osservatore è quindi un sistema lineare che ha come entrate il riferimento r e l’uscita misurata y e che fornisce come uscita l’attuazione u (vedi figura 1.20) Le due funzioni di trasferimento corrispondenti sono quindi U(s)/R(s) r - controllore + osservatore 6 - u - processo y - U(s)/Y (s) Figura 1.20: Controllore di stato con osservatore come sistema lineare U(s) = −K · (s · I − A + L · C + B · K − L · D · K)−1 · L Y (s) e U(s) = −K · (s · I − A + L · C + B · K − L · D · K)−1 · (B − L · D) + I R(s) 1.4 1.4.1 Osservatore ridotto Sistema con D = 0 Molto spesso diverse misure di un sistema sono disponibili. Non è quindi necessario stimare tutti gli stati ma solo una parte di essi, sfruttando le misure disponibili per gli altri. Il sistema considerato è ( 3 gennaio 2014 ẋ = A · x +B · u y = C ·x Ivan Furlan, Silvano Balemi (1.16) 31 Progettazione di Controllori Capitolo 1. Controllori di stato dove l’uscita y rappresenta le diverse misure disponibili. Possiamo allora definire una matrice C P = (1.17) T dove la sottomatrice T è scelta cosı̀ che la matrice P abbia rango pieno (sia cioè invertibile). Con questa matrice di trasformazione abbiamo quindi gli stati C C ·x P ·x= ·x= = T T ·x " y w # cioè x=P −1 · " y w # (1.18) Possiamo allora riscrivere il sistema (1.16) come " ẏ ẇ # y = P ·A·P −1 = −1 C ·P · " y w # · " y w # +P · B · u = ˙ " A11 A12 A21 A22 h = ˙ # " y w # " y w # · I 0 i · + " B1 B2 # ·u e interpretando y come entrata dove ẇ = A22 · w " yr = A12 0 # h + B2 A21 ·w + " B1 A11 0 I " ẏ y # yr = " u y # # " u y # i · · L’osservatore per questo sistema è dato dalle seguenti equazioni ŵ˙ = ŷr = h + B2 A21 A22 · ŵ " A12 0 # · ŵ + " B1 A11 0 I " u y # # " u y # i · · +L · (yr − ŷr ) che si semplifica in ed in 32 ŵ˙ = ŷr = A22 · ŵ " ŵ˙ = ŷr = A12 0 # A12 0 # + B2 A21 · ŵ + A22 · ŵ " h " B1 A11 0 I h + B2 A21 · ŵ + " B1 A11 0 I " u y # # " u y # " u y # # " u y # i · · i · · Ivan Furlan, Silvano Balemi +L · " A12 0 # · (w − ŵ) +L1 · A12 · (w − ŵ) (1.19) 3 gennaio 2014 1.4. Osservatore ridotto Progettazione di Controllori dove L = [L1 , L2 ]. Calcolando l’evoluzione dell’errore ew = w − ŵ otteniamo ẇ − ŵ˙ = A22 · (w − ŵ) − L1 · A12 · (w − ŵ) ẇ − ŵ˙ = (A22 − L1 · A12 ) · (w − ŵ) ėw = (A22 − L1 · A12 ) · ew (1.20) Con la matrice L1 possiamo quindi determinare i poli della matrice A22 − L1 · A12 (senza dimostrazione: se la coppia (A, C) è osservabile, anche la coppia (A22 , A12 ) lo è: i poli possono essere scelti liberamente senza restrizioni). L’osservatore diventa quindi come in figura 1.21 u- B -e - R + 6 x - y C - + P −1 x̂- A L1 · A12 B2 w A21 + - + @ R @ -? e - R + 6 ŵ + A22 − L1 · A12 Figura 1.21: Diagramma a blocchi dell’osservatore ridotto: stato w non disponibile! Notiamo però che il segnale w non è a disposizione dell’osservatore. Non può chiaramente essere derivato da x con l’equazione (1.18), siccome è x stesso che vogliamo stimare. Per risolvere il problema possiamo però introdurre la trasformazione di variabili: v = ŵ − L1 · y (1.21) La prima equazione in (1.19) dell’osservatore diventa allora h i v̇ + L1 · ẏ = A22 · (v + L1 · y) + B2 A21 · " u y # − L1 · A12 · ((v + L1 · y) − w) v̇ = (A22 − L1 · A12 ) · v + (A22 · L1 + A21 − L1 · A12 · L1 ) · y + B2 · u +L1 · A12 · w − L1 · ẏ 3 gennaio 2014 Ivan Furlan, Silvano Balemi 33 Progettazione di Controllori Capitolo 1. Controllori di stato Finalmente sostituendo ẏ = A12 · w + A11 · y + B1 · u e riscrivendo assieme le equazioni (1.21) e (1.18) per l’osservatore otteniamo v̇ = (A22 − L1 · A12 ) · v + (B2 − L1 · B1 ) · u +(−L1 · A11 − L1 · A12 · L1 + A21 + A22 · L1 ) · y x̂ = P −1 · " y v + L1 · y # (1.22) Il diagramma a blocchi completo è dato nella figura 1.22. u - B -e - R + 6 y x C - + A x̂- ŵ −L1 ·A11 − L1 ·A12 ·L1 +A21 + A22 ·L1 - P −1 + e B2 − L1 · B1 - ? + 6 + - R - L1 + -e 6 + v A22 − L1 · A12 Figura 1.22: Diagramma a blocchi dell’osservatore ridotto 1.4.2 Sistema con D 6= 0 Nel caso il sistema abbia la rappresentazione di stati ( ẋ = A · x +B · u y = C · x +D · u l’osservatore ridotto è identico a quello visto precedentemente con la sola sostituzione di y con y − D · u nella formula (1.22) (vedi figura 1.23). In forma compatta l’equazione (1.22) può infine essere riscritta, tenendo conto anche di D 6= 0, come un semplice sistema lineare 34 v̇ =  · v +B̂ · " u y # x̂ = Ĉ · v +D̂ · " u y # Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.4. Osservatore ridotto Progettazione di Controllori - u - B D + ?y x C +- e -e - R + 6 + A - -? e + D −L1 ·A11 − L1 ·A12 ·L1 +A21 + A22 ·L1 - - − + B2 − L1 · B1 - e? + 6 + - L1 P −1 x̂- +- eŵ 6 + v - R A22 − L1 · A12 Figura 1.23: Diagramma a blocchi dell’osservatore ridotto con D 6= 0 dove  = [−L1 , I] · P · A · P −1 · " # 0 I " B̂ = [−L1 , I] · P · B, P · A · P Ĉ = P −1 · D̂ = P −1 · −1 · " I L1 ## " · # " 0 I " 0 I 0 L1 # " · I 0 −D I I 0 −D I # # (esercizio: deriva questa equazione dall’equazione (1.22) e da D 6= 0). Nota come anche l’osservatore assuma la stessa struttura presentata nella figura 1.17 per l’osservatore completo. La differenza sostanziale è data dall’ordine dell’osservatore. Esempio 1.13 Il pendolo inverso linearizzato ha la descrizione 3 gennaio 2014 ẋ = " 0 1 g/l 0 # θ = h 1/l 0 i ·x + " ·x − 1/l 0 −g/l h # i ·u ·u Ivan Furlan, Silvano Balemi 35 Progettazione di Controllori Capitolo 1. Controllori di stato Solo l’angolo θ è misurabile. Con la matrice di trasformazione P = otteniamo " ẏ ẇ # θ = = " " 1/l 0 0 1 # 0 1/l g 0 # " y w # h i " y w # 1 0 · · + " 0 −g/l # h i − 1/l ·u ·u Secondo la formula (1.22) l’osservatore diventa L2 L1 v̇ = − · v + g − 1 l l x̂ = " l 0 0 1 # ! · θ+ u g − ·u l l u u l· θ+ l l · u = u v + L1 · θ + v + L1 · θ + l l θ+ Nota che in questo caso L1 è uno scalare. 1.5 Controllore di stato discreto nel tempo Esattamente come con un sistema continuo è possibile determinare una retroazione di stati K cosı̀ che la matrice di sistema (Φ(T ) − Γ(T ) · K) presenti gli autovalori desiderati. La rappresentazione di stato diventa ( xk+1 = Φ·xk + Γ·uk = Φ·xk + Γ·(−K ·xk + rk ) = (Φ − Γ·K)·xk + Γ·rk y = C ·xk + D·uk = C ·xk + D·(−K ·xk + rk ) = (C − D·K)·xk + D·rk - rk- euk Γ + 6 − D - e - −1 + 6 z xk + - + C e -k -? y + Φ K Figura 1.24: Controllore di stati discreto Esistono due possibilità per la scelta dei modi del sistema controllato: 36 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.5. Controllore di stato discreto nel tempo Progettazione di Controllori 1. scelta sul piano complesso z utilizzando le curve con ωn , ξ e le curve con le risposte. 2. scelta dei poli del processo controllato nel piano di Laplace s e trasformazione in un secondo tempo nei poli del piano z con la formula zi = esi ·T La condizione di controllabilità necessaria per la scelta a piacimento dei poli del sistema controllato è identica a quella di un sistema continuo (rango pieno della matrice di controllabilità con Φ al posto di A e Γ(T ) al posto di B). 1.5.1 Osservatore discreto nel tempo Se gli stati non sono a disposizione di un controllore di stati, questi possono essere stimati con un osservatore. Esattamente come nel caso continuo una correzione basata su una moltiplicazione dell’errore della stima dell’uscita con una matrice L permette di scegliere gli autovalori della matrice (Φ(T )−L·C) del sistema dell’errore, cioè di determinare l’evoluzione dell’errore della stima degli stati (vedi figura 1.25). Il sistema dell’errore di stima diventa allora: (ex )k+1 = (Φ − L · C) · (ex )k (ey )k = C · (ex )k - uk Γ x̂k+1 + -e 6 + + verso 6 il controllore D z −1 x̂k - C + ŷ + − e k- e k -? y + Φ L Figura 1.25: Osservatore discreto La scelta dei poli del sistema discreto dell’errore ricalca la strada della scelta dei poli del sistema discreto con controllore di stati con le due alternative: 1. scelta sul piano complesso z utilizzando le curve con ωn e ξ, 2. scelta dei poli del processo controllato nel piano di Laplace s e trasformazione in un secondo tempo nei poli del piano z con la formula zi = esi ·T . La condizione di osservabilità necessaria per la scelta a piacimento dei poli del sistema dell’errore è identica a quella di un sistema continuo (rango pieno della matrice di osservabilità con Φ al posto di A). La realizzazione di un osservatore discreto ridotto è analoga a quella di un osservatore continuo ridotto. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 37 Progettazione di Controllori 1.5.2 Capitolo 1. Controllori di stato Controllore di stato discreto nel tempo con parte integrale Con l’aggiunta di un termine in entrata pari a T z−1 è possibile dare al sistema compensato un comportamento di tipo integrale, annullando l’errore statico. - u rk- e- T -ek −K e + 6 z−1 + 6 − − - Γ D - e - −1 + 6 z xk - + C + ? -k -e y + Φ K Figura 1.26: Sistema discreto con compensazione dell’errore statico Il calcolo della retroazione viene fatto costruendo una matrice Φext = " ed una nuova matrice Γext = Φ 0 −C · T 1 " Γ −D · T # # Il comando MATLAB place permette di determinare i coefficienti di feedback partendo dai poli desiderati. Nel caso sia considerata sufficiente una precompensazione della referenza notiamo che Y (z) = ((C − D · K) · (z · I − (Φ − Γ · K))−1 · Γ + D) · R(z) e che lim yk |rk =1 = limz→1 (z − 1) · Y (z) k→∞ = limz→1 (z − 1)((C − D · K) · (z · I − Φ + Γ · K)−1 · Γ + D) · = (C − D · K) · (I − Φ + Γ · K)−1 · Γ + D r·z z−1 Da qui la necessità di una precompensazione Kprecomp = ((C − D · K) · (I − Φ + Γ · K)−1 · Γ + D)−1 38 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.5. Controllore di stato discreto nel tempo 1.5.3 Progettazione di Controllori Design a tempo finito (deadbeat) 1.5.3.1 Calcolo del valore di consegna Consideriamo il sistema discreto nel tempo dato dalle equazioni di stato ( xk+1 = Φ(T ) · xk + Γ(T ) · uk yk = C · xk + D · uk (1.23) Con le condizioni iniziali x0 possiamo determinare x1 x2 x3 .. . = Φ · x0 + Γ · u0 = Φ · x1 + Γ · u1 = Φ · x2 + Γ · u2 .. . = Φ2 · x0 + Φ · Γ · u0 + Γ · u1 = Φ3 · x0 + Φ2 · Γ · u0 + Φ · Γ · u1 + Γ · u2 .. . xm = Φ · xm + Γ · um = Φm · x0 + Φm−1 · Γ · u0 + . . . + Φ · Γ · um−2 + Γ · um−1 Sostituendo il valore xm con il valore stazionario x∞ (l’indice ∞ indica le grandezze stazionarie) otteniamo la relazione Γ · um−1 + Φ · Γ · um−2 + . . . + Φm−1 · Γ · u0 = x∞ − Φm · x0 oppure in forma matriciale h m−1 Γ, Φ · Γ, . . . , Φ ·Γ i · um−1 um−2 .. . u0 = x∞ − Φm · x0 Per semplicità ci limiteremo ad analizzare il caso SISO (single input, single output). Per i casi con entrate oppure uscite multiple ci si può riferire a testi specifici. 1.5.3.2 Controllore deadbeat per sistema SISO Nel caso di un sistema SISO è possibile definire una matrice di controllabilità Cn×n = Il sistema è controllabile se h Γ, Φ · Γ, . . . , Φn−1 · Γ i rango(C) = n In questo caso è possibile determinare la serie u0 , u1 , . . . , un−1 che porta il sistema da un qualsiasi stato iniziale x0 ad uno stato finale scelto x∞ in n campionamenti. Infatti possiamo riscrivere la formula precedente con m = n come segue: C · un−1 un−2 .. . 3 gennaio 2014 u0 m = x∞ − Φ · x0 ⇒ un−1 un−2 .. . u0 = C −1 · (x∞ − Φn · x0 ) Ivan Furlan, Silvano Balemi 39 Progettazione di Controllori Capitolo 1. Controllori di stato Se noi consideriamo la matrice C −1 come C −1 = con dei vettori qi′ troviamo la relazione ′ qn−1 ′ qn−2 .. . q0′ ui = qi′ · (x∞ − Φn · x0 ) Abbiamo quindi trovato tutti i valori di consegna in funzione del valore iniziale degli stati. È però possibile trovare una matrice costante di retroazione K a partire da da queste relazioni. Consideriamo un sistema che parte da condizioni iniziali x0 e che deve essere portato in n campionamenti allo stato finale x∞ . x0 u0 - x1 u1 - x2 ... - ... un−2 - xn−2 un−1 - xn−1 un - x∞ u∞ - x∞ . . . ed una seconda serie che parte da una condizione iniziale x′0 = x1 da cui otteniamo x′0 u′0 - x′1 u′1 - x′2 ... - ... u′n−2 - x′n−2 u′n−1 - x′n−1 u∞ - x∞ u∞ - x∞ . . . Le due sequenze della grandezza di controllo u che portano il sistema da x1 a x∞ ottenute sono: {u1 , u2 , . . . , un−1, un } e {u′0 , u′1 , . . . , u′n−1} Siccome le due sequenze devono essere uguali ne segue che u1 = u′0 , u2 = u′1 , . . . , u∞ = u′n−1 e x1 = x′0 , x2 = x′1 , . . . , x∞ = x′n−1 Vediamo quindi che u1 = u′0 = q0′ · (x∞ − Φn · x′0 ) ciò che significa u1 = q0′ · (x∞ − Φn · x1 ) Continuando in questo modo possiamo creare una serie {u′′0 , u′′1 , . . . , u′′n−1} che partendo da uno stato iniziale x′′0 = x2 porta a x∞ e dimostrare che u2 = q0′ · (x∞ − Φn · x2 ) e quindi in generale che uk = q0′ · (x∞ − Φn · xk ) = −q0′ · Φn ·xk + q0′ · x∞ = −K · xk + r∞ | {z −K } quindi ottenendo un controllore di stati costante. Il vettore q0′ può essere ottenuto direttamente dall’ultima riga dell’inversa della matrice di controllabilità C. In questo modo è possibile ottenere direttamente i coefficienti di K. 40 Ivan Furlan, Silvano Balemi 3 gennaio 2014 1.5. Controllore di stato discreto nel tempo 1.5.3.3 Progettazione di Controllori Poli del sistema ad anello chiuso Consideriamo il sistema con un controllore deadbeat e referenza rk = 0 ∀k. In questo caso abbiamo xk+1 = (Φ(T ) − Γ(T ) · K) · xk e quindi anche xn = (Φ(T ) − Γ(T ) · K)n · x0 Se per un qualsiasi valore di x0 raggiungiamo xn = x∞ = 0 dopo n campionamenti, allora l’equazione sopra diventa (Φ(T ) − Γ(T ) · K)n = 0 Il teorema di Cayley-Hamilton implica però det(z · I − (Φ(T ) − Γ(T ) · K)) = z n = 0 Questo è il polinomio caratteristico della funzione di trasferimento: il sistema ad anello chiuso ha quindi n poli all’origine. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 41 Progettazione di Controllori 42 Ivan Furlan, Silvano Balemi Capitolo 1. Controllori di stato 3 gennaio 2014 Capitolo 2 Compensations 2.1 Feed-forward compensation Given is a closed-loop system with plant P and controller C. Static error can be eliminated by a controller-plant combination of type 1 or higher. However, unsatisfactory transient may occur when the controller gains are limited. 2.1.1 Actuation compensation One way to circumvent the problem is using a feed-forward term F (see figure 2.1) Then the transfer function from the reference signal to the output is P (s) · (F (s) + C(s)) Y (s) = R(s) 1 + P (s) · C(s) If the transfer function F (s) can be chosen to be F (s) = P (s)−1 then Y (s) =1 R(s) and the reference signal is tracked perfectly. If the true plant is not identical to the assumed one, the transfer function from the reference signal to the error becomes E(s) 1 − (P (s) + ∆) · F (s) −∆ · P (s)−1 = = R(s) 1 + (P (s) + ∆) · C(s) 1 + (P (s) + ∆) · C(s) Thus, the smaller the modeling error, the smaller the tracking error. Of course, the above choice for the feed-forward term F (s) is only possible under certain conditions: • The plant transfer function P (s) must be minimum phase (otherwise the feedforward term F (s) = P (s)−1 is unstable) • The transfer function P (s) may be striclty proper: in fact, the degree of the numerator must be equal to the degree of the denominator, otherwise F (s) is not proper and thus non-realizable Then, one may choose for F (s) some approximation guaranteeing a good matching 1 of P (s)−1 up to a certain frequency (for instance adding a term 1+s·τ ). 3 gennaio 2014 Ivan Furlan, Silvano Balemi 43 Progettazione di Controllori Capitolo 2. Compensations - F (s) r -? e - P (s) - e - C(s) + 6 − e + + u y- Figura 2.1: Closed-loop system with plant P (s), controller C(s) and feedforward term F (s) 2.1.2 Reference conditioning An alternative solution consists in the conditioning of the reference signal (see figure 2.2). Then, the closed-loop transfer function becomes Y (s) P (s) · C(s) · F (s) = R(s) 1 + P (s) · C(s) With the appropriate choice of F (s) = (1+P (s)·C(s))/(P (s)·C(s)) we obtain again Y (s)/R(s) = 1. The choice F (s) = K = (1 + P (0) · C(0))/(P (0) · C(0)) eliminates the static error, guaranteeing unitary gain at DC even without an integral term in the loop. Finally, the choice of F (s) of a suitable low pass filter limits the bandwidth of the reference signal, thus reducing the actuation effort during transients. r- F (s) - e - C(s) + 6 − u - P (s) y - Figura 2.2: Closed-loop system with plant P (s), controller C(s) and term F (s) for the conditioning of the reference signal 2.1.3 General feed-forward scheme The actuation compensation and the reference conditioning schemes can be combined as shown in figure 2.3. Then, the closed-loop transfer function becomes P (s) · (F2 (s) + C(s) · F1 (s)) Y (s) = R(s) 1 + P (s) · C(s) With the desired closed-loop transfer function Pdes and the choice F1 (s) = Pdes 44 F2 (s) = P (s)−1 · Pdes Ivan Furlan, Silvano Balemi 3 gennaio 2014 2.2. Compensation of measureable disturbance Progettazione di Controllori we obtain Y (s)/R(s) = Pdes . Note that we can deal now with strictly proper plants: in fact it is sufficient that the relative degree of Pdes be larger than the relative degree of P (s). Note also that the desired closed-loop transfer function Pdes should maintain the right plant zeros in order to make F2 (s) stable. - F2 (s) r - F1 (s) - e - C(s) + 6 − -? e - P (s) + + u y- Figura 2.3: Closed-loop system with plant P (s), controller C(s) and general feedforward scheme 2.2 Compensation of measureable disturbance Given is a closed-loop system with plant P and a controller C. The plant is affected in a known way by a measureable disturbance. Then one may use this information to improve the disturbance rejection propoertied of the closed-loop system. One solution is to use a compensator using the measured disturbance (see figure 2.4). Then the system output is Y (s) = Pyu (s) · (C(s) · R(s) + G(s) · D(s)) + Pyd (s) · D(s) 1 + Pyu (s) · C(s) −1 If the transfer function G(s) can be chosen to be G(s) = −Pyu (s) · Pyd (s) then Y (s) = Pyu (s) · C(s) · R(s) 1 + Pyu (s) · C(s) and the influence of the disturbance on the output signal is eliminated. If the true plant is not identical to the assumed one, the tracking error becomes (Pyu (s) + ∆yu ) · (C(s) · R(s) + G(s) · D(s)) + (Pyd (s) + ∆yd ) · D(s) 1 + (Pyu (s) + ∆yu ) · C(s) −1 R(s) + ((Pyu (s) + ∆yu ) · Pyu (s) · Pyd (s) − Pyd (s) − ∆yd ) · D(s) = 1 + (Pyu (s) + ∆yu ) · C(s) −1 R(s) + (∆yu · Pyu (s) · Pyd (s) − ∆yd ) · D(s) = 1 + (Pyu (s) + ∆yu ) · C(s) E(s) = R(s) − Thus, the smaller the modeling error, the smaller the influence of the noise on the tracking error. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 45 Progettazione di Controllori Capitolo 2. Compensations d ? G(s) r ? e + u - e - C(s) - e - P (s) + 6 + − y- Figura 2.4: Closed-loop system with plant P (s), controller C(s), and disturbance compensator G(s) 46 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 3 Ottimizzazione di traiettorie di processi dinamici 3.1 Introduzione In un processo di controllo viene ottimizzato il comportamento del sistema direttamente tramite la scelta dei parametri di controllo cosı̀ da ottenere una determinata sovraelongazione(overshooting) o un tempo di setting desiderato. È però possibile ottenere il comportamento desiderato non tramite l’indicazione esplicita di parametri ma direttamente tramite l’indicazione del comportamento desiderato espresso tramite delle particolari funzioni. Queste funzioni vengono chiamate “indici di prestazione” (performance index), “criterio di ottimizzazione”, “funzione di ottimizzazione” o anche “cifra di merito”. 3.2 Esempi di indici di prestazione • Ottimizzazione del tempo J= Z tf • Ottimizzazione del consumo Z J= • Energia minima J= dt = tf − t0 t0 Z 0 r ∞X ∞ 0 i=1 |u| dt uT · R · u dt • Minima differenza rispetto all’equilibrio J= 3 gennaio 2014 Z 0 ∞ xT · Q · x dt Ivan Furlan, Silvano Balemi 47 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici • Forma quadratica (compromesso tra energia e errore) 1 J= · 2 Z ∞ 0 xT · Q · x + uT · R · u dt • Forma quadratica (compromesso tra energia “statica”, energia “dinamica” e errore) 1 1 J = · xT (tf ) · F · x(tf ) + · 2 2 • ISE (Integral square error) Z J= Z ∞ J= Z ∞ 0 • IAE (Integral absolute error) • ITSE (Integral time square error) J= 0 Z ∞ 0 ∞ 0 xT · Q · x + uT · R · u dt e2 dt |e| dt t · e2 dt • ITAE (Integral time absolute error) J= 3.3 Z 0 ∞ t · |e| dt Minimizzazioni degli indici di prestazione L’imposizione di un comportamento desiderato al sistema corrisponde alla minimizzazione di un indice di prestazione. Siccome i parametri su cui agire possono essere più di uno, il problema si riduce alla ricerca del massimo o minimo di una funzione a più variabili. 3.4 Massimo e minimo di funzioni multivariabili invarianti nel tempo Nella ricerca del massimo o del minimo di una funzione a più variabili della forma f (x1 , x2 , . . . , xn ) (3.1) i punti di massimo, minimo o sella sono dati da i punti stazionari, cioè i punti per i quali il gradiente della funzione (l’equivalente della derivata di ordine 1 per il caso monodimensionale) vale zero, cioè ∇f = 0 48 Ivan Furlan, Silvano Balemi 3 gennaio 2014 3.4. Massimo e minimo di funzioni multivariabili invarianti nel tempoProgettazione di Controllori che corrispondono dunque alle soluzioni del seguente sistema di equazioni ∂f = 0, ∂x1 ∂f = 0, ∂x2 ∂f =0 ∂xn ..., Per sapere se la soluzione trovata rappresenta un massimo, un minimo o una sella bisogna analizzare la matrice di Hess (l’equivalente della derivata di ordine 2 per il caso monodimensionale): Hn = ∂2f ∂x1 ∂x1 ∂2f ∂x2 ∂x1 .. . ∂2f ∂xn ∂x1 ∂2f ... ∂x1 ∂x2 ∂2f ... ∂x2 ∂x2 .. .. . . ∂2f ... ∂xn ∂x2 ∂2f ∂x1 ∂xn ∂2f ∂x2 ∂xn .. . ∂2f ∂xn ∂xn Si ottengono allora le seguenti situazioni: Minimo Matrice Hn definita negativa H < 0 Massimo Matrice Hn definita positiva Sella o altro Nel resto dei casi H>0 Per verificare se una matrice é definita positiva, definita negativa oppure altro, si può applicare il criterio di Sylvester, ottenendo i seguenti casi Minimo det(Hi ) > 0 i = 1, . . . , n Massimo (−1)i · det(Hi ) > 0 i = 1, . . . , n Sella o altro Nel resto dei casi Con Hi si intende il minore principale di dimensione i della matrice Hn (cioè la matrice con gli elementi delle prime i righe e colonne della matrice Hn . Se esistono delle condizioni marginali sulla funzione f , la ricerca dei massimi e minimi deve tenerne conto (per esempio la ricerca del massimo o del minimo in un certo dominio delle variabili xi ). La teoria di Euler ci dà la soluzione seguente: data la funzione f dell’equazione (3.1) e le condizioni g1 (x1 , x2 , . . . , xn ) = 0 g2 (x1 , x2 , . . . , xn ) = 0 .. . gr (x1 , x2 , . . . , xn ) = 0 occorre creare la nuova funzione F (x1 , x2 , . . . , xn , λ1 , λ2 , . . . , λr ) = f + λ1 · g1 + λ2 · g2 + . . . + λr · gr 3 gennaio 2014 Ivan Furlan, Silvano Balemi (3.2) 49 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici detta funzione di Lagrange. I coefficienti λi sono i moltiplicatori di Lagrange. La soluzione del sistema ∂F ∂F ∂F ∂F ∂F ∂F = = ... = = = = ... = =0 ∂x1 ∂x2 ∂xn ∂λ1 ∂λ2 ∂λr fornisce gli estremi della funzione (minimi, massimi e selle desiderati). Esempio 3.1 Data è la funzione data dal paraboloide f (x1 , x2 ) = x21 + x22 con la condizione data dal piano g(x1 , x2 ) = x1 − x2 + a = 0 La funzione di Lagrange è F (x1 , x2 , λ) = x21 + x22 + λ · (x1 − x2 + a) Dalla condizione supplementare gradF = 0 otteniamo il sistema di equazioni 2 · x1 + λ = 0 2 · x2 − λ = 0 x1 − x2 + a = 0 dal quale otteniamo x1 = −a/2 e x2 = a/2 ed il minimo a2 /2. 3.5 Calcolo delle variazioni Consideriamo adesso la minimizzazione di una funzione multivariabile variante nel tempo e consideriamo la traiettoria x(t) che evolve dal punto iniziale x(t0 ) = x0 al punto finale x(tf ) = xf . Esistono però infiniti percorsi x(t) che vanno dal punto di partenza scelto x0 al punto finale xf (vedi figura 3.1). x 6 x(tf ) x̃(t) x(t0 ) 6 x(t) t t0 tf Figura 3.1: Variazione x̃(t) del percorso ottimale x(t). Si tratta allora di determinare la traiettoria ottimale x(t) per t0 < t < tf che minimizza l’indice di prestazione V (x) = 50 Z tf t0 L(x(t), ẋ(t), t) dt Ivan Furlan, Silvano Balemi 3 gennaio 2014 3.5. Calcolo delle variazioni Progettazione di Controllori Consideriamo ora un’altra traiettoria x̃(t) che pure porta da x0 a xf , vicina ma non identica a x(t). Possiamo allora definire δx(t) = x̃(t) − x(t) come la variazione della traiettoria x(t). Della variazione sappiamo solo che δx(t0 ) = δx(tf ) = 0 (3.3) La variazione ∆V dell’indice di prestazione V diventa ∆V = V (x̃) − V (x) = Z tf t0 ˙ t) − L(x(t), ẋ(t), t) dt L(x(t) + δx(t), ẋ(t) + δ x(t), Considerando l’approssimazione di primo ordine dello sviluppo in serie dell’espressione otteniamo ∆V = Z tf t0 ! ∂L ∂L · δx + · δ ẋ −L(x, ẋ, t) dt = L(x, ẋ, t) + ∂x ∂ ẋ Z tf t0 ∂L ∂L ·δx+ ·δ ẋ dt ∂x ∂ ẋ e con δ ẋ = dδx/dt otteniamo ∆V = L’integrazione per parti ( l’espressione come ∆V = Z tf t0 Rb a Z tf t0 ∂L · δx dt + ∂x Z δx(tf ) δx(t0 ) v du = v · u|ba − δx(t Rb a ∂L dδx ∂ ẋ u dv) permette di semplificare ) Z δx(tf ) f ∂L Z tf ∂L ∂L − δx · d · δx dt + · δx = ∂x ∂ ẋ ∂ ẋ δx(t0 ) t0 δx(t0 ) ∂L d ∂L − ∂ ẋ ∂x dt ! · δx dt tenendo conto nell’ultimo passo della condizione (3.3). Supponiamo adesso che x(t) sia la traiettoria ottimale e x̃ una traiettoria poco differente da x(t). La condizione necessaria per avere un optimum è che per qualsiasi piccola variazione δx(t) di x(t) abbiamo ∆V = 0. Ciò è però possibile solo se la parte in parentesi dell’espressione precedente è nulla. Otteniamo quindi l’equazione di Euler. ∂L(x(t), ẋ(t), t) d ∂L(x(t), ẋ(t), t) − =0 ∂x dt ∂ ẋ (3.4) La soluzione di questa equazione è la traiettoria ottimale. Esempio 3.2 Dato è l’indice di prestazione Z 0 1 x2 + ẋ2 dt che deve essere minimizzato portando x(t) da 1 al tempo t0 = 0 fino a 0 al tempo tf = 1. Risolviamo allora l’equazione di Euler d ∂L ∂(x2 + ẋ2 ) d ∂(x2 + ẋ2 ) d ∂L − = − = 2 · x − 2ẋ = 2 · x − 2ẍ = 0 ∂x dt ∂ ẋ ∂x dt ∂ ẋ dt 3 gennaio 2014 Ivan Furlan, Silvano Balemi 51 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici e quindi l’equazione differenziale ẍ − x = 0 con le condizioni ai bordi x(0) = 1 e x(1) = 0. I modi dell’equazione differenziale sono −1 rispettivamente +1, da cui otteniamo la forma generale della soluzione x(t) = K1 · et + K2 · e−t e con le condizioni ai bordi le equazioni K1 · e + K2 · e−1 = 0 K 1 + K2 = 1 che forniscono K1 = −1/(e2 − 1) e K2 = e2 /(e2 − 1) e quindi la soluzione ottimale x(t) = 3.6 e2−t − et e2 − 1 Ottimizzazione di processi dinamici Partiamo da un processo dinamico definito dato dall’equazione ẋ = f (x, u, t) dove la funzione di ottimizzazione considerata è J= Z tf t0 L(x, u, t) dt con L positiva. Si tratta di trovare la funzione u(t) che minimizza J con le condizioni iniziali x(t0 ) e finali x(tf ). La funzione J da minimizzare è subordinata alla condizione imposta dal processo g(x, ẋ, u, u̇, t) = f (x, u, t) − ẋ = 0 Tenendo conto di questa condizione la funzione di ottimizzazione diventa ⋆ J = Z tf t0 L⋆ (x, ẋ, u, u̇, t) dt dove L⋆ (x, ẋ, u, u̇, t) = L(x, u, t) + m X j=1 λj · (fj (x, u, t) − ẋj ) = L(x, u, t) + λ′ · (f (x, u, t) − ẋ) 52 Ivan Furlan, Silvano Balemi 3 gennaio 2014 3.6. Ottimizzazione di processi dinamici Progettazione di Controllori Se ora formiamo le condizioni che minimizzano il problema con estremi fissi secondo quanto trovato precedentemente otteniamo d ∂ ⋆ ∂ ⋆ L − L = 0 ∂xi dt ∂ ẋi ∂ ⋆ d ∂ ⋆ L − L = 0 ∂uk dt ∂ u̇k d ∂ ⋆ ∂ ⋆ L − L = 0 ∂λj dt ∂λj con i = 1, . . . , n (numero di stati), k = 1, . . . , r (numero di entrate) e j = 1, . . . , m (numero di vincoli). Con la definizione di L⋆ otteniamo d ∂ ∂ (L + λ′ · (f − ẋ)) − (L + λ′ · (f − ẋ)) = 0 ∂xi dt ∂ ẋi d ∂ ∂ (L + λ′ · (f − ẋ)) − (L + λ′ · (f − ẋ)) = 0 ∂uk dt ∂ u̇k d ∂ ∂ (L + λ′ · (f − ẋ)) − (L + λ′ · (f − ẋ)) = 0 ∂λj dt ∂ λ̇j e quindi dλi ∂ + (L + λ′ · f ) = 0 dt ∂xi ∂ (L + λ′ · f ) = 0 ∂uk ∂ (L + λ′ · f ) − ẋ = 0 ∂λj Questo è equivalente alla risoluzione di equazioni differenziali con l’introduzione del formalismo della funzione ausiliare H(x, u, λ, t) = L(x, u, t) + m X j=1 λj · fj (x, u, t) = L(x, u, t) + λ′ · f (x, u, t) chiamata funzione di Pontryagin o Hamiltoniano. Le sue derivate ∂H ∂x ∂H 0 = ∂u λ̇ = − (3.5) (3.6) (n equazioni differenziali di primo ordine, rispettivamente r equazioni algebriche) e l’equazione di sistema ẋ = ∂H ∂λ (3.7) (n equazioni differenziali di primo ordine) forniscono le stesse equazioni che abbiamo trovato precedentemente. Il metodo di soluzione diventa allora il seguente: 3 gennaio 2014 Ivan Furlan, Silvano Balemi 53 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici 1. Costruire l’hamiltoniano H(x, u, λ, t) = L(x, u, t) + λ′ · f (x, u, t) 2. Risolvere le equazioni algebriche ∂H(x, u, λ, t) =0 ∂u ⇒ u∗ (x, λ, t) 3. Sostituire u in H con u∗ . Si ottiene cosı̀ la H ∗ ottimale. H ∗ (x, λ, t) = H(x, u∗ , λ, t) 4. Trovare x(t) e λ(t) risolvendo ẋ = ∂H ∗ (x, λ, t) ∂λ e λ̇ = − ∂H ∗ (x, λ, t) ∂x con le due condizioni ai limiti x(t0 ) e x(tf ). 5. Trovare u∗ (t) sostituendo x(t) e λ(t) in u∗ (x, λ, t) Attenzione: Il risultato trovato è un controllo ideale (ad anello aperto)! Nel caso appena discusso conoscevamo le condizioni limite x(t0 ) e x(tf ). Per altre condizioni (per esempio x(t0 ) conosciuto ma x(tf ) e tf qualsiasi oppure x(t0 ) e tf conosciuti ma x(tf ) qualsiasi) la procedura sopra indicata è ancora valida con la considerazione di nuovi condizioni limiti per la risoluzione delle equazioni differenziali del punto 4. Esempio 3.3 Dato è il sistema ẋ = −x + u con l’indice di prestazione quadratico J= Z 0 1 x2 + u2 dt minimo e le condizioni ai bordi x(0) = 1 e x(1) = 0. La soluzione ottimale si ottiene con i seguenti passi 1. H(x, u, λ, t) = x2 + u2 + λ · (−x + u) 2. ∂H(x, u, λ, t) = λ+2·u =0 ∂u 3. H ∗ (x, λ, t) = x2 − 54 ⇒ u∗ (x, λ, t) = − λ 2 λ2 −λ·x 4 Ivan Furlan, Silvano Balemi 3 gennaio 2014 3.7. Vista d’insieme dei diversi metodi di ottimizzazione Progettazione di Controllori Ottimizzazione statica dinamica (L, g, λ dipendono da t) senza vincoli gradf = 0 ∂L d ∂L − =0 ∂x dt ∂ ẋ con vincoli grad(f + λ′ ·g) = 0 d ∂(L + λ′ ·g) ∂(L + λ′ ·g) − =0 ∂[x; u; λ] dt ∂[ẋ; u̇; λ̇] Tabella 3.1: Ottimizzazioni statiche e dinamiche, con e senza vincoli ∂H ∗ (x, λ, t) ∂H ∗ (x, λ, t) λ λ̇ = − = −x − =λ−2·x ∂λ 2 ∂x La soluzione del sistema di equazioni differenziali √ può essere determinata trovando gli autovalori del sistema. Questi sono ± 2. Da qui 4. ẋ = x(t) = K1 · e− √ 2·t √ + K2 · e 2·t Mediante le condizioni ai bordi troviamo K1 = Dall’equazione 1 √ 1 − e−2· 2 e K2 = 1 √ 1 − e2· 2 λ ∂H ∗ = ẋ = −x − ∂λ 2 troviamo λ(t) = −2 · (x(t) + ẋ(t)) = −2 · K1 · (1 − √ 2) · e− √ 2·t − 2 · K2 · (1 + √ √ 2) · e 2·t 5. Infine troviamo il controllo ottimale √ √ √ √ 1− 2 λ 1+ 2 − 2·t ∗ 2·t √ ·e √ ·e u (t) = − = + −2· 2· 2 2 2 1−e 1−e 3.7 Vista d’insieme dei diversi metodi di ottimizzazione I diversi metodi possono essere quindi riassunti con la tabella 3.1 nella quale vengono riportate le diverse ottimizzazioni statiche e dinamiche, con e senza vincoli. 3.8 Sistemi LQR Un esempio di ottimizzazione del comportamento di un sistema è dato dal controllo lineare quadratico (LQR, linear quadratic regulator). In questo caso per il sistema lineare ( ẋ = A · x + B · u y = C ·x 3 gennaio 2014 Ivan Furlan, Silvano Balemi 55 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici viene determinato il controllo u che minimizza la funzione di ottimizzazione Z tf 1 xT · Q · x + uT · R · u dt J= · 2 0 dove Q = QT ≥ 0 e R = RT ≥ 0. Gli obiettivi dati da questa funzione di ottimizzazione sono • minimizzazione dell’errore di stato (tra stato attuale e stato desiderato) durante l’evoluzione del sistema, • la minimizzazione del consumo energetico. Le matrici Q e R servono a dare peso nell’ordine alle varie componenti della funzione di ottimizzazione, e quindi a definire il compromesso tra i diversi singoli obiettivi da soddisfare. Per meglio comprendere l’effetto delle due matrici Q e R analizziamo il caso semplificato in cui queste due grandezze sono scalari. La funzione di ottimizzazione diventa Z tf 1 q · x2 + r · u2 dt J= · 2 0 J rappresenta in effetti la somma ponderata delle energie degli stati e della funzione di controllo. Con r molto più grande di q, l’energia della funzione di controllo viene penalizzata nei confronti dell’energia degli stati. Ciò permette l’utilizzo di mezzi piccoli (motori, attuatori, amplificatori) per implementare il controllo. Con q molto più grande di r, viene penalizzata l’energia degli stati del processo, ciò che porta a sistemi molto ben smorzati, senza grosse fluttazioni e sovraelongazioni. Possiamo risolvere il problema del controllore LQ con i metodi visti precedentemente. Formiamo quindi inizialmente l’hamiltoniano 1 T · x · Q · x + uT · R · u + λ′ · (A · x + B · u) 2 Applichiamo ora le regole di ottimizzazione e otteniamo H(x, λ, t) = ∂H =A·x+B·u x(0) = x0 ∂λ ∂H λ̇ = − = −Q · x − AT · λ λ(tf ) = 0 ∂x ∂H =0 ⇒ u∗ = −R−1 · B T · λ ∂u ẋ = (3.8) dove u∗ rappresenta il controllo ottimale. Usando l’espressione (3.8) appena trovata e con la sostituzione di variabile λ=P ·x (3.9) si ottiene 56 dx = A · x − B · R−1 · B T · P · x dt dλ dP dx = ·x+P · = −Q · x − AT · P · x dt dt dt Ivan Furlan, Silvano Balemi 3 gennaio 2014 3.8. Sistemi LQR Progettazione di Controllori e dunque dP · x + P · A · x + AT · P · x + Q · x − P · B · R−1 · B T · P · x = 0 dt Questa equazione definisce le condizioni di ottimalità se è valida per ogni x. Ciò implica dP + AT · P + P · A + Q − P · B · R−1 · B T · P = 0 dt con P (tf ) = 0 (3.10) Quest’ultima equazione è conosciuta con il nome di equazione di Riccati. Si tratta di una equazione differenziale non lineare di primo ordine. Con Q ed R positive semi-definite otteniamo una soluzione P anch’essa positiva semi-definita, cioè soddisfacente P = P T ≥ 0 ∀t. Con P (t) a disposizione troviamo allora, grazie alle equazioni (3.8) e (3.9), il controllo ottimale u∗ (t) = − R−1 · B T · P (t) ·x(t) | {z (3.11) } K(t) cioè un controllore di stato con vettore di retroazione K(t) = R−1 · B T · P (t) variante nel tempo. Esempio 3.4 Dato è il sistema ẋ = −x + u con l’indice di prestazione J= Z 0 tf x2 + u2 dt da minimizzare. In questo problema le matrici A, B, Q, R sono scalari e valgono: A = −1, B = 1, Q = 1, R=1 La matrice P (t) è ridotta ad una funzione scalare p(t). L’equazione di Riccati (3.10) si riduce quindi all’equazione differenziale di primo ordine ṗ(t) + 1 − p2 (t) − 2 · p(t) = 0 con la condizione p(tf ) = 0. La soluzione analitica di questa soluzione è √ √ e− 2·(t−tf ) − e 2·(t−tf ) √ √ √ √ p(t) = ( 2 − 1) · e− 2·(t−tf ) + ( 2 − 1) · e 2·(t−tf ) Questa soluzione inserita nella formula (3.11) ci fornisce la retroazione ottimale u∗ (x(t), t) = −p(t) · x(t) 3 gennaio 2014 Ivan Furlan, Silvano Balemi 57 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici 3.8.1 Ottimizzazione con orizzonte infinito Con il tempo finale tf → ∞ esiste una soluzione chiusa del problema. La matrice P diventa costante (con derivata nel tempo quindi nulla), e l’equazione di Riccati (3.10) si riduce all’equazione algebrica. AT · P + P · A + Q − P · B · R−1 · B T · P = 0 Otteniamo allora un normale controllore di stati dove con K = R−1 · B T · P u(t) = −K · x(t) 3.8.2 Generalizzazione del controllo LQ Se consideriamo la funzione di ottimizzazione più generale 1 J= · 2 Z ∞ 0 " #T" #" x Q N x · · T u N R u # 1 dt = 2 Z ∞ 0 xT·Q·x+uT·R·u+xT·N ·u+uT·N T·x dt otteniamo un’altra equazione di Riccati AT · P + P · A − (P · B + N) · R−1 · (P · B + N)T + Q = 0 grazie alla cui soluzione P otteniamo il controllo con K = R−1 · (B T · P + N T ) u(t) = −K · x(t) Esempio 3.5 Un processo è descritto dalla funzione di trasferimento G(s) = 1 (s + 1) · (s + 2) · (s + 3) Questo processo deve essere controllato cosı̀ da minimizzare la funzione di ottimizzazione Z ∞ J= y 2 + r · u2 dt r > 0 0 Le equazioni di stato del processo sono Definiamo 1 0 0 Q = CT · C = 0 0 0 0 0 0 58 0 0 1 0 0 1 ·x+ 0 ẋ = 0 ·u 1 −6 −11 −6 h i 1 0 0 ·x y = Ivan Furlan, Silvano Balemi e R = [r] 3 gennaio 2014 3.9. Filtri di Kalman-Bucy Progettazione di Controllori La soluzione P dell’equazione di Riccati è della forma p11 p12 p13 P = p12 p22 p23 p13 p23 p33 Occorre notare che i coefficienti incogniti pij sono solo 6 data la simmetria della matrice. Il controllore con le matrici date risulta quindi essere 1 p13 p23 p33 p13 p23 p33 u(t) = − ·B T ·P ·x(t) = −[ , , ]·x(t) = − ·x1 (t)− ·x2 (t)− ·x3 (t) r r r r r r r L’equazione di Riccati 0 = −AT · P − P · A + P · B · R−1 · B T · P − Q conduce al sistema di equazioni 0 = 12 · p13 + 1 2 ·p −1 r 13 0 = 6 · p23 − p11 + 11 · p13 + 0 = 6 · p33 − p12 + 6 · p13 + 0 = −2 · p12 + 22 · p23 + 1 · p13 · p23 r 1 · p13 · p33 r 1 2 ·p r 23 0 = −p13 + 11 · p33 − p22 + 6 · p23 + 0 = −2 · p23 + 12 · p33 + 1 2 ·p r 33 1 · p23 · p33 r Le soluzioni di p13 , p23 e p33 risultanti da questo sistema di equazioni per vari valori di r sono riportate nella tabella seguente p13 p23 p33 r = 10−5 3.10 · 10−3 8.44 · 10−4 8.31 · 10−5 r = 10−4 9.42 · 10−3 3.49 · 10−3 4.29 · 10−4 r = 10−3 2.62 · 10−2 1.25 · 10−2 1.81 · 10−3 r = 10−2 5.66 · 10−2 3.17 · 10−2 5.07 · 10−3 r = 10−1 7.82 · 10−2 4.64 · 10−2 7.69 · 10−3 r=1 8.28 · 10−2 4.96 · 10−2 8.26 · 10−3 La risposta al gradino unitario per i valori di r della tabella precedente è riportata nella figura 3.3. L’errore statico è stato eliminato con una pre-amplificazione adeguata. (vedi figura 3.2). 3.9 Filtri di Kalman-Bucy Un problema importante concerne la stima degli stati di un sistema lineare con rumore che influenza la lettura delle uscite e i segnali di attuazione. Si può dimostrare 3 gennaio 2014 Ivan Furlan, Silvano Balemi 59 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici r- amplificazione u -e + 6 - B − -e + 6 + R x - C y - A K Figura 3.2: Schema di controllo del processo con pre-amplificazione del segnale di referenza che la stima ottimale risulta essere un osservatore completo, detto anche filtro di Kalman-Bucy. Il problema può essere formulato nel modo seguente con il processo ( ẋ = A · x + B · u + Γ · ω y = C ·x+D·u+ν dove ω rappresenta un’entrata di rumore di fondo casuale e ν rappresenta il rumore associato alle misure fornite dai sensori. Entrambi i segnali di disturbo sono considerati gaussiani con media 0 e covarianza conosciuta. Valgono le seguenti condizioni: E{ω(t)} E{ν(t)} E{ω(t) · ω ′ (t + τ )} E{ν(t) · ν ′ (t + τ )} E{ω(t) · ν ′ (t + τ )} = = = = = 0 0 Q0 · δ(t − τ ) R0 · δ(t − τ ) N0 · δ(t − τ ) L’obiettivo è di minimizzare la varianza dell’errore. L’indice di prestazione corrispondente è quindi J0 = E{(x(t) − x̂)T · (x(t) − x̂)} = varianza dell’errore dove x(t) è il valore misurato e x̂(t) il valore stimato. Da questo indice di prestazione viene la denominazione LQG (linear quadratic Gaussian) con il quale si indica il controllore combinato con il filtro di Kalman-Bucy. L’osservatore ottimale è allora dato dalle equazioni x̂˙ = A · x̂ + B · u + L · (y − C · x̂ − D · u) con L = P · C T · R−1 dove P si trova risolvendo l’equazione di Riccati A · P + P · AT − (P · C T + Γ · N0 ) · R0−1 · (C · P + N0T · ΓT ) + Γ · Q0 · ΓT = 0 La soluzione P dell’equazione di Riccati fornisce anche il valore P = E{(x(t) − x̂) · (x(t) − x̂)T } della varianza stazionaria dell’errore degli stati. 60 Ivan Furlan, Silvano Balemi 3 gennaio 2014 3.9. Filtri di Kalman-Bucy Progettazione di Controllori 1.4 1.2 1 0.8 0.6 r=10−0 r=10−1 r=10−2 r=10−3 r=10−4 r=10−5 0.4 0.2 0 0 1 2 3 4 5 6 Figura 3.3: Risposta al gradino unitario per il sistema controllato con controllore ottimale per diversi valori di r. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 61 Progettazione di ControlloriCapitolo 3. Ottimizzazione di traiettorie di processi dinamici 62 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 4 Sistemi non lineari 4.1 4.1.1 Introduzione Definizione Un sistema è detto non lineare quando la definizione di linearità non è più soddisfatta, cioè quando una della due condizioni f (x + y) = f (x) + f (y) f (α · x) = α · f (x) non è più valida. Nella figura 4.1 sono presentate alcune nonlinearità. 6 6 - Saturazione - Zona morta 6 6 - ? Sistema a due punti (segno) x1 (t) - y(t) x2 (t) - Π Moltiplicatore 6 - Sistema a due punti con isteresi 6 - Funzione modulo Figura 4.1: Diverse nonlinearità 3 gennaio 2014 Ivan Furlan, Silvano Balemi 63 Progettazione di Controllori 4.1.2 Capitolo 4. Sistemi non lineari Paragone con sistemi lineari La violazione delle condizioni di linearità può manifestarsi in diverse maniere. Alcune differenze caratteristiche del comportamento di sistemi nonlineari rispetto a quello di sistemi lineari sono indicate nella tabella 4.1. Sistema lineare Valgono il principio di superposizione e di proporzionalità (dalla definizione stessa di linearità) Il comportamento del sistema è indipendente dall’ampiezza del segnale in entrata Gli spettri dei segnali in entrata e in uscita contengono le stesse frequenze (con un eventuale sfasamento e uno smorzamento o amplificazione dell’ampiezza) L’ampiezza di possibili oscillazioni dipende unicamente dalle condizioni iniziali del processo La stabilità asintotica è una proprietà globale del sistema Un sistema regolare ha una sola posizione di equilibrio Sistema nonlineare Il principio di superposizione e di proporzionalità non è valido Il comportamento del sistema dipende dall’ampiezza del segnale in entrata Lo spettro del segnale in uscita contiene altre frequenze dello spettro del segnale in entrata (armoniche superiori e inferiori rispetto al segnale in entrata) L’ampiezza di possibili oscillazioni può dipendere dalle condizioni iniziali del processo, ma può anche essere indipendente La stabilità asintotica è una proprietà locale del sistema Possono esserci diverse posizioni di equilibrio, ognuna con le sue caratteristiche di stabilità Tabella 4.1: Differenze nel comportamento di sistemi nonlineari con quello di sistemi lineari 4.2 Alcuni metodi di analisi Per l’analisi di sistemi contenenti nonlinearità esistono diversi metodi. Questi sistemi possono essere applicati solo a determinate classi di nonlinearità. Qui vengono presentati solo alcuni metodi di analisi che possono fornire informazioni sull’andamento e sulla stabilità del sistema. 4.2.1 Metodo della funzione descrittiva Il metodo della funzione descrittiva fornisce indicazioni approssimative sul comportamento stazionario del sistema, in particolare indicando la presenza di oscillazioni. Il metodo assume che la parte lineare del sistema abbia una caratteristica di filtro passa-basso. 64 Ivan Furlan, Silvano Balemi 3 gennaio 2014 4.2. Alcuni metodi di analisi Progettazione di Controllori Con questo metodo viene costruita una funzione a partire dalla nonlinerità presente nel sistema. Questa funzione produce una curva in un diagramma di Nyquist assieme alla curva della parte lineare del sistema. I punti di incrocio tra le due curve rappresentano i valori per i quali il sistema presenta un’oscillazione (stabile oppure instabile). 4.2.2 Metodi delle isocline e dei gradienti Il metodo delle isocline permette di ottenere indicazioni precise sull’evoluzione dello stato di un sistema autonomo della forma dx1 = ẋ1 = f1 (x1 , x2 ) dt ẋ = f (x) ⇒ dx2 = ẋ2 = f2 (x1 , x2 ) dt (4.1) Questo metodo sfrutta il fatto che la divisione ẋ2 /ẋ1 fornisce dx2 f2 (x1 , x2 ) ẋ2 = = ẋ1 dx1 f1 (x1 , x2 ) Questa non è niente altro che l’equazione differenziale parziale, la cui soluzione a partire da un punto iniziale dato è la traiettoria (evoluzione di x1 ed x2 ) del sistema da questo punto. Grazie a questa equazione differenziale o ad una simulazione è possibile rappresentare le traiettorie del sistema per diversi valori iniziali degli stati. La rappresentazione grafica cosı̀ ottenuta viene anche chiamata phase portrait. L’equazione differenziale ottenuta sopra ci fornisce anche per ogni coppia (x1 , x2 ) il gradiente sulla traiettoria. Calcolando per diversi punti questo gradiente (la direzione dell’evoluzione dello stato) e tenendo conto nel contempo del senso (fornito dall’equazione (4.1) che indica l’evoluzione in funzione del tempo) è quindi possibile ottenere una rappresentazione grafica con frecce indicanti l’evoluzione di uno stato del sistema rispetto all’altro (metodo dei gradienti). La funzione Matlab stateprt fornisce questa rappresentazione grafica a partire da un modello del sistema non lineare in Simulink. function stateprt(model,x1lim,x2lim,nn) % % plot phase portrait of Simulink system named ’model’ % function stateprt(model,x1lim,x2lim) % % model : name of Simulink model % x1lim : [x1min,x1max] % x2lim : [x2min,x2max] % if nargin==3 nn=20; 3 gennaio 2014 Ivan Furlan, Silvano Balemi 65 Progettazione di Controllori Capitolo 4. Sistemi non lineari end h=0.01; opts=simset(’Solver’,’ode5’,’FixedStep’,h); x1=linspace(x1lim(1),x1lim(2),nn); x2=linspace(x2lim(1),x2lim(2),nn); k1=x1(2)-x1(1); k2=x2(2)-x2(1); k=3/sqrt(k1^2+k2^2); x1m=zeros(nn); x2m=x1m; for nx1=1:nn for nx2=1:nn opts=simset(’InitialState’,[x1(nx1),x2(nx2)]); [t,x,y]=sim(model,h,opts); dx1=x(2,1)-x1(nx1); dx2=x(2,2)-x2(nx2); l=sqrt(dx1^2+dx2^2)*k; if l>1.e-10 x1m(nx2,nx1)=dx1/l; x2m(nx2,nx1)=dx2/l; end end end quiver(x1,x2,x1m,x2m,0); axis([x1lim,x2lim]); xlabel(’x1’); ylabel(’x2’); grid Esempio 4.1 Determiniamo per il sistema ( ẋ1 = −x2 ẋ2 = x1 + x32 − 3 · x2 (4.2) la rappresentazione dei gradienti con il programma stateprt. Dapprima modelliamo il sistema in Simulink come nella figura 4.2. Con il comando Matlab stateprt(’exnonlin’,[-2.5 2.5],[-2.5 2.5],20) otteniamo il risultato della figura 4.3. 4.3 Linearizzazione di un processo È il metodo più utilizzato per l’analisi ed il design di sistemi non lineari. Partendo da un sistema non lineare di n equazioni differenziali di primo ordine con p entrate rappresentato nel piano degli stati da ẋ = f (x(t), u(t)) 66 Ivan Furlan, Silvano Balemi (4.3) 3 gennaio 2014 4.3. Linearizzazione di un processo Progettazione di Controllori 1 s x_2 Sum 1 −1 1 s x_1 Gain out_x_1 u^3−3*u 2 out_x_2 Fcn Figura 4.2: File Simulink exnonlin.mld per la simulazione del sistema (4.2) è possibile linearizzare il processo attorno ad un punto di lavoro scelto oppure anche attorno ad una traiettoria scelta effettuando uno sviluppo in serie di Taylor ed eliminando tutti i termini di ordine superiore a 1. Con linearizzazione eseguita attorno allo stato x0 (t) con l’entrata u0(t) espandiamo la formula (4.3) in n X ∂fi (x, u) dxi ≈ fi (x0 , u0 )+ ẋi = dt ∂xj j=1 ∂fi (x, u) ·(xj −(x0 )j )+ ∂uj j=1 x 0 , u0 Utilizzando la notazione ∆xj = xj − (x0 )j , e notando che p X ·(uj −(u0 )j ) x 0 , u0 ∆uj = uj − (u0 )j , ∆ẋi = ẋi − (ẋ0 )i = ẋi − fi (x0 , u0 ) ottienamo finalmente n X ∂fi (x, u) ∆ẋi = ∂xj j=1 p X ∂fi (x, u) · ∆xj + ∂uj j=1 x 0 , u0 · ∆uj x 0 , u0 Quest’ultima equazione può essere scritta in forma matriciale come dove A e B sono le ∂f1 ∂f1 ∂x1 ∂x2 ∂f2 ∂f2 A = ∂x1 ∂x2 . .. . . . ∂fn ∂fn ∂x1 ∂x2 ∆ẋ = A · ∆x + B · ∆u matrici Jacobiane ∂f1 ∂f1 ... ∂xn ∂u1 ∂f2 ∂f2 ... ∂xn e B = ∂u1 . .. .. . . . . ∂fn ∂fn ... ∂u1 ∂xn x0 , u0 ∂f1 ... ∂u2 ∂f2 ... ∂u2 .. .. . . ∂fn ... ∂u2 ∂f1 ∂up ∂f2 ∂up .. . ∂fn ∂up (4.4) x 0 , u0 Nota che le matrici A e B sono constanti se linearizziamo attorno ad un punto di lavoro fisso, variabili se linearizziamo attorno ad una traiettoria. Esempio 4.2 3 gennaio 2014 Ivan Furlan, Silvano Balemi 67 Progettazione di Controllori Capitolo 4. Sistemi non lineari 2.5 2 1.5 1 x2 0.5 0 −0.5 −1 −1.5 −2 −2.5 −2.5 −2 −1.5 −1 −0.5 0 x1 0.5 1 1.5 2 2.5 Figura 4.3: Gradienti per il sistema (4.2). L’origine è stabile. Per valori grandi di |x2 | il valore di x2 diverge. . 68 Ivan Furlan, Silvano Balemi 3 gennaio 2014 4.3. Linearizzazione di un processo Progettazione di Controllori Dato è il sistema ( ẋ1 = f1 (x, u) = x22 + u − 1 ẋ2 = f2 (x, u) = x1 Dapprima linearizziamo attorno al punto di equilibrio. Il punto di equilibrio si ha quando le derivate degli stati sono nulle (ẋ1 = ẋ2 = 0), cioè quando ( 0 = x22 + u − 1 0 = x1 da dove otteniamo (con la scelta dell’entrata nulla u0 (t) = 0) x1 0 0 √ x0 = = = x2 ±1 ± 1 − u u0 =0 Abbiamo quindi due punti di equilibrio: scegliamo (arbitrariamente) x0 = [0, 1]′ . Come secondo passo determiniamo il sistema linearizzato: ∆ẋ = ẋ − f (x0 , u0) = = = # " ∂f1 (x,u) ∂x1 ∂f2 (x,u) ∂x1 0 2 · x2 1 · ∆x + · ∆u 1 0 0 x0 ,u0 x0 ,u0 ∂f1 (x,u) ∂x2 ∂f2 (x,u) ∂x2 x0 ,u0 · ∆x + " ∂f1 (x,u) ∂u ∂f2 (x,u) ∂u # x0 ,u0 · ∆u 0 2 1 · ∆x + · ∆u 1 0 0 Consideriamo adesso la linearizzazione attorno alla traiettoria x0 (t) = [1, t]′ . Dall’equazione di stato non lineare otteniamo l’entrata necessaria u0 (t) = 1 − x22 (t) + ẋ1 (t) = 1 − t2 e la linearizzazione ∆ẋ = ẋ − f (x0 (t), u0 (t)) = = 0 2 · x2 1 · ∆x + · ∆u 1 0 0 x0 (t),u0 (t) x0 (t),u0 (t) 0 2·t 1 · ∆x + · ∆u 1 0 0 Notiamo come la rappresentazione di stato lineare sia variante nel tempo. Eguagliando il polinomio caratteristico s + k1 p(s) = det(sI − A + B · K) = det −1 −2t + k2 = s2 + k1 · s + k2 − 2t s con il polinomio caratteristico desiderato s2 + 2s + 1 si ottiene il controllore di stato K(t) = [2, 1 + 2t]′ . 3 gennaio 2014 Ivan Furlan, Silvano Balemi 69 Progettazione di Controllori Capitolo 4. Sistemi non lineari Esempio 4.3 Un sistema di sospensione magnetico formato da un elettromagnete che tiene sospesa una boccia metallica è descritto dalle equazioni differenziali i2 (t) d2 y(t) = M · g − k · M· dt2 y 2 (t) di(t) u(t) = R · i(t) + L · dt dove u(t) i(t) L g y(t) R M tensione in entrata corrente dell’avvolgimento induttanza elettromagnete costante gravitazionale distanza boccia-magnete resistenza dell’avvolgimento massa della boccia Definendo le variabili di stato x1 (t) = y(t) dy(t) dt x3 (t) = i(t) x2 (t) = otteniamo il sistema di equazioni differenziali di primo ordine dx1 (t) = x2 (t) dt k x23 (t) dx2 (t) = g− · dt M x21 (t) R 1 dx3 (t) = − · x3 (t) + · u(t) dt L L Linearizziamo ora il processo attorno al punto di equilibrio y0 (t) = (x0 )1 = y0 (quindi con y0 costante). I valori delle altre variabili di stato all’equilibrio sono (x0 )2 (t) = d(x0 )1 (t) =0 dt e da k (x0 )23 (t) d(x0 )2 (t) =g− · = 0 ⇒ (x0 )3 (t) = (x0 )1 (t) · dt M (x0 )21 (t) s M ·g = y0 · k s M ·g k Applicando le formule (4.4) attorno al punto di lavoro scelto otteniamo A= 70 0 1 0 2 · k · x23 −2 · k · x3 0 3 M · x1 M · x21 R 0 0 − L = x 0 , u0 0 1 0 s 4·g·k 2·g 0 − y0 M · y02 R 0 0 − L Ivan Furlan, Silvano Balemi e B= 0 0 1 L 3 gennaio 2014 4.3. Linearizzazione di un processo Progettazione di Controllori La funzione [a,b,c,d]=linmod(’model’) in Matlab dove ’model’ è il nome di un file Simulink descrivente un processo non lineare permette di linearizzare questo processo come appena visto. Il modello in Simulink deve presentare una sola entrata ed una sola uscita come nella figura 4.4. 1 In Mux f(u) Mux Fcn1 Mux f(u) Mux1 Fcn2 1 1 s int1 s int2 1 1 s int3 s int4 1 Out Figura 4.4: Sistema nonlineare in Simulink pronto per linearizzazione in Matlab Anche con la funzione linmod è possibile determinare il modello lineare ad un determinato punto di equilibrio diverso dall’origine 0, specificando il vettore delle variabili di stato x e l’entrata all’equilibrio u. Queste grandezze possono anche essere determinate direttamente con l’aiuto della funzione trim di Matlab. 4.3.1 Compensazione di nonlinearità Nel caso di sistemi fortemente lineari le dipendenze tra le diverse variabili sono ben conosciute, cosı̀ da poterne tener conto nella progettazione del regolatore. 4.3.1.1 Inversione di nonlinearità La compensazione di una nonlinearità può essere ottenuta tramite l’utilizzo di una nonlinearità inversa rispetto a quella del processo come nella figura 4.5. Diventa quindi possibile determinare un regolatore lineare per la parte lineare del sistema. La nonlinearità presente nel sistema originale non ha più nessun effetto (assumendo che la compensazione della parte nonlineare del processo nel regolatore sia sufficientemente precisa). 4.3.1.2 Dinamica inversa Le variabili di stato presentano spesso relazioni complesse con nonlinearità includenti accoppiamenti. Una possibilità per poter regolare in maniera efficace un tale sistema consiste nel compensare le nonlinarità con una funzione inversa che varia dinamicamente in funzione delle variabili di stato. Tale procedura è particolarmente utilizzata in robotica dove la dinamica del processo da regolare è conosciuta. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 71 Progettazione di Controllori Capitolo 4. Sistemi non lineari controllore r- ee - C(s) + 6 − u processo 6 - 6 - y - G(s) Figura 4.5: Compensazione di una nonlinearità conosciuta: C(s) è un regolatore lineare per la parte lineare G(s) del processo. Esempio 4.4 Consideriamo il modello di un robot con le equazioni vettoriali Mn×n (q) · q̈ = Qn − Hn (q, q̇) (4.5) dove M è la matrice di inerzia generalizzata, Q il vettore di attuazione (forze o momenti), H il vettore di accoppiamento della dinamica (includente le forze gravitazionali, di trasporto e di Corioli) ed n è il grado di libertà del robot. Con l’utilizzo delle grandezze di attuazione della forma Qn = Hn (q, q̇) + Mn×n (q) · ac dove ac rappresenta l’accelerazione desiderata, l’equazione del robot diventa q̈ = ac con il sistema ora controllabile ed osservabile. Nota che questa procedura presuppone l’invertibilità di diverse funzioni (qui per esempio la matrice di inerzia generalizzata), mentre in generale queste matrici possono presentare singolarità per alcuni valori delle variabili. Le problematiche legate a questa procedura sono di due tipi: 1. non tutte le misure sono disponibili (q e q̇ dell’esempio sopra) 2. l’equazione del processo non lineare da regolare non è perfettamente conosciuta, sia a causa di dinamiche supplementari non modellate (approssimazione del modello) sia perchè le varie grandezze non sono esattamente conosciute (per es. peso, inerzia, ...) In questi casi il regolatore deve 1. includere un osservatore, per stimare le diverse misure mancanti 2. essere adattivo (per aggiornare autonomamente le diverse grandezze) o robusto (per fornire prestazioni soddisfacenti anche con perturbazioni del modello). Queste tecniche sono molto specifiche ai diversi casi e quindi rinunciamo qui ad un trattamento più dettagliato. 72 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 5 Controllo vettoriale 5.1 Introduzione Il controllo vettoriale è impiegato per la regolazione di sistemi elettrici trifase simmetrici, come: motori sincroni ed asincroni, convertitori AC/DC (raddrizzatori), convertitori DC/AC (inverter). In figura (5.1) un esempio, dove Va , Vb , Vc sono le Alimentazione Sistema trifase Va - Ia Va - Vb Z Vb- I-b Vc Z Vc - I -c Z Figura 5.1: Sistema trifase connesso a stella tensioni di comando del sistema (o entrate del sistema). Essendo i carichi di tipo simmetrico (le impedenze su ogni fase sono tutte identiche), non risulta necessario collegare il segnale di neutro tra il centro stella dell’alimentatore ed il centro stella del carico, in quanto la corrente attraverso questo conduttore risulterebbe nulla. Esse sono sempre terne sinusoidali di tensione, ad ampiezza e fase variabili, aventi sfasamento relativo di 120 gradi, cioè (5.1) Ivan Furlan, Silvano Balemi 73 V · cos(ω · t + φ) Va V · cos(ω · t − 32 · π + φ) V = . b 2 Vc V · cos(ω · t + 3 · π + φ) 3 gennaio 2014 Progettazione di Controllori Capitolo 5. Controllo vettoriale Le tensioni istantanee Va , Vb e Vc sono dette: tensioni di fase, mentre le rispettive correnti Ia , Ib e Ic : correnti di fase. Come mostrato in figura (5.1), ai capi di ogni impedenza cade la relativa tensione di fase, questo fatto è facilmente dimostrabile ed è dovuto alla simmetria del carico. 5.2 Rappresentazione vettoriale di una terna sinusoidale in un sistema di riferimento fisso Il controllo vettoriale si basa su una rappresentazione vettoriale dei segnali trifase che verrá introdotta nel corso di questo paragrafo. Una terna sinusoidale V · cos(ω · t) Va 2 Vb = V · cos(ω · t − 3 · π) , V · cos(ω · t + 32 · π) Vc (5.2) può essere rappresentata da un vettore rotante a velocità angolare ω in un sistema di riferimento (a, b,c) con angolo relativo tra le basi di 120 gradi,come mostrato in figura (5.2). Come si può osservare il modulo delle proiezioni del vettore Va,b,c sulle b Vc Vb Va,b,c V ω·t 120° a Va c Figura 5.2: Vettore rotante rappresentante la terna sinusoidale Va , Vb , Vc rispettive basi a, b e c corrisponde ai valori istantanei di tensione Va , Vb e Vc , con cui è possibile dimostrare che Va,b,c = 2 · (a · Va + b · Vb + c · Vc ) . 3 (5.3) Conosciuta la rappresentazione del vettore Va,b,c nella base (a, b, c), é semplice esprimere quest’ultimo nella più comoda base ortonormale (α,β) riporta in figura (5.3). Per giungere alla rappresentazione in (α,β) bisogna innazitutto esprimere 74 Ivan Furlan, Silvano Balemi 3 gennaio 2014 5.3. Rappresentazione vettoriale di una terna sinusoidale in un sistema di riferimento rotanteProgettazi β b Vα,β Vβ V ω·t Vα α=a c Figura 5.3: Vettore rotante rappresentante la terna sinusoidale Va , Vb , Vc e basi vettoriali: (a, b, c) e (α, β) le componenti che formano (a, b,c) in (α,β) come segue a= " # 1 0 , b= " # 1 − √2 3 2 , c= " −√12 − 23 # , ed in seguito sostituire quanto trovato in equazione (5.3), ottenendo Vα,β = " Vα Vβ # 2 = · 3 " 1 0 # · Va + " 1 − √2 3 2 # · Vb + " −√12 − 23 # · Vc ! che espresso in forma matriciale diventa Vα,β dove C= " Va = C · Vb Vc 2 3 0 − 13 √1 3 − 13 − √13 (5.4) # . La trasformazione (5.4) é definita come trasformata di Clarke (o trasformazione alpha beta). 5.3 Rappresentazione vettoriale di una terna sinusoidale in un sistema di riferimento rotante Nel paragrafo precedente è stata introdotta la rappresentazione di un segnale trifase per mezzo di un vettore rotante Vα,β a velocità angolare ω in un sistema di riferimen3 gennaio 2014 Ivan Furlan, Silvano Balemi 75 Progettazione di Controllori Capitolo 5. Controllo vettoriale to fisso (α, β). Verrà ora introdotto un ulteriore cambio di coordinate avente lo scopo di trasformare il vettore rotante in un vettore fisso. Questo risultato può facilmente essere raggiunto rappresentando il vettore Vα,β nel sistema di riferimento (d, q) rappresentato in figura (5.4). Il sistema di riferimento (d, q) ruota alla medesima β q d Vα,β V ω·t α Figura 5.4: Vettore rotante rappresentante la terna sinusoidale e sistemi di riferimento (α, β) e (d, q) velocità angolare ω del vettore Vα,β , di conseguenza il vettore Vα,β rappresentato in (d, q) risulta immobile, come mostrato in figura (5.5,sinistra). La trasformazione q q Vd,q Vd,q V φ d V d Figura 5.5: Vettore rappresentante la terna sinusoidale nel sistema di riferimento (d, q) (sinistra),Vettore rappresentante la terna sinusoidale con fase φ nel sistema di riferimento (d, q) (destra) lineare che premette il cambio di rappresentazione dal sistema di riferimento (α, β) al sistema di riferimento rotante (d, q) è la seguente 76 Vd,q = P · Vα,β (5.5) Ivan Furlan, Silvano Balemi 3 gennaio 2014 5.4. Trasformate inverse Progettazione di Controllori dove P= " cos (ω · t) sin (ω · t) − sin (ω · t) cos (ω · t) # è una matrice di rotazione. La trasformazione (5.5) è definita con il nome di: trasformata di Park. Da quanto visto sin’ora, si puó evincere che nel caso la terna sinusoidale di partenza possedesse una fase φ diversa da 0, come in (5.1), di conseguenza la rappresentazione della stessa in (d, q) risulterebbe come in figura (5.5,destra). 5.4 Trasformate inverse Nei paragrafi precedenti sono state introdotte le trasformate di Clarke e Park, che applicate ad una terna sinusoidale permettono di ottenere una rappresentazione della stessa per mezzo di un vettore Vd,q . Rispettivamente nei prossimi paragrafi verranno introdotte le trasformate inverse di Park e Clarke, le quali permetteranno dal vettore Vd,q di tronare alla terna sinusoidale originaria. 5.5 Trasformate inversa di Park La trasformata di Clarke è una semplice matrice di rotazione, dunque la sua inversa sarà Vα,β = Pinv · Vd,q (5.6) dove Pinv = P −1 T =P = " cos (ω · t) − sin (ω · t) sin (ω · t) cos (ω · t) # La trasformazione (5.6) è definita con il nome di: trasformata inversa di Park. 5.6 Trasformate inversa di Clarke La trasformata Park (5.4) definisce le seguenti uguaglianze Vα = Vβ = 2 3 · Va − 13 · Vb − 31 · Vc √1 · Vb − √1 · Vc . 3 3 (5.7) Essendo Va , Vb , Vc terne sinusoidali del tipo (5.1), vale che Va + Vb + Vc = 0 (5.8) e dunque Vc = −Va − Vb che sostituito nel sistema di equazioni (5.7) dà 2 · Va Vα = 3 1 √ Vβ = − 3 · Va + √23 · Vb . 3 gennaio 2014 Ivan Furlan, Silvano Balemi 77 Progettazione di Controllori Capitolo 5. Controllo vettoriale che risolto in funzione di Va e Vb fornisce Va = Vα √ 1 Vb = − 2 · Vα + 23 · Vβ . infine per la (5.8) si ottiene che √ 1 3 Vc = −Va − Vb = − · Vα − · Vβ . 2 2 Il tutto si può riassumere con nella seguente forma matriciale Va Vb = Cinv · Vα,β Vc dove Cinv (5.9) 1 0 √ 1 3 = . −2 2√ 3 1 −2 − 2 La trasformazione (5.9) è definita con il nome di: trasformata inversa di Clarke. 5.7 Controllo nel dominio (d, q) Conoscendo le trasformazioni lineari per passare da una rappresentazione di un segnale trifase nel tempo ad una rappresentazione vettoriale nel dominio (d, q) e viceversa, é possibile applicare quest’ultime per il controllo di un sistema trifase come mostrato in figura (5.6). Per il calcolo del controllore C(s) nel dominio (d, q) Dominio d, q Vd , Vq rd , rq Controllore Vα , Vβ Pinv yd , yq ya , yb , yc Va , Vb , Vc Cinv Sistema trifase yα , yβ P C Figura 5.6: Controllo di un sistema trifase nel dominio (d, q) ńecessario conoscere il modello del processo P (s) nel medesimo dominio, nel prossimo paragrafo verrá quindi mostrato come trasformare il modello del processo P (s) dal dominio trifase al dominio (d, q). 78 Ivan Furlan, Silvano Balemi 3 gennaio 2014 5.8. Trasformazione del modello trifase nel dominio (d, q) 5.8 Progettazione di Controllori Trasformazione del modello trifase nel dominio (d, q) Data la rappresentazione di stato di un sistema trifase Va B 0 0 xa A 0 0 ẋa ẋb = 0 A 0 · xb + 0 B 0 · Vb Vc 0 0 B xc 0 0 A ẋc Va D 0 0 xa C 0 0 ya yb = 0 C 0 · xb + 0 D 0 · Vb , Vc 0 0 D xc 0 0 C yc (5.10) (5.11) e volendo trovare l’equivalente nel dominio (d, q), il primo passo da intraprendere consiste nel esprimere le grandezze di ingresso, stato e uscita, in funzione delle relative variabili nel dominio (d, q), il che può essere fatto per mezzo delle trasformate di Clarke e Park inverse introdotte in precedenza: Va Vb = Cinv · Pinv · Vd,q Vc xa xb = Cinv · Pinv · xd,q xc ya yb = Cinv · Pinv · yd,q yc dove Vd,q = " Vd Vq # xd,q = " xd xq # yd,q = " yd yq # . Ricordando l’identià di Eulero ej·ω·t = cos (ω · t) + j · sin (ω · t) , e svolgendo le moltiplicazioni tra vettori del domino (d, q) e le matrici di Park e Clarke inverse, è possibile evincere che quanto ottenuto equivale alle parti reali dei seguenti numeri complessi Va = (Vd + j · Vq ) · ej·ω·t 2 Vb = (Vd + j · Vq ) · ej·ω·t+j· 3 ·π 2 Vc = (Vd + j · Vq ) · ej·ω·t−j· 3 ·π xa = (xd + j · xq ) · ej·ω·t 2 xb = (xd + j · xq ) · ej·ω·t+j· 3 ·π 2 xc = (xd + j · xq ) · ej·ω·t−j· 3 ·π 3 gennaio 2014 Ivan Furlan, Silvano Balemi 79 Progettazione di Controllori Capitolo 5. Controllo vettoriale ya = (yd + j · yq ) · ej·ω·t 2 yb = (yd + j · yq ) · ej·ω·t+j· 3 ·π 2 yc = (yd + j · yq ) · ej·ω·t−j· 3 ·π . Sostituendo i numeri complessi relativi alla prima fase nella prima equazione della rappresentazione di stato, risulta un’equazione differenziale a variabili complesse: d ((xd + j · xq ) · ej·ω·t ) /dt = A · (xd + j · xq ) · ej·ω·t + B · (Vd + j · Vq ) · ej·ω·t. Le parti reali delle variabili dell’equazione coincidono con le grandezze di ingresso e stato del sistema trifase di partenza. Svolgendo ora la derivata si ottiene (ẋd + j · ẋq ) · ej·ω·t + j · ω · (xd + j · xq ) · ej·ω·t = (A · (xd + j · xq ) + B · (Vd + j · Vq )) · ej·ω·t che quindi si semplifica in (ẋd + j · ẋq ) + j · ω · (xd + j · xq ) = A · (xd + j · xq ) + B · (Vd + j · Vq ) ẋd + j · ẋq = A · xd − j · ω · xd + j · A · xq + ω · xq +B · Vd + j · B · Vq . Separando parte immaginaria e reale, si ottiene ẋd = A · xd + ω · xq + B · Vd ẋq = A · xq − ω · xd + B · Vq che puó essere riscritto come " ẋd ẋq # = " A ω·I −ω · I A # " · # xd xq + " B 0 0 B # " · Vd Vq # La rappresentazione di stato trovata svela la relazione tra le variabili di stato xd e xq e le grandezze di ingresso Vd e Vq , che corrisponde alla relazione che si intendeva trovare (modello del sistema trifase nel dominio (d, q)). Per giungere a questo risultato, si é considerando solo una della tre fasi. È indispensabile sottolineare che partendo da una qualsiasi altra fase, si sarebbe ottenuto il medesimo risultato. Allo stesso modo l’equazione di uscita (5.11) diventa " yd yq # = " C 0 0 C # " · # xd xq + " D 0 0 D # " · Vd Vq # Riassumendo, il modello trifase composto dalle equazioni (5.10) ed (5.11), espresso nel dominio (d, q), corrisponde a " " 80 ẋd ẋq # yd yq # = = " A ω·I −ω · I A " C 0 0 C # " · # " · xd xq xd xq # + Ivan Furlan, Silvano Balemi # " + " D 0 0 D B 0 0 B # " # " · · Vd Vq Vd Vq # # . 3 gennaio 2014 5.9. Esempio: Controllo vettoriale di un inverter 5.9 Progettazione di Controllori Esempio: Controllo vettoriale di un inverter Dato è un inverter trifase con un filtro passa-basso RC. Domanda: 1. Trova il controllore di stato vettoriale (continuo nel tempo) per l’inverter trifase. L’errore statico non dev’essere compensato. I poli desiderati nel dominio 1 d/q devono essere a − R·C . Si assume che le tre tensioni di serie US dell’inverter siano prodotte con delle alimentazioni comandate ideali. Soluzione: 1. La funzione di trasferimento tra la tensione di serie US e la tensione della capacità è 1 UC (s) R·C = H(s) = 1 US (s) s + R·C e quindi la rispettiva rappresentazione di stato in (d, q) corrisponde ad d u′C,d dt u′C,q = 1 − R·C −ω50Hz ω50Hz u′ · C,d + 1 − R·C u′C,q 1 R·C 0 0 1 R·C · u′S,d u′S,q Il polinomio caratteristico del sistema con controllore di stato è Re(A) −Im(A) K11 det s · I − + Im(A) Re(A) K21 1 − R·C det s · I − −ω50Hz det ω50Hz K11 + 1 − R·C K21 1 1 s + R·C + K11 · R·C 1 ω50Hz + K21 · R·C K12 Re(B) −Im(B) · K22 Im(B) Re(B) K12 · K22 1 −ω50Hz + K12 · R·C 1 1 s + R·C + K22 · R·C 1 R·C 0 0 1 R·C = = = ω50Hz 11 +K22 + 1+K11 +K22 +K11 ·K22 −K12 ·K21 +ω 2 s2 + s · 2+KR·C 50Hz + R·C (K21 −K12 ) R2 ·C 2 Il polinomio caratteristico desiderato è s2 + s · 2 1 + 2 R · C R · C2 Tenendo conto che abbiamo 4 elementi della matrice di retroazione K e due poli da determinare possiamo scegliere K12 = K21 = 0 e quindi il paragone dei due polinomi caratteristici ci fornisce K22 + K11 = 0 e 3 gennaio 2014 1 1 + K11 + K22 + K11 · K22 2 + ω50Hz = 2 2 2 R ·C R · C2 Ivan Furlan, Silvano Balemi 81 Progettazione di Controllori Capitolo 5. Controllo vettoriale e quindi K11 = −K22 = ω50Hz · R · C Un’altra scelta consiste nel scegliere K11 = K22 = 0 che ci fornisce quindi 1 − K12 · K21 ω50Hz 1 2 + ω50Hz + (K21 − K12 ) = 2 2 2 R ·C R·C R · C2 Tre le diverse soluzioni troviamo per esempio K12 = K21 = ω50Hz · R · C 82 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 6 Quantization effects 6.1 6.1.1 Analysis of round-off error Introduction Truncation (lower bound) and round-off (closer value) are two approximations. Both can be represented by x = xq + ǫ where xq is the digital representation of x with error ǫ. 6.1.2 The worst-case error bound Consider a system Y (z) = H(z)U(z) where the output is in fact Ŷ (z) = H(z)U(z) + H 1 (z)E(z) where H 1 (z) is the transfer function from the round-off error to the output. Then ∆Y (z) = Ŷ (z) − Y (z) = H 1 (z)E(z) and δyn = n X h1k ǫn−k k=0 As ǫ1n−k (x) ≤ q/2 we have the bound |δyn | = Thus n X 1 h ǫ n−k k k=0 ≤ n X 1 hk ǫn−k k=0 |δyn | ≤ 3 gennaio 2014 = n X 1 hk |ǫn−k | k=0 ∞ qX 1 h ∀ n 2 k=0 k Ivan Furlan, Silvano Balemi ≤ n X 1 hk k=0 q 2 83 Progettazione di Controllori Capitolo 6. Quantization effects The worst-case error for multiple error sources is |δyn | ≤ ∞ qj X 1 hk,j ∀ n j=1 2 k=0 N X 1 z−α Esempio 6.1 For the error system H 1 (z) = |δy| ≤ we obtain the error q 1 2 1 − |α| Note that the sum of the square values of the impulsive response in the above example, has been determined by using a formula that holds only for first order 1 . systems in the form z−α 6.1.3 The steady-state worst-case If transient errors are of no concern, steady-state errors are analyzed by assuming that all variables eventually become constant. Then δy∞ = lim δyn = lim n→∞ n→∞ ∞ X h1k ǫn−k k=0 k=0 where ǫ∞ indicates the steady-state error and |δy∞ | = ∞ X h1k ǫ∞ k=0 = ∞ X ǫ∞ h1k k=0 = ∞ X h1k ǫ∞ ∞ q q X ≤ h1k = · |H 1 (1)| 2 k=0 2 The steady-state error for multiple error sources is |δy∞ | = N X qj 1 |Hj (1)| j=1 2 Esempio 6.2 For the error system H 1 (z) = |δy∞| ≤ 6.1.4 1 z−α we obtain the error q 1 21−α Stochastic analysis of round-off error If we consider varying signals with amplitudes larger than the quantization step then we can reasonably assume that the quantization error is uniformly distributed in the interval q q − ≤ǫ≤ 2 2 2 This variable has zero mean and variance σ = q 2 /12. Furthermore, we choose to approximate the signal ǫ with a white noise w with autocorrelation function E(ωk · ωk+τ ) = Rw,τ 84 q2 τ =0 = 12 0 τ= 6 0 Ivan Furlan, Silvano Balemi 3 gennaio 2014 6.1. Analysis of round-off error Progettazione di Controllori Reminding that the power spectrum of a signal x(k) is Sx (z) = Z(Rx,τ ) = X(z) · X(z −1 ) and Sδy (z) = Sh1 (z) · Sw (z) = H 1 (z) · H 1 (z −1 ) · Sw (z) and noting that Sw (z) = Z(Rw,τ ) = Z ∞ X k=−∞ Rw,k z −k = Rw,0 = then Sδy (z) = H 1 (z)H 1 (z −1 ) q2 12 q2 12 we obtain Rδy (τ ) = Z −1 q2 (H (z)H (z )) 12 1 1 −1 2 σδy ⇒ ∞ q2 X (h1m )2 = · 12 m=0 = Rδy,0 Another derivation starts from the expection of the squared value of the output: E(yk2 ) k X = E m=0 k k X X = E = h1m ! · wk−m · h1m m=0 n=0 k k X X h1m · m=0 n=0 · wk−m · k X h1n n=0 h1n · wk−n · wk−n !! ! h1n · E (wk−n · wk−m ) But E(wk−m · wk−n ) = Then E(y 2(k)) = q2 · δm−n 12 k q2 X (h1 )2 · 12 m=0 m and for k approaching infinity ∞ q2 X = (h1m )2 , · 12 m=0 2 σδy that for multiple error sources is 2 σδy = 3 gennaio 2014 ∞ qj2 X (h1m,j )2 , · 12 m=0 j=1 N X Ivan Furlan, Silvano Balemi 85 Progettazione di Controllori Capitolo 6. Quantization effects Esempio 6.3 For the error system H 1 (z) = σδy q = 2 s 1 z−α we obtain the error 1 3(1 − α2 ) Note that the sum of the square values of the impulsive response in the above example, has been determined by using a formula that holds only for first order 1 . systems in the form z−α To determine the sum of the square of the impulsive response samples for a generic discrete system, a direct formula exists. Thanks to the convolution property of the Z-transform, the square of the impulsive response of a given system H 1 (z) can be viewed as n o Z −1 H 1 (z) ∗ H 1 (z) → (h10 )2 , (h11 )2 , (h12 )2 , . . . from which Z −1 1 H (z) ∗ H 1 (z) z=1 I k X 1 1 1 1 = (h1m )2 . · v −1 · dv = · H (v) · H 2·π·j v m=0 Esempio 6.4 For the error system H 1 (z) = σδy = v u qu t1 2 3 · 1 (z−α)2 ∞ X we obtain the error (h1m )2 , m=0 where ∞ X (h1m )2 m=0 1 = · 2·π·j I v 1 · dv. 2 · (v − α) (1 − α · v)2 The circular integral has to be calculated on a path that yields in the convergence region of the integrated function (i.e. in this case the circular region contained in two circles of respective rays R1 = α and R2 = α−1 ). The integral can be solved by using the residue theorem as follows ∞ X (h1m )2 m=0 v 1 d (v − α)2 · = 2 · dv (v − α) (1 − α · v)2 1 2 · α2 = + , (1 − α2 )2 (1 − α2 )3 form which σδy 86 v u ! v=α ! 2 · α2 1 q u1 , + = t · 2 3 (1 − α2 )2 (1 − α2 )3 Ivan Furlan, Silvano Balemi 3 gennaio 2014 6.1. Analysis of round-off error 6.1.5 Progettazione di Controllori Illustrative example Given is the following continuous-time model of a electric system 1 G(s) = s+β controlled by a discrete-time proportional controller C(z) = Kp with sampling time T . Determine the worst-case error bound, the steady state worst-case error and the rms error induced by the followings AD and DA converter. number of bit AD range AD number of bit DA range DA = = = = NAD rAD NDA rDA The discrete-time transfer-function of the system G(s) is 1 − e−α·T G(z) = z − e−β·T The transfer function from the AD noise to the output is HAD2y = − Kd · 1 − e−β·T z − e−β·T + Kd · (1 − e−β·T ) The transfer function from the DA noise to the output is HDA2y = The quantization steps q are 1 − e−β·T z − e−β·T + Kd · (1 − e−β·T ) qAD = qDA rAD N AD − 2 1 rDA = N 2 DA − 1 Then the noises are |δy| ≤ |δy∞ | ≤ 2 σδy = Kd · 1 − e−β·T 1 − e−β·T qAD qDA · + · −β·T −β·T 2 z − |e + Kd · (1 − e )| 2 z − |e−β·T + Kd · (1 − e−β·T )| qAD 2 −β·T K · 1 − e d + · −β·T −β·T + Kd · (1 − e ) 1 − e qDA 2 −β·T 1 − e · −β·T −β·T + Kd · (1 − e ) 1 − e 2 2 1 − e−β·T Kd · 1 − e−β·T qAD qDA · + · 12 1 − (e−β·T + Kd · (1 − e−β·T ))2 12 1 − (e−β·T + Kd · (1 − e−β·T ))2 3 gennaio 2014 Ivan Furlan, Silvano Balemi 87 Progettazione di Controllori 6.2 Capitolo 6. Quantization effects Roundoff of parameters The effect can be analyzed through the sensitivity of the poles with respect to parameter changes. Given the caracteristic polynomial P (pj , αk ) = 0 and the perturbed caracteristic polynomial ∂P ∂P ∂P ∂P P (pj +δpj , αk +δαk ) = 0 ≈ P (pj , αk )+ δαk = δαk = 0 δpj + δpj + ∂z z=pj ∂αk ∂z z=pj ∂αk we obtain Esempio 6.5 For ∂P/∂αk δαk δpj ≈ − ∂P/∂z z=pj P (z, αk ) = n Y (z − pl ) l=1 of the form P (z, αk ) = z n + α1 z n−1 + . . . + αn we obtain pjn−k δαk δpj = − Q l6=j (pj − pl ) As for stable poles |pj | < 1 this expression is large for large k (see numerator of the fraction) a change in αn is particularly critical. Moreover, a change in the parameter is also critical if poles are close to each other (in which case the denominator becomes small). 6.3 Limit cycles and dither Round-off can cause limit cycles. Consider the contraction xk+1 = α · xk with α < 1 Of course limk→∞ xk = 0. Consider instead the same function with quantization as xk+1 = Q(α · xk ) with α < 1 where the quantization is given by a round-off of step q. Then limk→∞ xk 6= 0 as shown in figure 6.1. A limit cycle occurs when we get stuck on the same quantization level. Figure 6.1 shows that this may happen when α · x = α · k · q ≥ k · q − q/2 88 ⇒ Ivan Furlan, Silvano Balemi k·q ≥ 1 q 21−α (6.1) 3 gennaio 2014 6.3. Limit cycles and dither Progettazione di Controllori slope 1/α x 6 x1 x2 x3 , x4 , . . . - ..................................................................... 6 6 .................................................................................................................. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. - k·q − q/2 - - 6 6 q ? ... ... ... ... ... ... ... ... .. ? ? ? ? - α·x - α·k·q k·q Figura 6.1: Roundoff and limit cycle. Starting with x1 we obtain in sequence x2 and x3 which is a fixed point of the quantized contraction. Consider now the second order system shown in figure 6.2. A limit cycle occurs when a pole reaches the unit circle. In fact, this happens when condition (6.1) with α = a2 is satisfied. A quantization step q = 0.1 should cause an oscillation of q amplitude 21 1−α = 0.5 · 0.1/0.1 = 0.5. The simulation shown in the top graph of figure 6.3 confirms this value for the amplitude of the oscillation. Consider again the situation shown in figure 6.1 with the signal stuck at x3 . If an outside high frequency signal (dither) of amplitude 3q is applied, one would expect the average value of the output to drift towards zero. A dither applied before the quantization of a2 · y in the second order system of figure 6.2 effectively removes the limit cycle as shown in the bottom graph of figure 6.3. 1 1 z z a1 a2 Figura 6.2: Second order system with quantized coefficients. a2 = 1.78, a2 = 0.9 3 gennaio 2014 Ivan Furlan, Silvano Balemi 89 Progettazione di Controllori Capitolo 6. Quantization effects q=0 and q=0.1 showing Limit cycle (no dither) 6 4 2 0 −2 −4 0 20 40 60 80 100 120 140 120 140 q=0 and q=0.1 showing reduced limit cycle from dither=4q 6 4 2 0 −2 −4 0 20 40 60 80 100 Figura 6.3: Closed-loop system with limit cycle because of round-off and addition of dither 90 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 7 Cenni di stima lineare ed osservatore degli stati ottimo 7.1 Introduzione Dover stimare delle grandezze fisiche sulla base di misure affette da rumore (o incertezza) è un compito che un ingegnere deve affrontare frequentemente, un esempio è la media aritmetica eseguita su un insieme di dati misurati, eseguita con lo scopo di trovare il valore rappresentativo di questi ultimi. È necessario però precisare che la media aritmetica è solamente un caso particolare di una teoria ben più generale: La teoria della stima. Questo capitolo si prefigge di introdurre cenni sulla teoria della stima per poi mostrare come quest’ultima possa venir utilizzata per derivare l’osservatore degli stati ottimo, detto : predittore di Kalman. 7.2 Cenni di teoria della stima: la stima lineare In questo paragrafo verranno introdotti: lo stimatore lineare non polarizzato, lo stimatore lineare ottimo e la sua derivazione algebrica, ed infine la forma ricorsiva dello stimatore lineare ottimo. 7.2.1 Stimatore lineare non polarizzato Di norma quando si effettuano delle misure, lo si fa con lo scopo di stimare delle grandezze non note che sono legate in qualche modo alle misure effettuate. In questo capitolo ci occuperemo in particolare di qui casi in cui i dati misurati (che rappresenteremo con la lettera b) possono essere messi in relazione alle grandezze che vogliono essere stimate (che rappresenteremo con la lettera θ) come segue b=A·θ+ǫ (7.1) dove 3 gennaio 2014 Ivan Furlan, Silvano Balemi 91 Progettazione di ControlloriCapitolo 7. Cenni di stima lineare ed osservatore degli stati ottimo • b come detto rappresenta le misure effettuate, ed in particolare trattasi di un vettore colonna b = [b0 , b1 , . . . , bN ]T i quali elementi bi sono le grandezze misurate. • θ è come detto rappresenta le grandezze non note, ed in particolare trattasi di un vettore colonna θ = [θ0 , θ1 , . . . , θM ]T i quali elementi θi che le grandezze che devono essere stimate a partire dalle misure b, in generale vale che M ≤ N. • A è una matrice nota di dimensione M × N, cioé M righe ed N colonne, che lega le grandezze misurate b alle grandezze sconosciute θ. • ǫ è un vettore colonna ǫ = [ǫ0 , ǫ1 , . . . , ǫN ]T contenente le sorgenti di rumore θi che affliggono le misure bi . Di norma sono segnali considerabili casuali (random), di cui sono note solo alcune caratteristiche statistiche, come: – La media µ = E[ǫ] = [E[ǫ0 ], E[ǫ1 ], . . . , E[ǫN ]]T , vettore colonna che di norma vale zero (rumore a media nulla). – La matrice di covarianza Q = E[ǫ · ǫT ] di dimensione N × N, che dá informazione sull’incertezza di misura (varianza). Tale matrice risulta simmetrica (Q = QT ) e definita positiva Q > 0 (quindi sempre invertibile). Esempio 7.1 Supponiamo di voler stimare la temperatura di una stanza T mediante 3 misurazioni eseguite con tre differenti strumenti (T1 , T2 , T3 ). Il disturbo di misura h (o incertezza delle misure) ǫ = ǫ1 ǫ2 ǫ3 seguenti risultati sono stati misurati iT è caratterizzato da media nulla. I misura strumento 1 = T1 , misura strumento 2 = T2 , misura strumento 3 = T3 . Le temperature misurate Ti possono essere espresse in funzione della reale temperatura T ed il rumore stocastico ǫ come segue T1 = T + ǫ1 , T2 = T + ǫ2 , T3 = T + ǫ3 , che in forma matriciale (7.1) diventano T1 1 ǫ0 T2 = 1 · [T ] + ǫ1 . |{z} T3 1 ǫ2 θ | {z } b 92 | {z } A Ivan Furlan, Silvano Balemi | {z } ǫ 3 gennaio 2014 7.2. Cenni di teoria della stima: la stima lineare Progettazione di Controllori In questo capitolo ci occuperemo di come stimare le grandezze non note θ a partire dalle misure b per mezzo di uno stimatore lineare. Per stimatore lineare si intende una qualsiasi combinazione lineare delle uscite del sistema (7.1) atta alla stima delle grandezze ignote θ. Uno stimatore lineare può quindi essere rappresentato per mezzo di una matrice K come segue θ̂ = K · b. (7.2) dove le dimensioni della matrice K sono M × N, cioé M righe ed N colonne. Se il valore atteso della stima corrispondere alle grandezze reali θ, cioè h i E θ̂ = θ, lo stimatore lineare è detto non polarizzato. Di seguito si dimostra come una qualsiasi matrice K che rispetti la condizione K · A = I, generi uno stimatore lineare non polarizzato h i E θ̂ = θ E [K · b] = θ E [K · A · θ + K · ǫ] = θ (7.3) K · A · E [θ] +K · E [ǫ] = θ | {z } | {z } 0 θ K ·A·θ K ·A = θ = I. Esempio 7.2 Riprendendo l’esempio (7.1), come appena visto, uno stimatore lineare non polarizzato deve rispettare la condizione K · A = I, una scelta possibile consiste in h i K = 31 31 31 , con il quale si ottiene la stima T̂media = T1 + T2 + T3 . 3 Si noti come lo stimatore lineare scelto coincida con la media aritmetica delle misure. Un’altra scelta di K porterebbe ad un differente risultato. Nella prossimo paragrafo vedremo quale, tra le tante possibili matrici K rappresentanti uno stimatore lineare non polarizzato, sia quella definita ottima. 7.2.2 Stimatore lineare ottimo (stimatore di Gauss-Markov) Lo stimatore lineare è detto ottimo se la stima generata θ̂ tramite la formula (7.2) rispetta contemporaneamente le seguenti proprieta’ statistiche h i • Deve essere non polarizzato, quindi E θ̂ = θ che, come visto nel paragrafo precedente, impone in K · A = I h i • La varianza della stima E kθ − θ̂k22 deve essere minima. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 93 Progettazione di ControlloriCapitolo 7. Cenni di stima lineare ed osservatore degli stati ottimo Come verra’ dimostrato nel prossimo paragrafo, la matrice K −1 K = AT · Q−1 · A · AT · Q−1 . (7.4) garantisce una stima ottima. Esempio 7.3 Riprendendo l’esempio (7.2), con in aggiunta la matrice di covarianza dell’incertezza di misura ǫ σT1 0 0 Q = 0 σT2 0 0 0 σT3 , e applicando lo stimatore ottimo K (7.4), si ottiene la seguente stima della temperatura T T̂opt = K · b = = = −1 AT · Q−1 · A T1 σT1 1 σT1 T T2 σT2 1 σT2 + · AT · Q−1 · b −1 1 σT1 0 0 1 σT2 0 · 0 1 0 0 σT3 + + + T3 σT3 1 σT3 1 · 1 1 −1 · T −1 1 σT1 0 0 1 σT2 0 · 0 1 0 0 σT3 . Paragonando il risultato ottenuti nell’esempio (7.2) e quest’ultimo risultato, si nota che • Nel caso in cui le incertezze sulle misure risultino identiche (σT1 = σT2 = σT3 ) la media risulta essere identica allo stimatore lineare ottimo T̂media = T̂opt • Nei casi in cui non si verifichi la condizione σT1 = σT2 = σT3 , la media si differenza della stima ottima in quanto quest’ultima dà peso minore alle misure più incerte. Per questa ragione la stima ottima risulta essere più attendibile rispetto la stima lineare solamente non polarizzata, 7.2.3 Derivazione dello stimatore lineare ottimo Verrà ora dimostrata la hformula (7.4). Come visto nel paragrafo precedente, la i condizione sulla media E θ̂ = θ richiede impone K · A = I. 94 Ivan Furlan, Silvano Balemi 3 gennaio 2014 T1 · T2 T3 7.2. Cenni di teoria della stima: la stima lineare Progettazione di Controllori h Questo,come mostrato di seguito,permette di esprimere la varianza della stima E kθ − θ̂k22 in funzione del solo rumore di misura ǫ e dello stimatore lineare ottimo K cercato, h E kθ − θ̂k22 i h i = E kθ − K · bk22 , = E kθ − K · A} ·θ − K · ǫk22 , | {z I h = E kK · ǫk22 h i , i = E ǫT · K T · K · ǫ . Siccome il termine (7.5) ǫT · K T · K · ǫ risulta essere uno scalare, vale che i ǫT · K T · K · ǫ = tr K · ǫ · ǫT · K T . Dunque la varianza (7.5) può essere espressa come segue h i h E kθ − θ̂k22 = E tr K · ǫ · ǫT · K T . (7.6) Per la linearità dell’operatore di valore atteso, e considerando la definizione della mai h trice di covarianza data precedentemente Q = E ǫ · ǫT , l’equazione (7.6) degenera in h i h i E kθ − θ̂k22 = tr K · ǫ · ǫT · K T = tr K · E ǫ · ǫT · K T = tr K · Q · K T . Dunque lo stimatore lineare ottimo, risulta essere la matrice K che minimizza la grandezza tr K · Q · K T in presenza del vincolo K · A = I. La soluzione di questo problema può essere ottenuta minimizzando la seguente funzione di Lagrange (minimizzazione con vincoli) L(K, λ) = tr K · Q · K T + tr (λ · (K · A − I)) , | {z } Funzione da minimizzare che equivale a | {z } Funzione che fissa i vincoli L(K, λ) = tr K · Q · K T + λ · (K · A − I) , dove λ rappresenta la matrice moltiplicatrice di Lagrange. Il minimo di L(K, λ) deve essere in un punto ove ∇L(K, λ) = h ∂L(K,λ) ∂K ∂L(K,λ) ∂λ Applicando le seguenti regole del calcolo matriciale ∂tr(A·X·B) ∂X ∂tr(A·X·B·X T ·C ) ∂X 3 gennaio 2014 iT = 0. = B · A, = B · X T · C · A + B T · X T · AT · C T , Ivan Furlan, Silvano Balemi 95 i Progettazione di ControlloriCapitolo 7. Cenni di stima lineare ed osservatore degli stati ottimo e siccome Q = QT , si ottiene ∂L(K,λ) ∂K ∂L(K,λ) ∂λ = Q · K T + QT · K T + A · λT = 2 · QT · K T + A · λT = 0, = K · A − I = 0. (7.7) Dalla prima equazione del sistema (7.7) si ottiene 1 K T = − · Q−1 · A · λT , 2 1 K = − · λ · AT · Q−1 . 2 (7.8) Moltiplicando entrambe le parti dell’equazione (7.8) per la matrice A risulta 1 K · A = − · λ · AT · Q−1 · A. 2 Considerando ora la seconda equazione del sistema (7.7), che fissa K ·A = I (vincolo di ottimizzazione), l’equazione sopra diventa 1 I = − · λ · AT · Q−1 · A, 2 da cui −1 λ = −2 · AT · Q−1 · A . Sostituendo il valore di λ trovato in (7.8) si ottiene K = (AT · Q−1 · A)−1 · AT · Q−1 . Tramite la matrice Hessiana della funzione L(K, λ) è possibile dimostrare che la coppia (λ, K) trovata corrisponde ad un punto di minimo, di conseguenza K rappresenta lo stimatore ottimo cercato. 7.2.4 Stima ottima: algoritmo ricorsivo Il sistema di equazioni (7.1) può essere riformulato come segue bk = Ak · θ + nk dove bk = β1 β2 .. . βk , Ak = Λ1 Λ2 .. . Λk , ǫk = ν1 ν2 .. . νk con k ∈ {1, 2, . . . , ∞}. Con θ̂k viene ora rappresentata la stima ottima di θ per un determinato k, risulta quindi essere θ̂k = ATk · Q−1 k · Ak 96 −1 · ATk · Q−1 k · bk , Ivan Furlan, Silvano Balemi (7.9) 3 gennaio 2014 7.3. Predittore di Kalman Progettazione di Controllori dove h Qk = E ǫk · ǫTk i è la matrice di covarianza del rumore di misura. Se si volesse conoscere la miglior stima della grandezze θ per ogni k, di principio basterebbe risolvere i seguenti calcoli. Stima per k = 0 : θ̂1 = Stima per k = 1 : θ̂2 .. . = Stima per k = ∞ : θ̂∞ = AT1 · Q−1 1 · A1 −1 −1 AT2 · Q−1 2 · A2 AT∞ · Q−1 ∞ · A∞ · AT1 · Q−1 1 · b1 , · AT2 · Q−1 2 · b2 , −1 · AT∞ · Q−1 ∞ · b∞ . La soluzione risulta però essere computazionalmente onerosa, in quanto le matrici crescono in dimensione al crescere di k e quindi di fatto impraticabile. Nel caso però in cui le sorgenti di rumore ǫk risultino scorrellate in k, cioè h Qk = E nk · nTk = q1 0 .. . 0 0 i ... 0 . . q2 . . .. .. .. . . 0 . . . 0 qk , diventa possibile risolvere il problema di stima in modo ricorsivo e, conseguentemente, in modo computazionalmente realizzabile. I passaggi per la derivazione della forma ricorsiva posso essere trovati in appendice (7.4), di seguito viene riportato solo quanto ne risulta θ̂k+1 −1 = θ̂k + Pk+1 · ΛTk+1 · qk+1 · βk+1 − Λk+1 · θ̂k −1 Pk+1 = Pk−1 + Λk+1 · qk+1 · ΛTk+1 P−1 = 0. −1 In questo caso le matrici, a differenza dell’equazione (7.9), non crescono in dimensione al crescere di k, risultando quindi computazionalmente trattabili. 7.3 Predittore di Kalman In questo paragrafo verrà mostrato come applicando la teoria della stima lineare ottima sia possibile ottenere l’osservatore degli stati a minima varianza (predittore di Kalman). 3 gennaio 2014 Ivan Furlan, Silvano Balemi 97 Progettazione di ControlloriCapitolo 7. Cenni di stima lineare ed osservatore degli stati ottimo 7.3.1 Osservatore degli stati ottimo Si consideri il seguente sistema lineare discreto stocastico xk+1 = Φ · xk + Γ · uk + ωk yk = C · xk + vk . (7.10) x0 = µ0 + ω−1 (7.11) con stato iniziale I termini wk e vk sono sorgenti di irumore bianco , ha mediai zero ed incorrelate mutualh mente con covarianze E ωk · ωkT = qk > 0 e E vk · vkT = rk > 0 rispettivamente. Si assume inoltre che il sistema abbia uno stato iniziale stocastico (7.11), dove µ0 rappresenta ila media e ω−1 una sorgente di rumore bianco a media zero e covarianza h T E ω−1 · ω−1 = q−1 > 0. Grazie alle equazioni (7.10) e (7.11), k + 1 uscite misurate y0 , y1 , . . . , yk , e k + 1 entrate conosciute u0 , u1 , . . . , uk , come pure le informazioni sullo stato iniziale (7.11), possono essere messe in relazione con k + 2 stati non noti x0 , x1 , . . . , xk+1 come segue µ0 Γ · u0 y0 .. . = x0 + ω−1 , = x1 − x0 · Φ − ω0 , = C · x0 + v0 , Γ · um = xm+1 − xm · Φ − ωm , ym = C · xm + vm , .. . Γ · uk yk = xk+1 − xk · Φ − ωk , = C · xk + vk . che in forma matriciale diviene bk = Ak · θk + ǫk , con µ0 Γ · u 0 y 0 . . . Γ · u m y m . . . Γ · u k y k = θk = ǫk ω−1 −ω0 v0 . . . −ωm I 0 ... ... ... ... −Φ I 0 ... ... ... C 0 0 ... ... ... 0 −Φ I 0 ... ... = 0 C 0 0 ... ... . . .. .. 0 . . . 0 0 .. .. . . 0 ... 0 0 Ak 98 h bk = h x0 x1 x2 . . . xm xm+1 . . . xk xk+1 h Ivan Furlan, Silvano Balemi iT vm . . . −ωk vk 0 0 0 0 0 iT iT 0 0 3 gennaio 2014 7.3. Predittore di Kalman Progettazione di Controllori e matrice di covarianza h i Qk = E ǫk · ǫTk = diag q−1 q0 r0 . . . qm rm . . . qk rk . Essendo i rumori di tipo bianco (quindi completamente scorrellati in k), la stima degli stati può essere ottenuta applicando lo stimatore lineare ottimo θ̂k = ATk · Q−1 k · Ak −1 · ATk · Q−1 k · bk . (7.12) Come visto nei precedenti paragrafi, è possibile trovare una soluzione ricorsiva del problema (7.12), essa verrà introdotta nel prossimo paragrafo. 7.3.2 Predittore degli stati ottimo: algoritmo ricorsivo Anche per la stima ottima degli stati le dimensioni delle matrici in gioco (e quindi di pari passo la mole computazionale) risultano crescere con k, inoltre all’istante generico k si é di solito unicamente interessati alla stima dello stato dell’istante k + 1 e non a tutto il vettore θk . Come già mostrato per la stima lineare ottima, risulta più efficiente risolvere il problema (7.12) in modo ricorsivo: x̂k+1 = Φ · x̂k + Γ · uk + Pk · C T · rk−1 · (yk − C · x̂k ) Pk = P−1 = 0, qk−1 + Φ · Pk−1 · ΦT −1 + C T · rk−1 · C −1 (7.13) La derivazione della forma ricorsiva dell’osservatore degli stati ottimo può essere ottenuta con passaggi simili a quelli riportati in appendice (7.4) utili alla derivazione dello stimatore lineare ottimo ricorsivo. Esempio 7.4 La figura (7.1) mette a confronto la stima dello stato x1 del sistema seguente fornite da : un predittore di kalman e da un osservatore progettato in modo classico. " # " # x1,k+1 x1,k = Φ· + Γ · uk + ω x2,k+1 x " 2,k # x1,k yk = C· + vk x2,k dove Φ= " 1.9990 −0.0999 1 0 # Γ= " 0.9765625 · 10−3 0 # C = 10−3 · h 0.51183 0.51166 Le varianze dei rumori ωk e vk sono qk = 10−3 · diag nh 0.2 0.1 io , rk = 0.2. Si nota come il predittore di Kalman fornisca una stima dello stato migliore rispetto a quella fornita da un osservatore progettato con il metodo classico. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 99 i . Progettazione di ControlloriCapitolo 7. Cenni di stima lineare ed osservatore degli stati ottimo 1200 1000 800 stato x1 600 400 200 0 −200 0 1 2 3 4 5 t [s] 6 7 8 9 10 Figura 7.1: Comportamento dello reale stato x1 (curva blu), stato x1 stimato con un predittore di Kalman (curva nera), stato x1 stimato con un osservatore standard (curva rossa), il predittore di Kalman dà una stima migliore rispetto quella ottenuta con un osservatore progettato in modo classico. 7.3.3 Predittore degli stati ottimo stazionario L’osservatore degli stati ottimo viene spesso utilizzato nella seguente forma −1 x̂k+1 = Φ · x̂k + Γ · uk + P∞ · C T · r∞ · (yk − C · x̂k ) dove P∞ è il valore stazionario di Pk , quindi soluzione dell’equazione matriciale P∞ = q∞ + Φ · P∞ · ΦT −1 −1 + C T · r∞ ·C −1 La forma risulta però essere sub-ottimale, in quanto si avrà una stima degli stati a varianza minima solo per k → ∞. 7.3.4 Relazione tra l’osservatore degli stati ottimo ed osservatore degli stati classico Definendo Lk = Pk · C T · rk−1 , l’osservatore degli stati ottimo (7.13) può essere espresso come segue x̂k+1 = Φ · x̂k + Γ · uk + Lk · (yk − C · x̂k ) . Si può notare come l’osservatore degli stati ottimo sia identico strutturalmente ad un’osservatore degli stati classico x̂k+1 = Φ · x̂k + Γ · uk + L · (yk − C · x̂k ) . 100 Ivan Furlan, Silvano Balemi 3 gennaio 2014 7.3. Predittore di Kalman Progettazione di Controllori La differenza sostanziale è insita nell matrice L, in un osservatore degli stati classico quest’ultima risulta costante e dipendente dai poli scelti, mentre in un osservatore degli stati ottimo risulta essere tempo variante e dipendente dalle matrici di covarianza in gioco. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 101 Progettazione di ControlloriCapitolo 7. Cenni di stima lineare ed osservatore degli stati ottimo 7.4 Appendice : Derivazione dello stimatore lineare ottimo ricorsivo Con lo scopo di derivare la forma ricorsiva, bisogna innanzitutto mettere in relazione i parametri stimati al tempo k + 1 con i parametri stimati al tempo k come segue θ̂k+1 = θ̂k + ∆θ̂k . (7.14) Da cui ∆θ̂k = θ̂k+1 − θ̂k ATk+1 · Q−1 k+1 · Ak+1 = Definendo per comodità −1 · ATk+1 · Q−1 k+1 · bk+1 − θ̂k . Pk+1 = ATk+1 · Q−1 k+1 · Ak+1 si può quindi scrivere ∆θ̂k = Pk+1 · ATk+1 · Q−1 k+1 · bk+1 − θ̂k , −1 , = Pk+1 · ATk+1 · Q−1 k+1 · bk+1 − Ak+1 · θ̂k , = Pk+1 · h −1 ATk · Q−1 ATk+1 · qk+1 k i · = Pk+1 · ATk · Q−1 k · bk − Ak · θ̂k + " bk βk+1 (7.15) # − −1 Pk+1 · ATk+1 · qk+1 · βk+1 − Λk+1 · θ̂k , " Ak Λk+1 # ! · θ̂k , T −1 = Pk+1 · ATk · Q−1 k · bk − Ak · Pk · Ak · Qk · bk + | {z } θ̂k −1 Pk+1 · ΛTk+1 · qk+1 · βk+1 − Λk+1 · θ̂k , T −1 T −1 = Pk+1 · ATk · Q−1 k · bk − Ak · Qk · Ak · Pk ·Ak · Qk · bk + | | {z I {z 0 } } −1 Pk+1 · ΛTk+1 · qk+1 · βk+1 − Λk+1 · θ̂k . Quindi −1 ∆θ̂k = Pk+1 · ΛTk+1 · qk+1 · βk+1 − Λk+1 · θ̂k . Perciò l’equazione (7.14) diventa −1 θ̂k+1 = θ̂k + Pk+1 · ΛTk+1 · qk+1 · βk+1 − Λk+1 · θ̂k . 102 Ivan Furlan, Silvano Balemi (7.16) 3 gennaio 2014 7.4. Appendice : Derivazione dello stimatore lineare ottimo ricorsivoProgettazione di Controllori Notando che −1 Pk+1 = Pk−1 + ΛTk+1 · qk+1 · Λk+1 −1 , (7.17) e riunendo quindi le equazioni (7.17) e (7.16), si ottiene la forma ricorsiva della (7.9) θ̂k+1 −1 = θ̂k + Pk+1 · ΛTk+1 · qk+1 · βk+1 − Λk+1 · θ̂k −1 Pk+1 = Pk−1 + Λk+1 · qk+1 · ΛTk+1 P−1 = 0. 3 gennaio 2014 −1 Ivan Furlan, Silvano Balemi 103 Progettazione di ControlloriCapitolo 7. Cenni di stima lineare ed osservatore degli stati ottimo 104 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 8 Controllo predittivo 8.1 Introduzione Il controllo predittivo (in inglese “model predictive control” oppure anche “model based predictive control”) è stato proposta da Propoy nel 1963 ma solamente negli anni 80 ha iniziato ad avere successo grazie a varie apoplicazioni industriali in particolare nel settore della chimica e della petrolchimica. Il controllo predittivo non è un algoritmo preciso ma indica piuttosto una famiglia di controllori per sistemi lineari discreti nel tempo. Tutti questi controllori presentano nel loro impiego i tre passi seguenti: 1. Predizione con modello (descrizione delle uscite future in funzione delle uscite passate, delle entrate passate e delle entrate future) 2. Ottimizzazione (minimizzazione dell’indice di prestazione scelto con la determinazione delle entrate future) 3. Utilizzo della prima entrata futura calcolata e ritorno al punto 1 per il prossimo campionamento. Diverse varianti tengono conto nell’ottimizzazione di aspetti supplementari come • disturbi (conosciuti o non) • limiti delle entrate, delle uscite o delle variazioni delle entrate Il modello di partenza può essere una rappresentazione di stato, o spesso la risposta al gradino unitario. La risposta impulsiva {hk } = {h0 , h1 , h2 , . . . } descrive il comportamento di un sistema lineare e invariante nel tempo grazie alla convoluzione yk = {hk } ∗ {uk } = ∞ X i=0 hi · uk−i Una simile descrizione è però anche possibile con la risposta al gradino unitario {gk } = {g0 , g1 , g2 , . . . }: yk = {gk } ∗ {∆uk } = 3 gennaio 2014 ∞ X i=0 gi · ∆uk−i Ivan Furlan, Silvano Balemi 105 Progettazione di Controllori Capitolo 8. Controllo predittivo P dove ∆uk = uk − uk−1 indica l’incremento del valore d’entrata e dove gk = ki=0 hk . In seguito presenteremo i tre passi per un semplice controllore predittivo che utilizza la risposta al gradino unitario come modello di base. Questo controllore predittivo è usato in un prodotto commerciale chiamato “Dynamic matrix control”. 8.2 Predizione Per un sistema con funzione di trasferimento “strictly proper”, cioè con h0 = 0 e quindi g0 = 0 abbiamo per un valore k intero ŷk+h = = ∞ X i=1 h X i=1 = h X i=1 = h X i=1 = h X i=1 | gi · ∆uk+h−i gi · ∆uk+h−i + gi · ∆uk+h−i + gi · ∆uk+h−i + ∞ X i=h+1 ∞ X j=1 ∞ X j=1 gj+h · ∆uk−j gj+h · ∆uk−j + yk − gi · ∆uk+h−i + yk + {z γk+h } | gi · ∆uk+h−i ∞ X ∞ X j=1 (gj+h − gj ) · ∆uk−j gj · ∆uk−j (8.1) j=1 {z fk+h } dove fk+h indica la risposta libera al tempo k + h (dopo un orizzonte h), data la situazione al tempo k, mentre γk+h indica il contributo delle entrate future. Ipotizzando che dopo N passi si sia raggiunto lo stato stazionario possiamo approssimare la risposta libera con fk+h = yk + N X (gj+h − gj ) · ∆uk−j j=1 Consideriamo adesso l’equazione (8.1) per differenti valori di h e supponiamo che ∆uk+j = 0 ∀j ≥ m (l’entrata rimane costante dopo m mosse). Otteniamo allora le equazioni ŷk+1 ŷk+2 ŷk+3 .. . = = = .. . g1 · ∆uk g2 · ∆uk + g3 · ∆uk + .. . ŷk+m .. . ŷk+p−1 ŷk+p = .. . gm · ∆uk + gm−1 · ∆uk+1 + .. . 106 g1 · ∆uk+1 g2 · ∆uk+1 + g1 · ∆uk+2 = gp−1 · ∆uk + gp−2 · ∆uk+1 + = gp · ∆uk + gp−1 · ∆uk+1 + Ivan Furlan, Silvano Balemi ... + +fk+1 +fk+2 +fk+3 .. . g1 · ∆uk+m−1 +fk+m .. . . . . + gp−m · ∆uk+m−1 +fk+p−1 . . . + gp−m+1 · ∆uk+m−1 +fk+p 3 gennaio 2014 8.3. Ottimizzazione Progettazione di Controllori che possono essere riscritte come ŷ = G · ∆u + f (8.2) dove il simbolo in grassetto indica un vettore (per esempio ŷ = [ŷk+1, ŷk+2, . . . , ŷk+p ]′ , ∆u = [∆uk , ∆uk+1 , . . . , ∆uk+m−1 ]′ ) e dove G= g1 g2 g3 .. . g m . .. gp−1 gp 0 g1 g2 .. . 0 0 g1 .. . gm−1 .. . gp−2 gp−1 gm−2 .. . ... ... ... .. . ... .. . 0 0 0 0 g1 .. . gp−3 gp−2 ... ... gp−m gp−m+1 Disponiamo quindi di un’espressione per le uscite future in funzione delle entrate ed uscite passate (conosciute) e delle entrate future (da determinare). 8.3 Ottimizzazione Per il semplice controllore predittivo considerato definiamo l’indice di prestazione J= k+p X (ri − ŷi )2 + i=k+1 k+m X i=k+1 λ · (∆ui )2 = (ŷ − r)′ · (ŷ − r) + λ · ∆u′ · ∆u dove ri è la referenza al tempo i. Qui m indica che ci interessano solo le prossime m entrate (mosse) e che al di là supponiamo che l’entrata resti costante. L’indice massimo p indica l’orizzonte massimo di predizione desiderato. Utilizzando l’equazione (8.2) otteniamo J = (r − G · ∆u − f)′ · (r − G · ∆u − f ) + λ · ∆u′ · ∆u e con grad∆u J = 0 il risultato min J ⇒ ∆u = (G′ · G + λ · I)−1 · G′ · (r − f) ∆u 8.4 Attuazione L’ultimo passo consiste nell’utilizzare la prima uscita calcolata come valore di consegna per il sistema. Il risultato dell’operazione per il tempo di campionamento corrente è allora ∆u1 = [1, 0, . . . , 0] · ∆u = [1, 0, . . . , 0] · (G′ · G + λ · I)−1 · G′ ·(r − f ) = K · (r − f ) | 3 gennaio 2014 {z K Ivan Furlan, Silvano Balemi } 107 Progettazione di Controllori 8.5 Capitolo 8. Controllo predittivo Esempio con sistema di primo ordine Si consideri il sistema con il modello di primo ordine G(z) = K · 1−a z−a L’uscita del modello in funzione di un gradino ∆uk al tempo k in entrata e della condizione iniziale (lo stato è l’uscita) è ŷk+1 = a · ŷk + K · (1 − a) · ∆uk L’uscita al tempo k + h è ŷk+h = ah · ŷk | {z } riposta libera + K · (1 − ah ) · ∆uk | {z riposta forzata } Finalmente, l’incremento dell’uscita dopo h campioni, dovuto all’entrata ∆uk è ŷk+h − ŷk = ah · ŷk + K · (1 − ah ) · ∆uk − ŷk = (1 − ah ) · (K · ∆uk − ŷk ) Supponi adesso che il sistema controllato debba raggiungere un valore di riferimento yref con un comportamento da sistema di primo ordine con costante di tempo Tr . Dal valore corrente dell’uscita yk otteniamo allora una riduzione dell’errore yref − yk di tipo esponenziale, cioè T yref − yk+h = (yref − yk ) · e−h· Tr da cui T yk+h − yk = (yref − yk ) · (1 − e−h· Tr ) Per il controllo uguagliamo allora la variazione dell’uscita del modello con la variazione desiderata dell’uscita del sistema. Otteniamo allora T (yref − yk ) · (1 − e−h· Tr ) = (1 − ah ) · (K · ∆uk − ŷk ) dalla quale risulta T ∆uk (1 − e−h· Tr ) 1 · ŷk − · (yref − yk ) = K K · (1 − ah ) Questo controllore include una parte integrale, anche se questa non è esplicita. Vediamo infatti che se il riferimento è raggiunto (cioè yref = yk ) allora ∆uk = yref /K. Questo valore non dipende dal sistema ma dal modello e neanche da disturbi statici, il che presuppone la presenza di una parte integrale. 108 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 9 Reti neurali 9.1 Introduzione A metà degli anni ottanta si sono sviluppate tecniche basate su reti neurali artificiali (RNA), con l’idea di riuscire a imitare, seppur limitatamente, il cervello umano. Gli studiosi di intelligenza artificiale pensavano di aver finalmente trovato il sistema per risolvere tutti i loro problemi. Oggi si è ritornati con i piedi per terra, ma le reti neurali artificiali vengono utilizzate in svariati campi : dall’informatica alla matematica, all’economia, all’elettronica ecc. Le reti neurali permettono di associare tra di loro informazioni differenti e spesso incomplete o vaghe, per arrivare a delle conclusioni valide e utilizzabili. Le reti neurali possono essere realizzate non solo tramite un processo decisionale non sequenziale, ma anche in parallelo. Oggi, grazie a sistemi di calcolo sempre più potenti è possibile sfruttare in modo ottimale le reti neurali, programmando processi paralleli che incrementano notevolmenete le velocità di calcolo oppure utilizzando componenti dedicati per l’implementazione di reti neurali. Alla base delle reti neurali artificiali c’è il neurone, che si ispira al neurone umano. È chiaramente impossibile pensare di riuscire ad imitare il cervello umano con i suoi 1011 neuroni. Ricerche tentano ugualmente di modellare il cervello di animali semplici (lumache, molluschi...). 9.2 Il neurone Nella figura 9.1 è rappresentato un neurone reale. Un neurone artificiale j possiede diverse entrate i, che vengono pesate mediante un coefficiente wij , la somma ponderata entra poi in una funzione detta di attivazione che genera il valore di uscita del neurone (generalmente compresa tra 0 e 1). Il problema della costruzione di una rete neurale è legato ad alcune scelte • il modo di interconnession dei neuroni • il valore dei pesi wij 3 gennaio 2014 Ivan Furlan, Silvano Balemi 109 Progettazione di Controllori Capitolo 9. Reti neurali Figura 9.1: Neurone biasj oj @ ? @ R @ wij Σ fj (x) -a j Figura 9.2: Neurone j • la funzione di attivazione La funzione di attivazione è comunemente la funzione σ(x) = 1 1 + e−k·x Esistono diversi topologie di reti neurali. Le più importanti sono quelle unicamente dirette in avanti e quelle che hanno delle retroazioni. 9.3 Apprendimento di una rete neurale Una rete neurale, per poter funzionare, deve apprendere il compito da eseguire. Apprendere in una rete significa impostare i pesi all’entrata di tutti i neuroni. Esistono diverse metodologie di apprendimento: • apprendimento rinforzato (reinforcement learning), dove nella fase di apprendimento si dice alla rete solo se l’uscita è giusta o sbagliata, e la rete deve trovare da sola la giusta risposta. 110 Ivan Furlan, Silvano Balemi 3 gennaio 2014 9.4. Struttura di una rete Progettazione di Controllori • apprendimento non supervisionato (unsupervised learning), dove la rete trova i suoi pesi senza nessun paragone dall’esterno, classificando campioni in categorie simili. • apprendimento supervisionato (supervised learning), dove si danno alla rete le informazioni in entrata e le rispettive uscite desiderate, permettendo di utilizzare in seguito l’errore per modificare i pesi all’entrata dei neuroni. 9.4 Struttura di una rete Una rete è composta da neuroni collegati tra di loro. I neuroni possono essere ordinati su diversi livelli. Esiste sempre un livello in entrata e un livello di uscita. In mezzo possono esserci uno o più livelli intermedi. Per esempio il riconoscimento di lettere scritte può avvenire con una retinatura di 16x16 punti attorno alla lettera. Ogni punto prende quindi un valore nero (1) o bianco (0) a seconda che la lettera passi in questo punto, Questi 16x16 punti rappresentano le entrate della rete neurale (livello d’entrata). Si vuole ottenere in uscita la lettera riconosciuta. In questo caso ci saranno tante uscite quanti i caratteri che possono essere trovati. Una sola di queste uscite (quella corrispondente alla lettera riconosciuta) sarà attivata. 6 6 6 6 livello d’uscita BM BM BM B B B B B B livello intermedio BM BM BM B B B B B B livello intermedio I 6 I 6@ I 6@ 6@ @ @ @ @ @ @ livello d’entrata 6 6 6 6 Figura 9.3: Rete neurale con diversi livelli 9.5 Definizioni e formule Le grandezze considerate in una rete neurale (vedi figura 9.2) sono 3 gennaio 2014 Ivan Furlan, Silvano Balemi 111 Progettazione di Controllori wij ∆wij η oi aj tj netj (t) 9.5.1 Capitolo 9. Reti neurali è il peso ad una determinata entrata i di un neurone j è la variazione da applicare al peso wij rappresenta il fattore di apprendimento rappresenta il valore in entrata del neurone j dal neurone i rappresenta il valore in uscita del neurone j (diventa poi oj ) è il valore desiderato in uscita all’uscita del neurone j P = i oi (t) · wij è la somma delle entrate ponderate Metodo di apprendimento “backpropagation” È forse il metodo più utilizzato grazie anche alla sua semplicità. I pesi all’entrata di ogni neurone vengono modificati secondo la regola ∆wij = η · oi · δj dove δj rappresenta l’errore in uscita. Il valore di δj è δj = fj′ (netj ) · (tj − aj ) quando j è un livello d’uscita e δj = fj′ (netj ) · X k (δk · wjk ) quando j è un livello nascosto 9.5.2 Elemento Bias (“on”-Neuron) Si tratta del valore fisso all’entrata di un neurone che serve a spostare la soglia del neurone, e quindi a traslare la funzione di attivazione. 9.5.3 Apprendimento delta La modifica dei pesi avviene utilizzando la differenza tra il valore in uscita della rete e il valore desiderato secondo la formula ∆wij = η · (tj − aj ) 9.5.4 Apprendimento di Hebb Il calcolo della modifica dei pesi avviene secondo la formula ∆wij = η · oi · aj 112 Ivan Furlan, Silvano Balemi 3 gennaio 2014 Capitolo 10 Controllo Fuzzy 10.1 Introduzione Il termine “fuzzy” è diventato oggi un termine alla moda ma nello stesso tempo resta un termine magico. Fin da quando nel 1965 Zadeh ha presentato la sua “matematica imprecisa”, ci sono state nel mondo accademico reazioni discordi che vanno dalla totale accettazione al totale rifiuto. La possibilità di descrivere processi e controlli in modo verbale, al posto della tradizionale identificazione matematica, ha aperto nuovi orizzonti, soprattutto nel campo del controllo di processi non lineari e difficilmente modellabili, diventando quindi una valida alternativa al controllo tradizionale (p. es. PID). Diventa cosı̀ possibile trasferire conoscenze empiriche e qualitative di un processo in strategie di controllo. Il controllo fuzzy si è inoltre dimostrato robusto e poco sensibile alle variazioni dei parametri, ciò che ha portato a nuovi algoritmi di identificazione nei controllori adattivi. In questo capitolo verranno dapprima spiegati i concetti su cui si basa la teoria della logica fuzzy e il suo impiego nell’ambito della controllistica. Verranno portati alcuni esempi di applicazioni industriali e di ricerca. Si cercherà infine di contrapporre criticamente i metodi del controllo fuzzy con i metodi tradizionali. 10.2 Un po’ di storia 1965 : Pubblicazione da parte di Zadeh della teoria fuzzy 1970 : Prime applicazioni di laboratorio della teoria di Zadeh nel campo della controllistica (macchina a vapore) 1977 : Primo controllore industriale (Cementificio - Danimarca) Oggi : migliaia di applicazioni industriali della logica fuzzy (Giappone) 3 gennaio 2014 Ivan Furlan, Silvano Balemi 113 Progettazione di Controllori 10.3 Capitolo 10. Controllo Fuzzy Cos’è la logica fuzzy La logica fuzzy è principalmente una “logica” e quindi può essere utilizzata per fare dei ragionamenti come con quella binaria (se . . . allora . . . ). A differenza però della logica binaria le premesse e i risultati dei ragionamenti non sono costituite unicamente da valori “vero” e “falso”, ma possono essere grandezze con un valore di verità compreso tra 0 (completamente falso) e 1 (completamente vero). In mezzo ci sono tutta una grande quantità di valori che rappresentano in pratica un coefficiente di verità di una certa affermazione. In questo modo, se per la logica tradizionale un uomo alto più di 180cm è considerato alto, nella logica fuzzy l’affermazione che un uomo di 175cm è alto può avere ad esempio un grado di verità pari ad esempio a 0.5. Nello stesso tempo quest’uomo può essere anche considerato di altezza media (per es. con grado di verità 0.9) e anche basso (per es. con un grado di appartenenza di 0.2). Pertanto per questa persona tutte le affermazioni relative ad un uomo alto, di media statura e basso possono essere analizzate, tenendo conto del grado di verità dell’affermazione. 10.4 Funzioni di appartenenza Il grado di verità di una certa affermazione è descritto mediante le cosiddette “funzioni di appartenenza” (membership function). La figura 10.1 rappresenta un possibile “Fuzzy Set” che potrebbe descrivere l’altezza di una persona. Un “Fuzzy Set” è una serie di funzioni di appartenenza di diverse affermazioni, in questo caso “uomo basso”, “uomo medio” e “uomo alto”. Prendendo ad esempio una persona di 170cm l’affermazione “è basso” ha un grado di appartenenza di 0.33, l’affermazione “è di altezza media” di 1 e l’affermazione “è alto” ha un grado di appartenenza pari a 0.33. 1 0.8 0.6 0.4 0.2 0 120 130 140 150 160 170 180 190 200 210 220 Figura 10.1: Funzioni di appartenenza per classificazione come “basso”, “medio” e “alto” 114 Ivan Furlan, Silvano Balemi 3 gennaio 2014 10.5. La logica fuzzy nel controllo Progettazione di Controllori La logica fuzzy ci permette di descrivere situazioni in modo qualitativo, basandosi su affermazioni del tipo “Se la grandezza X è grande e la grandezza Y è media allora la grandezza Z è grande”. Questo tipo di ragionamenti, tipico della mente umana, permette analisi e descrizioni qualitative, permettendo di trarre conclusioni senza l’utilizzo di formule matematiche o di misure precise. In questo modo la descrizione del comportamento di un processo, e quindi anche il suo controllo, possono essere fatti innanzitutto in modo qualitativo, basandosi anche sulle affermazioni di chi conosce bene questi processi ma magari non li sa descrivere in modo scientifico e matematico. I processi non devono essere descritti matematicamente mediante un modello, ma è sufficiente una buona descrizione verbale dl funzionamento e di cosa dovrebbero fare. Tutto questo apre una grande quantità di altre prospettive nel controllo, dove l’identificazione del processo (modello matematico) resta pur sempre una delle attività più costose e più difficili. 10.5 La logica fuzzy nel controllo L’obiettivo di un controllo è quello di costruire dinamicamente la variabile di controllo u(t) all’entrata del processo in modo da ottenere un comportamento desiderato in uscita. La variabile di controllo viene costruita mediante formule matematiche o algoritmi sempre matematici. Con la logica fuzzy si vuole invece costruire la variabile di controllo partendo da affermazioni verbali sulle variabili misurabili del processo. Nel caso ad esempio di un servomeccanismo di un motore si potrebbe ad esempio dire : SE LA DIFFERENZA TRA L’ANGOLO MISURATO E QUELLO DESIDERATO È GRANDE, ALLORA APPLICO UNA TENSIONE GRANDE. Oppure SE LA DIFFERENZA TRA L’ANGOLO MISURATO QUELLO DESIDERATO È PICCOLA, ALLORA APPLICO UNA TENSIONE PICCOLA. Alla fine si devono pur sempre quantificare le grandezze, ma i ragionamenti sono basati su informazioni verbali e qualitative. Prendiamo un esempio in cui le grandezze analizzate per il controllo sono l’errore e la derivata dell’errore tra grandezza desiderata e grandezza in uscita. Nel caso classico di un controllore digitale un possibile controllore potrebbe essere quello della figura 10.2. La grandezza in entrata e viene moltiplicata per il valore KP . Inoltre la stessa grandezza viene moltiplicata per KD e le viene sottratto il valore precedente (ritardo dovuto a z −1 ). In pratica si tratta di una derivata dell’errore. Le due grandezze cosı̀ calcolate vengono sommate tra di loro e il risultato finale moltiplicato per K e sommato al valore della grandezza u(t) precedente (in pratica viene integrata la grandezza in uscita). Abbiamo il funzionamento in pratica di un controllore digitale di tipo PI. Possiamo costruire mediante un controllore fuzzy un sistema che utilizzi 3 gennaio 2014 Ivan Furlan, Silvano Balemi 115 Progettazione di Controllori - e(k) Capitolo 10. Controllo Fuzzy - KP Σ - - KD 1 − z −1 - K - - 1 1 − z −1 u(k) - Figura 10.2: PID digitale l’errore e la sua derivata per determinare la grandezza in uscita u(t). Lo schema di un simile controllore è rappresentato nella figura 10.3. e(t) - N/F - regole ė(t) - N/F - F/N - u(t) - fuzzyfication motore inferenziale defuzzyfication Figura 10.3: Controllore fuzzy con la conversione da segnali numerici alla logica fuzzy, con l’elaborazione della logica fuzzy ed infine con la riconversione dalla logica fuzzy in segnali numerici Possiamo vedere i 3 passi che costituiscono un controllore fuzzy: 1. Fuzzyfication (classificazione) 2. Motore inferenziale 3. Defuzzyfication (declassificazione) 10.5.1 Fuzzyfication (classificazione) Nal passo della fuzzyfication ogni variabile misurata è classificata in base alle classi di appartenenza (fuzzy sets) e viene valutata con la funzione di appartenenza la variabile indicante la “veridicità” di tali appartenenze. La fuzzyfication è quindi l’operazione che applica le funzioni di appartenenza, fornendo cosı̀ un numero nell’intervallo [0, 1] per ogni coppia di variabile misurata x ∈ R e classe s ∈ S (definita per la variabile considerata). L’operazione ha quindi la forma R × S → R[0,1] dove S indica l’insieme delle classi e R[0,1] indica l’insieme dei numeri reali compresi tra 0 e 1. Nell’esempio della figura 10.4 vediamo l’esempio della classificazione della grandezza e per le tre classi distinte “piccolo”, “zero” e “grande”. 116 Ivan Furlan, Silvano Balemi 3 gennaio 2014 10.5. La logica fuzzy nel controllo Progettazione di Controllori zero piccolo grande 1 0.8 0.6 0.47 0.4 0.2 0.2 0 −30 −20 −10 0 10 20 30 Figura 10.4: Esempio di classificazione della grandezza e(t) = 8: f (e, piccolo) = 0, f (e, zero) = 0.47, f (e, grande) = 0.2 Nota come nella valutazione della veridicità dell’appartenenza di una variabile ad una classe sia incluso un fattore quantitativo. Infatti scegliendo la funzione di appartenenza si definisce lo strumento attraverso il quale vengono quantificate le affermazioni di per sè qualitative. 10.5.2 Motore inferenziale Nal passo del motore inferenziale ogni affermazione logica fornita, detta anche “regola”, viene valutata. Si valuta allora quale sia la “veridicità” delle differenti affermazioni, cioè la “veridicità” dell’appartenenza della variabile indicata dall’affermazione ad una classe. Il motore inferenziale è quindi l’operazione che applica le regole, fornendo cosı̀ un numero nell’intervallo [0, 1] per ogni insieme di n numeri, anch’essi definiti nell’intervallo [0, 1], risultanti dalla fuzzyfication delle n variabili definite nella regola considerata. Ogni regola può quindi essere vista come una funzione Rn[0,1] → R[0,1] f (A) 6 A piccolo @ @ 6 @ @- f (B) valore di A 6 B medio A A A 6 A 6 - valore di B C grande L L L L - min(f (A), ? f (B)) Figura 10.5: Operazione “AND” definita con il minimo delle variabili in entrata 3 gennaio 2014 Ivan Furlan, Silvano Balemi 117 Progettazione di Controllori Capitolo 10. Controllo Fuzzy Esistono diversi metodi per interpretare matematicamente le regole. Un metodo associa l’operazione logica AND con la minimizzazione (la “veridicità” dell’affermazione è uguale al minimo della “veridicità” delle appartenenze delle variabili iniziali alle loro classi) e l’operazione logica OR con la massimizzazione (la “veridicità” dell’affermazione è uguale al massimo della “veridicità” delle appartenenze delle variabili iniziali alle loro classi). Come esempio analizziamo la “veridicità” dell’affermazione “SE A è piccolo E B è medio ALLORA C è grande”. Dal valore attuale di A e B si è trovata nel passo precedente la “veridicità” dell’appartenenza di A alla classe PICCOLO rispettivamente di B alla classe MEDIO. L’operatore logico AND indica che la “veridicità” di appartenenza alla classe C (vedi figura 10.5). L’esempio per l’operatore OR è presentato alla figura 10.6. f (A) 6 A medio A 6 A f (B) A A- valore di A 6 B piccolo A A A 6 A valore di B 6 - C piccolo A A A A - ? max(f (A), f (B)) Figura 10.6: Operazione “OR” definita con il massimo delle variabili in entrata 10.5.3 Defuzzyfication Nal passo della defuzzyfication si quantifica il valore delle variabili indicate dalle affermazioni a partire semplicemente dalle “veridicità” dell’appartenenza delle variabili stesse alle differenti classi. La defuzzyfication è quindi l’operazione che, usando le funzioni di appartenenza, fornisce per una variabile una “stima” del suo valore a partire da diverse coppie (p.es. n, provenienti da n afferamzioni) di un numero nell’intervallo [0, 1] e una classe. Ciò può essere visto come segue (R[0,1] , S)n → R Esistono diversi metodi per eseguire questa operazione. Uno dei metodi più utilizzati è quello del “centro di massa” dove si considerano le aree delle funzioni di appartenza che stanno sotto il valore di veridicità della variabile e dove in seguito si calcola il baricentro delle varie aree sovrapposte. L’ascissa indica la “stima” del valore della grandezza considerata (vedi figura 10.7). Nota come nella quantificazione delle stime delle variabili considerate il fattore quantitativo sia dato dalle funzioni di appartenenza. Quindi sempre con esse, come nella fuzzyfication, si definisce lo strumento attraverso il quale vengono determinati quantitativamente i risultati della logica fuzzy. 118 Ivan Furlan, Silvano Balemi 3 gennaio 2014 10.6. Applicazioni commerciali Progettazione di Controllori C 6 piccolo C grande A A A A A A A A- ? centro di massa Figura 10.7: Calcolo del centro di massa per determinare il valore della variabile I tre passi di fuzzyfication, motore inferenziale e defuzzyfication vengono poi eseguiti ciclicamente. Esempio 10.1 (Controllo del motore DC) Prendiamo come esempio il nostro motore DC, già utilizzato precedentemente. La funzione di trasferimento del motore è 6.63 GMOT = s · (a + 171) · (s + 100) Il controllo viene realiizato mediante le regole seguenti • SE ERRORE NEGATIVO MEDIO (NM) ALLORA USCITA NEGATIVA MEDIA (NM) • SE ERRORE NEGATIVO PICCOLO (NP) ALLORA USCITA NEGATIVA PICCOLA (NP) • SE ERRORE ZERO (ZE) ALLORA USCITA ZERO (ZE) • SE ERRORE POSITIVO PICCOLO (PP) ALLORA USCITA POSITIVA PICCOLA (PP) • SE ERRORE POSITIVO MEDIO (PM) ALLORA USCITA POSITIVA MEDIA (PM) La figura 10.8 mostra il processo con il controllore fuzzy inserito. Le funzioni di appartenenza sono mostrate nella figura 10.9.a (errore) e nella figura 10.9.b (uscita). La simulazione del processo controllato mostra l’andamento della variabile in uscita secondo la figura 10.10 10.6 Applicazioni commerciali Esempio 10.2 (Lavatrice) Caratteristiche: • Imposta il tipo di lavaggio in funzione dello sporco, della quantità di biancheria e del tessuto. Possibilità di utilizzare affermazioni del tipo “molto sporco”, “poco sporco”, “tessuto delicato”, ecc. 3 gennaio 2014 Ivan Furlan, Silvano Balemi 119 Progettazione di Controllori Capitolo 10. Controllo Fuzzy 0.01 Mux Input z−1 Sum Mux Fuzzyfication e Defuzzyfication Discrete Integrator Saturation −40,+40 Scope ZOH Motore & driver z−1 ts.z Discrete derivator Fuzzyfication de Figura 10.8: Motore controllato da logica fuzzy 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0.1 0 −3 −2 −1 0 1 2 3 0 −150 −100 −50 0 50 100 150 Figura 10.9: Funzioni di appartenenza per il controllo di un motore (a sinistra funzione per l’errore, a destra per l’uscita) Esempio 10.3 (Aspirapolvere) Caratteristiche: • Imposta la potenza del motore in funzione dello sporco e del tipo di pavimento Esempio 10.4 (Condizionatore d’aria) Caratteristiche: • Controlla il livello di temperatura ottimale evitando cicli on-off • Si ottiene una riduzione del consumo di ca. il 20% Esempio 10.5 (Industria automobilistica) Caratteristiche: • Cambio automatico impostabile “dolce”, “sportivo”, “economico” • Trasmissione secondo lo stile di guida dell’autista per mantenere accelerazioni “dolci” Esempio 10.6 (Videocamere) Caratteristiche: 120 Ivan Furlan, Silvano Balemi 3 gennaio 2014 10.7. Applicazioni industriali Progettazione di Controllori 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 Figura 10.10: Risposta al gradino unitario del motore controllato da una logica fuzzy • Messa a fuoco • Mantenimento dell’immagine stabile • Luminosità Esempio 10.7 (Macchine fotografiche) Caratteristiche: • Impostazione dei tempi e del diaframma • Messa a fuoco Esempio 10.8 (Televisori) Caratteristiche: • Messa a punto della luminosità, del contrasto e del colore dello schermo 10.7 Applicazioni industriali Esempio 10.9 (Fornace di un cementificio) Caratteristiche: • Controllo della portata di carbone, d’aria e del miscuglio • Controllo della velocità di rotazione della fornace • Obiettivo: qualità del cemento • Grande incertezza, nessun modello, sistema non lineare, controllato prima a mano 3 gennaio 2014 Ivan Furlan, Silvano Balemi 121 Progettazione di Controllori Capitolo 10. Controllo Fuzzy Esempio 10.10 (Metropolitana Sendai di Tokyo) Caratteristiche: • Miglioramento dell’accelerazione, della frenata e della precisione della fermata • Controllo fuzzy predittivo • Permette di viaggiare senza attaccarsi alle maniglie nelle accelerazioni e nelle frenate • Da simulazioni il comportamento risulta migliore di un controllo PID Esempio 10.11 (Scavatrice) Caratteristiche: • Sostituisce l’operatore umano • Controllo della direzione e della velocità della macchina in rapporto a variazioni dovute alle differenze di durezza del materiale Esempio 10.12 (Ascensori in un grande palazzo) Caratteristiche: • Coordinazione ed ottimizzazione degli spostamenti in base a misure da telecamere delle folle in attesa ai piani • Riduzione dei tempi d’attesa 10.8 Applicazioni di laboratorio Esempio 10.13 (Macchina a vapore) Caratteristiche: • Esperienza dell’operatore umano • Risultati simili a un PID Esempio 10.14 (Scalda acqua) Caratteristiche: • Dinamica nettamente migliorata rispetto ad un controllore PID • Errore statico migliore con un controllore PID Esempio 10.15 (Pendolo inverso) Caratteristiche: • controllo senza modello • risultati migliori e più robusti Le funzioni di appartenenza sono riportate nella figura 10.11. La tabella seguente riporta le regole del motore inferenziale del sistema del pendolo inverso. 122 Ivan Furlan, Silvano Balemi 3 gennaio 2014 10.9. Implementazione di controllori fuzzy ω: ω: ω: ω: ω: NM NP ZR PP PM ϕ: NG NG NG NG NG NG ϕ: NM NG NM ϕ: NP NM NP Progettazione di Controllori ϕ: ZR NM ϕ: PP ϕ: PM ZR PP PM PM PG ZR ZR ∆x PM NM NG NP NP ZR PP PP ϕ: PG PG PG PG PG PG PM PG La variabile ϕ(t) rappresenta l’angolo rispetto alla verticale, ω(t) la velocità angolare del pendolo e ∆x lo spostamento rispetto al centro del carrello. Le altre abbreviazioni sono: NG (negativo grande), NM (negativo medio), NP (negativo piccolo), ZR (zero), PP (positivo piccolo), PM (positivo medio), PG (positivo grande). Esempio 10.16 (PID adattativo con meccanismo anti-windup) Il controllore fuzzy funge da supervisore per i parametri di un PID adattativo. Lo scahema di controllo è presentato nella figura 10.12. • KP = KP + ∆KP , • KI = KI + ∆KI , • ∆KP e ∆KI vengono calcolati dall’errore mediante una logica fuzzy. 10.9 Implementazione di controllori fuzzy I controllori fuzzy possono essere implementati in modo SW su normali computer e microcontroller, arrivando a tempi di campionamento relativamente alti (alcuni ms), oppure si possono utilizzare controllori fuzzy dedicati, con possibilità di campionamento di µs. Oggi è possibile comperare controllori fuzzy per poche decine di dollari, compresa una certa parte di periferie (I/O, A/D, PWM). Esistono inoltre sistemi esperti basati su reti neurali artificiali e algoritmi genetici che permettono la sintesi automatica e intelligente dei controllori fuzzy (fuzzy set, regole). 10.10 Conclusioni I controllori fuzzy sono sicuramente un ottimo strumento per il controllo di processi difficilmente modellabili ma descrivibili verbalmente. Si riescono a trovare soluzioni accettabili in modo veloce, anche se poi un’ottimizzazione dei controllori risulta molto complessa. A differenza dei controllori PID non esistono al momento sistemi automatici di sintesi (come ad esempio il metodo di Ziegler-Nichols), anche se gruppi di ricerca stanno cercando soluzioni in questo senso. Il vantaggio di non dover modellare matematicamente il processo da controllare porta a difficoltà nella 3 gennaio 2014 Ivan Furlan, Silvano Balemi 123 Progettazione di Controllori Capitolo 10. Controllo Fuzzy simulazione, dove invece occorre un modello. A questo si cerca di ovviare creando modelli fuzzy del processo per permettere delle simulazioni. Inoltre, a differenza di un PID, occorre giocare su molti parametri per ottimizzare un controllore fuzzy. Nel primo caso ci sono unicamente 3 parametri, nel secondo moltissimi (fuzzy set, forme delle funzioni di appartenenza, regole, ecc.). Si può concludere sufggerendo che se è possibile basarsi su un modello del sistema da controllare è meglio utilizzare tecniche “quantitative”. Un saggio uso dei controllori fuzzy è perciı̀o limitato ai sistemi con caratteristiche poco quantificabili e descrivibili solo qualitativamente. 124 Ivan Furlan, Silvano Balemi 3 gennaio 2014 10.10. Conclusioni Progettazione di Controllori NG NM PM H H HH B E E B HH HH B E E B H H HH BB EE EE BB HH -60 PM 6 -30 30 6 PK ZR - 60 NK S bb ""bb ""S " " b b S S " " " bb " bb S b S b" SS" 6 NK ZR PK S bb ""S ""bb " " b b S S " " " bb S " bb S b" S" b S -0.5 - 6 - ∆x [m] PG H E E E E E E HH E E E H E E E HH E E E E E E E E E E E E H -100 ω [Deg/s] PM 0.5 NG ∆ϕ [Deg] NM 15 -15 NM PG -50 50 100 - F [N] Figura 10.11: Funzioni di appartenenza per il pendolo inverso: Funzione per l’errore dell’angolo, per la velocità angolare, per l’errore di posizione e per la forza, cioè la variabile di comando -e - ė KP fuzzy KI ??? + -e - PI 6 - - 6 - Processo - Figura 10.12: Controllore PID con parametri adattati da un controllore fuzzy 3 gennaio 2014 Ivan Furlan, Silvano Balemi 125