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