Modellistica e Simulazione
Modellistica e Simulazione
Modellistica e Simulazione
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Appunti sul corso di<br />
MODELLISTICA<br />
E<br />
SIMULAZIONE<br />
tenuto dal Prof. Balestrino e dall’Ing. Caiti<br />
nell’A.A. 1996/97<br />
a cura dello studente Francesco Papariello
Realizzato utilizzando:<br />
Microsoft Word 7.0 per Windows<br />
AutoCAD LT per Windows<br />
Matlab 4.2 per Windows
INDICE<br />
0. Introduzione.....................................................................................................................................7<br />
0.1 <strong>Modellistica</strong> ...............................................................................................................................7<br />
0.2 Identificazione...........................................................................................................................9<br />
0.3 Ottimizzazione ........................................................................................................................10<br />
0.4 <strong>Simulazione</strong> .............................................................................................................................11<br />
Parte I: Ottimizzazione<br />
1. Ottimizzazione statica...................................................................................................................15<br />
1.1 Ottimizzazione statica non vincolata....................................................................................15<br />
1.2 Metodo del gradiente..............................................................................................................15<br />
1.3 Metodo di Newton ..................................................................................................................16<br />
1.4 Direzione di ricerca di Levenberg-Morquardt ....................................................................17<br />
1.5 Metodi quasi-Newton.............................................................................................................17<br />
1.6 Metodi per il calcolo del passo γ i...........................................................................................18<br />
1.6.1 Metodo di Fibonacci ........................................................................................................18<br />
1.6.2 Metodo della sezione aurea ............................................................................................20<br />
1.7 Criteri d’arresto.......................................................................................................................20<br />
1.8 Ricerca del minimo globale....................................................................................................21<br />
1.9 Simulated annealing ...............................................................................................................22<br />
1.10 Algoritmi genetici.................................................................................................................22<br />
1.11 Metodi di approssimazione della funzione f......................................................................23<br />
2. Principio di Bellman......................................................................................................................25<br />
2.1 Esempio n.1: segmento da suddividere in n parti................................................................25<br />
2.2 Esempio n.2: percorso ottimo.................................................................................................26<br />
3. Minimizzazione di un indice di qualità......................................................................................29<br />
3.1 Equazione di Eulero-Lagrange...............................................................................................29<br />
3.2 Condizioni per l’ottimalità della x(t) ....................................................................................31<br />
3.3 Generalizzazioni del problema..............................................................................................32<br />
3.4 Esempio: minimizzazione del percorso che collega due punti...........................................34<br />
4. Funzione hamiltoniana .................................................................................................................35<br />
4.1 Esempio: sistema massa-molla ...............................................................................................36<br />
4.2 Esempio: giuntura di due soluzioni.......................................................................................36<br />
4.3 Condizioni di continuità sulle giunture nel caso generale.................................................38<br />
4.4 Minimizzare un integrale mantenendo costante un altro integrale..................................38<br />
4.5 Esempio: massimizzazione dell’area sottesa da un filo di lunghezza fissata.....................39<br />
4.6 Presenza di un vincolo di disuguaglianza ............................................................................40<br />
5. Applicazione ai sistemi tempo-continui......................................................................................43<br />
5.1 Equazione di Riccati................................................................................................................44<br />
5.2 Caso di sistema lineare stazionario ed indice di qualità quadratico..................................47<br />
5.3 Caso di sistema lineare con indice di qualità dipendente da (x-x d) in modo quadratico47<br />
5.4 Sistemi non lineari ..................................................................................................................49<br />
5.5 Esempio. Curva più corta che unisce due punti..................................................................50<br />
5.6 Esempio. Curva di lunghezza assegnata tale che l’area sottesa sia massima ....................51<br />
5.7 Matrice hamiltoniana.............................................................................................................52<br />
5.8 Proprietà della matrice hamiltoniana ...................................................................................54<br />
5.9 Luogo simmetrico delle radici................................................................................................55
5.10 Esempi....................................................................................................................................57<br />
5.10.1 Filtro di Butterworth.....................................................................................................57<br />
5.10.2 Sistema a fase non minima...........................................................................................57<br />
5.10.3 Sistema a fase minima...................................................................................................58<br />
5.10.4 .........................................................................................................................................58<br />
5.10.5 Sistema instabile a ciclo aperto....................................................................................59<br />
5.10.6 .........................................................................................................................................60<br />
5.10.7 Approssimazione di un ritardo....................................................................................61<br />
5.10.8 .........................................................................................................................................61<br />
5.11 Metodo di Potter per ricavare la soluzione dell’equazione di Riccati .............................61<br />
5.12 Scelta di R e Q .......................................................................................................................62<br />
5.13 Controllo switching..............................................................................................................63<br />
5.14 Gramiano di controllabilità .................................................................................................67<br />
6. Applicazione ai sistemi tempo-discreti .......................................................................................71<br />
6.1 Equazione di Riccati................................................................................................................71<br />
6.2 Indice di qualità ......................................................................................................................74<br />
6.3 Proprietà della matrice hamiltoniana ...................................................................................76<br />
6.4 Luogo reciproco delle radici ..................................................................................................77<br />
6.5 Esempi ......................................................................................................................................78<br />
6.5.1............................................................................................................................................78<br />
6.5.2............................................................................................................................................79<br />
6.5.3............................................................................................................................................80<br />
6.5.4............................................................................................................................................80<br />
6.5.5............................................................................................................................................81<br />
6.6 Filtro di Kalman.......................................................................................................................82<br />
Parte II: <strong>Modellistica</strong> ed Identificazione<br />
7. <strong>Modellistica</strong>....................................................................................................................................87<br />
7.1 Modello ad equazione d’errore (ARX) ..................................................................................89<br />
7.2 Modello ARMAX......................................................................................................................91<br />
7.3 Differenza tra autoregressione e media mobile...................................................................92<br />
7.4 Altri modelli.............................................................................................................................93<br />
7.5 Criteri nella scelta del modello..............................................................................................94<br />
8. Identificazione ...............................................................................................................................95<br />
8.1 Metodo di identificazione ad errore di predizione..............................................................95<br />
8.2 Stima a massima verosimiglianza..........................................................................................97<br />
8.3 Criteri di bontà dell’identificazione......................................................................................99<br />
8.3.1 Disuguaglianza di Cramer-Rao................................................................................... 100<br />
8.3.2 Entropia di informazione............................................................................................. 101<br />
8.3.3 Distanza di informazione di Kullback-Leibler .......................................................... 102<br />
8.4 Criterio di Akaike................................................................................................................. 103<br />
8.5 Metodo della variabile strumentale ................................................................................... 103<br />
8.6 Applicazioni del filtro di Kalman all’identificazione ricorsiva ....................................... 105<br />
8.7 Identificabilità ...................................................................................................................... 106<br />
8.8 Altri metodi di identificazione di sistemi lineari stazionari ............................................ 108<br />
8.9 Riferimenti............................................................................................................................ 109<br />
9. Funzione modulante................................................................................................................... 111<br />
10. Riduzione del modello ............................................................................................................. 113<br />
10.1 Matrice di controllabilità e matrice di osservabilità ...................................................... 113<br />
10.2 Trasformazione bilanciata ................................................................................................ 114<br />
10.3 Modello ridotto nel caso di sistemi tempo-discreti ........................................................ 116<br />
10.4 Modello ridotto nel caso di sistemi tempo-continui ...................................................... 117<br />
11. Filtri di Laguerre ...................................................................................................................... 119<br />
11.1 Funzioni di Laguerre ......................................................................................................... 119<br />
11.2 Analisi di sistemi tempo-continui lineari stazionari...................................................... 119
11.3 Sistemi non lineari............................................................................................................. 121<br />
11.4 Miglioramenti dei filtri di Laguerre ................................................................................ 121<br />
11.5 Generalizzazioni delle funzioni di Laguerre................................................................... 122<br />
12. Cenni sull’identificazione dei sistemi non lineari ................................................................ 125<br />
12.1 Modelli di Hammerstein e di Wiener.............................................................................. 125<br />
13. Reti neurali ............................................................................................................................... 127<br />
13.1 Percettrone ......................................................................................................................... 128<br />
13.2 Reti a due strati .................................................................................................................. 130<br />
13.3 Reti multistrato................................................................................................................... 133<br />
13.4 Back Propagation ............................................................................................................... 134<br />
13.5 Miglioramenti della Back Propagation............................................................................ 135<br />
13.6 Utilizzo delle reti neurali per il controllo di sistemi...................................................... 136<br />
Appendici<br />
A. Inversione di matrici di grandi dimensioni............................................................................. 141<br />
B. Metodi di integrazione numerica ............................................................................................. 143<br />
B.1 Metodo di Eulero.................................................................................................................. 143<br />
B.1.1 Metodo esplicito............................................................................................................ 143<br />
B.1.2 Metodo implicito........................................................................................................... 144<br />
B.2 Metodi a predittore-correttore ........................................................................................... 144<br />
B.2.1 Metodo di Adams-Bashfort .......................................................................................... 145<br />
B.3 Metodi di Runge-Kutta ........................................................................................................ 146<br />
B.4 Sistemi “stiff”........................................................................................................................ 146<br />
B.5 Metodi a passo variabile...................................................................................................... 148<br />
B.6 Tabella riassuntiva ............................................................................................................... 149<br />
C. Teoria della regolarizzazione .................................................................................................... 151<br />
C.1 Problemi mal posti............................................................................................................... 151<br />
C.2 Applicazione al caso dell’approssimazione funzionale.................................................... 152<br />
C.3 Altre funzioni a base radiale............................................................................................... 153
Introduzione<br />
0. INTRODUZIONE<br />
Il corso si occupa di quattro argomenti collegati tra di loro:<br />
• modellistica<br />
• identificazione<br />
• ottimizzazione<br />
• simulazione<br />
0.1 <strong>Modellistica</strong><br />
I sistemi studiati nel corso di Teoria dei Sistemi si potevano distinguere in sistemi tempocontinui<br />
(TC) e sistemi tempo-discreti (TD). Le leggi dei sistemi TC sono date da equazioni alle<br />
derivate parziali o alle derivate ordinarie:<br />
⎧&x = Ax + Bu<br />
⎨<br />
⎩ y = Cx<br />
(sistema TC lineare)<br />
⎧&x<br />
=f ( x, u,t)<br />
⎨<br />
⎩ y=h ( x,t)<br />
(sistema TC non lineare)<br />
Le leggi dei sistemi TD sono date da equazioni alle differenze:<br />
⎧x + 1<br />
= Ax + Bu<br />
⎨<br />
⎩ y<br />
k<br />
= Cx<br />
k<br />
⎧x<br />
k+ 1=f k( x<br />
k, u<br />
k,t)<br />
⎨<br />
⎩ y<br />
k=h k( x<br />
k,t)<br />
k k k<br />
(sistema TD lineare)<br />
(sistema TD non lineare)<br />
Esistono anche sistemi ad eventi discreti, nei quali lo stato varia quando certe situazioni<br />
esterne, dette eventi, variano. I sistemi ad eventi discreti possono essere asincroni (gli eventi<br />
non sono collegati fra di loro) o sincroni (che sono simili ai sistemi TD, perché gli eventi<br />
possono accadere solo ad intervalli regolari di tempo).<br />
Inoltre, esistono anche i sistemi linguistici o sistemi a regole, nei quali l’unico metodo<br />
utilizzabile per specificare le transizioni da uno stato all’altro è quello dato dalle regole di<br />
produzione del tipo if...then, tipiche dei sistemi esperti.<br />
La modellistica si occupa della modellizzazione matematica di un sistema reale. Quando<br />
cercheremo un modello per un sistema dovremo inserire il sistema in una classe.<br />
Possiamo avere diversi modelli per lo stesso sistema perché il modello dipende fortemente<br />
dall’obiettivo che ci si pone. Ad esempio, alcune volte ci può interessare linearizzare un<br />
sistema intorno al suo punto di equilibrio, mentre altre volte ci può interessare lavorare con<br />
un sistema non lineare.<br />
Vediamo come si possono classificare i modelli:<br />
• modelli fisici:<br />
7
Introduzione<br />
• analogici (ad esempio, il sistema massa-molla-smorzatore è equivalente, dal<br />
punto di vista delle equazioni, ad un circuito RLC: per simulare il comportamento di<br />
un ammortizzatore si potrebbe costruire un circuito RLC con i componenti<br />
opportunamente tarati)<br />
• scala ridotta (si costruisce un modello in scala ridotta del sistema)<br />
• modelli matematici<br />
• modelli grafici:<br />
• rappresentazione poli/zeri<br />
• risposta in frequenza<br />
• schema a blocchi<br />
• reti di Petri (per i sistemi ad eventi discreti sincroni o asincroni)<br />
• modelli concettuali (per i sistemi linguistici), contenenti regole di produzione<br />
La scelta tra i vari modelli grafici dipende dalla classe a cui appartiene il sistema. Ad esempio,<br />
la rappresentazione poli/zeri e la risposta in frequenza non possono utilizzate per i sistemi<br />
non lineari.<br />
Per la modellizzazione del sistema si passa attraverso le seguenti fasi:<br />
• definizione del sistema: si isola la parte di mondo fisico a cui siamo interessati<br />
• definizione degli ingressi del sistema:<br />
• ingressi di controllo (sui quali si può agire per controllare il sistema)<br />
• disturbi esterni (in genere identificare tutti i disturbi in ingresso ad un sistema è<br />
abbastanza difficile)<br />
• definizione delle uscite del sistema:<br />
• uscite desiderate<br />
• side-effects (anche queste uscite in genere sono abbastanza difficili da<br />
identificare)<br />
• definizione delle relazioni costitutive del sistema:<br />
• relazioni ingresso-uscita (modellistica a scatola nera: black box)<br />
• relazioni che esprimono la fisica del sistema (definizione e determinazione dello<br />
stato del sistema: modellistica a scatola trasparente)<br />
• relazioni di entrambi i tipi (modellistica a scatola grigia)<br />
La modellistica a scatola nera è la più semplice ma ci fornisce meno informazioni rispetto alla<br />
modellistica a scatola trasparente.<br />
Dopo aver ottenuto un modello del sistema bisogna verificare se esso è valido (fase di<br />
validazione o confutazione 1 del modello). In pratica, per modellare un sistema si segue un<br />
procedimento così schematizzabile:<br />
1<br />
Questa fase è anche detta di confutazione del modello perché il modello viene testato con esperimenti critici,<br />
cercando di confutarlo.<br />
8
Introduzione<br />
dove il blocco decisionale rappresenta un criterio di confronto che dipende dal caso in esame.<br />
Se il modello del sistema è corretto ma i parametri utilizzati sono errati il test dà risultato<br />
negativo. La scelta del modello e quella dei parametri (identificazione) dovrebbero essere<br />
effettuate in due fasi distinte, anche se in pratica vengono svolte quasi contemporaneamente.<br />
0.2 Identificazione<br />
Dopo aver trovato, tramite un’analisi preliminare, una classe di modelli da usare per un<br />
sistema bisogna determinare i parametri del modello.<br />
Ad esempio, nel caso di un sistema TD descritto dalla seguente relazione:<br />
( )<br />
Y( z)<br />
= N z<br />
( )<br />
D( z)<br />
U z<br />
N( z)<br />
= n + n z − 1<br />
0 1<br />
+ ... + n k<br />
z<br />
D( z)<br />
= d + d z − 1<br />
+ ... + d z<br />
0 1<br />
bisogna determinare i parametri n i<br />
e d i<br />
. Per far questo si scelgono degli opportuni segnali<br />
d’ingresso, come gli ingressi permanentemente eccitanti. Questi segnali sono tali da non<br />
annullare le alte frequenze della funzione di trasferimento. Un segnale di questo tipo può<br />
essere un impulso o un rumore bianco.<br />
Ad esempio, si abbia il seguente sistema TD:<br />
⎧x + 1<br />
= ax + bu<br />
⎨<br />
⎩y<br />
k<br />
= cx<br />
k<br />
k k k<br />
L’ingresso all’istante iniziale ( t = 0 ) sia noto e per t = 0 il sistema sia in quiete ( x 0<br />
= 0 ⇒<br />
y 0<br />
= 0). Si ottiene:<br />
⎧x1 = ax0 + bu0<br />
= bu<br />
⎨<br />
⎩y1 = cx1 = cbu<br />
0<br />
n<br />
o<br />
−n<br />
− m<br />
⎧x = ax + bu = abu + bu<br />
⎨<br />
⎩y<br />
2<br />
= cx<br />
2<br />
= cabu0 + cbu1<br />
2 1 1 0 1<br />
9
Introduzione<br />
E così via. Possiamo definire il vettore di parametri θ = c ⋅( b ab a b )<br />
2 L T . Otteniamo:<br />
⎛ y1⎞<br />
⎜ ⎟<br />
⎜ y<br />
2⎟<br />
⎜ M ⎟<br />
⎜ ⎟<br />
⎝ y ⎠<br />
n<br />
⎡u<br />
⎢<br />
= ⎢u<br />
⎣<br />
⎢ M<br />
0<br />
1 0<br />
0 0 L 0⎤<br />
⎥<br />
u 0 L 0⎥<br />
⋅θ<br />
⎦<br />
⎥<br />
che è il sistema da risolvere per calcolare i parametri del modello (gli ingressi devono essere<br />
scelti in modo che la matrice sia invertibile).<br />
In modo alternativo si può definire un vettore θ = ( a b c)<br />
T . Per una certa sequenza 2 di<br />
ingressi U k<br />
= ( u0, u1,..., u k ) la sequenza delle uscite è data da $ = ( y$ , y$ ,..., y$<br />
0 1 ) dove<br />
y$ i<br />
= f( U<br />
k<br />
, θ ) .<br />
$Y k<br />
deriva da una predizione sul comportamento del sistema (viene calcolato). Se<br />
( y , , ..., k )<br />
Y k<br />
=<br />
0<br />
y<br />
1<br />
y deriva dalla misura delle uscite del sistema si possono determinare i<br />
parametri in modo che si abbia:<br />
Y k<br />
k<br />
min Y $<br />
θ<br />
k<br />
− Y<br />
k<br />
2<br />
che dimostra come identificazione ed ottimizzazione siano strettamente correlate.<br />
Alcune volte si vogliono determinare i parametri di un sistema mentre funziona<br />
(identificazione in linea) oppure si vogliono determinare i nuovi parametri nel caso in cui essi<br />
siano variati. Ad esempio, se il nostro sistema è tempo variante:<br />
&x ( t) = A( t) x( t) + B( t) u( t)<br />
e la variazione dei parametri nel tempo è lenta rispetto alla costante di tempo del sistema<br />
possiamo utilizzare per il nostro sistema un modello che non è tempo variante. In linea si<br />
misurano gli ingressi e le uscite del sistema reale e si aggiornano i parametri del modello nel<br />
caso in cui quest’ultimo non riesca a rappresentare correttamente la dinamica del sistema.<br />
0.3 Ottimizzazione<br />
L’ottimazione nel caso del controllo permette di risolvere problemi di controllabilità ed<br />
osservabilità avendo come vincolo quello di minimizzare la spesa per il controllo ( u ) o il<br />
tempo impiegato.<br />
Inoltre l’ottimizzazione, come visto sopra, è uno strumento utile per risolvere molti altri<br />
problemi.<br />
2<br />
Consideriamo le sequenza come se fossero dei vettori.<br />
10
Introduzione<br />
0.4 <strong>Simulazione</strong><br />
Dato il modello di un sistema, un simulatore dà una predizione del comportamento del<br />
sistema. Un simulatore è utile in fase di progetto di un impianto. Esistono due strumenti<br />
software che possono semplificare la sua progettazione:<br />
• CAD (Computer Aided Design): che permette di simulare un sistema (è possibile, ad<br />
esempio, effettuare una verifica della stabilità di un sistema);<br />
• CAE (Computer Aided Engineering): che produce i risultati ed i documenti di un<br />
progetto.<br />
Esistono dei simulatori che non sono totalmente software e che hanno come compito quello di<br />
istruire un operatore:<br />
• simulatori di volo (hanno una cabina simile a quella di un aereo reale)<br />
• addestratori per impianti energetici (ad esempio, centrali nucleari)<br />
In questi casi il simulatore deve essere real-time e deve simulare il più possibile il sistema<br />
reale (deve considerare tutte le dinamiche del sistema reale, anche quelle trascurabili).<br />
11
PARTE<br />
I<br />
OTTIMIZZAZIONE
Ottimizzazione statica<br />
1. OTTIMIZZAZIONE STATICA<br />
1.1 Ottimizzazione statica non vincolata<br />
Il problema che ci poniamo in questo capitolo è quello di determinare (in modo numerico) il<br />
valore di x ∈X<br />
⊂ R<br />
n n<br />
per il quale si ha min f ( x)<br />
, con f : R → R 1<br />
.<br />
x∈X<br />
Dapprima supporremo che il minimo della funzione esista e sia unico 2 .<br />
I metodi per la ricerca del minimo si distinguono in base al tipo di informazioni che<br />
richiedono:<br />
• solo valutazioni della funzione f<br />
∂<br />
• valutazioni della funzione f e del gradiente di f : f = ∇ f ( x)<br />
x<br />
(metodo del gradiente)<br />
∂x<br />
∂<br />
• valutazioni della funzione f , del gradiente di f e della matrice hessiana ( )<br />
2<br />
f = H x<br />
∂x<br />
(metodo di Newton)<br />
Il terzo metodo è quello che richiede maggiore informazione ed è sicuramente il più veloce,<br />
ma anche il più complesso.<br />
1.2 Metodo del gradiente<br />
Il gradiente di una funzione dà delle informazioni sulla sua pendenza:<br />
1<br />
Spesso la funzione f è una norma.<br />
2<br />
Se l’insieme X è compatto e la funzione f è continua, per il teorema di Weirestrass il minimo della funzione<br />
esiste.<br />
15
Ottimizzazione<br />
Nel punto d’inizio è possibile determinare un piano tangente alla curva ed un gradiente<br />
perpendicolare a tale piano. La direzione di ∇ x<br />
f ( x ) è la direzione di massima salita, quindi la<br />
direzione opposta è quella di massima discesa. Ci si può muovere di un “passo” lungo questa<br />
direzione ed arrivare al secondo punto di partenza.<br />
Quindi, la k-esima iterazione del metodo del gradiente è la seguente:<br />
( )<br />
x<br />
+ 1<br />
= x − γ ∇ f x<br />
k k k x k<br />
dove γ k<br />
∈R è il passo di discesa. Il passo di discesa ottimo è quello per il quale il gradiente<br />
del passo attuale e quello del passo successivo sono ortogonali tra di loro:<br />
T<br />
γ k<br />
:<br />
xf( x<br />
k ) xf( x<br />
k )<br />
∇ ∇ =<br />
+ 1<br />
0<br />
Se la funzione ha un minimo ed è convessa il metodo converge, anche se si procede a “zigzag”<br />
effettuando dei passi molto piccoli.<br />
1.3 Metodo di Newton<br />
Questo metodo si basa sullo sviluppo in serie della funzione f troncato al secondo ordine 3 :<br />
1<br />
T<br />
3<br />
( x<br />
k ) = ( x<br />
k ) + ∇<br />
x ( x<br />
k )( x − x<br />
k ) + ( x − x<br />
k ) H( x<br />
k )( x − x<br />
k ) + ( x − x<br />
k )<br />
f f f o<br />
2<br />
Se non ci sono termini di ordine superiore al secondo possiamo calcolare la derivata di f ( x ) in<br />
modo analitico ed azzerarla per ottenere il minimo:<br />
∂<br />
∂x<br />
∂<br />
∂x<br />
f<br />
( x) = ∇ f( x ) + H( x )( x − x )<br />
x<br />
0 0 0<br />
f ( x)<br />
= 0 ⇒ x = x − H( x ) − 1<br />
0 0<br />
∇ xf( x0)<br />
In questo caso il passo ottimo è dato da γ = 1, ∀k . Se nello sviluppo della f ci sono termini di<br />
ordine superiore al secondo bisogna iterare il metodo più volte:<br />
∂<br />
∂x<br />
k<br />
∂<br />
∂x<br />
k<br />
f<br />
( x ) = ∇ f( x ) + H( x )( x − x )<br />
k x k k k<br />
−1<br />
f ( x<br />
k ) = 0 ⇒ x<br />
k+<br />
1<br />
= x<br />
k<br />
− H( x<br />
k ) ∇<br />
xf( x<br />
k )<br />
Con il metodo di Newton non si procede nella direzione del gradiente: la matrice H effettua<br />
una rotazione del vettore ∇ x ( k )<br />
f x senza però “ribaltarlo” (altrimenti si procederebbe nella<br />
direzione di salita, anziché in quella di discesa).<br />
3<br />
Se la funzione f è davvero quadratica il metodo di Newton converge in un passo.<br />
16
Ottimizzazione statica<br />
La matrice H( x k ) è almeno semidefinita positiva (s.d.p.) 4 −1<br />
: H( x k ) ≥ 0 . Quindi, anche H ( x<br />
k )<br />
è s.d.p.<br />
Ad ogni passo di questo metodo bisogna calcolare il gradiente e l’hessiano di f( )<br />
x<br />
k<br />
e questo<br />
può crearci dei problemi nel caso in cui non si riescano ad avere le loro espressioni analitiche:<br />
ad ogni passo bisogna effettuare n 2 valutazioni di f( x<br />
k ) (dovute al calcolo di H( x k )<br />
altre n (dovute al calcolo di ∇ x<br />
f( x k )<br />
del gradiente bisognava effettuare solo n valutazioni della funzione f( x ) ).<br />
), più<br />
) ed un’inversione di matrice (ad ogni passo del metodo<br />
k<br />
1.4 Direzione di ricerca di Levenberg-Morquardt<br />
Spesso la matrice H( x k ) non è d.p. ma solo s.d.p., cioè il suo determinante in alcuni punti è<br />
nullo o quasi nullo. In entrambi i casi la matrice H( x k ) non può essere invertita in modo<br />
numerico.<br />
Se la matrice H( x k ) non è invertibile può essere scritta nella seguente forma (decomposizione<br />
ai valori singolari della matrice H( x k ) ):<br />
T<br />
( ) = ⋅ Σ ( ) ⋅<br />
Σ( x k )<br />
H x U x V<br />
k<br />
k<br />
⎡σ<br />
⎢<br />
= ⎢<br />
⎢<br />
⎣ 0<br />
⎤<br />
⎥<br />
O ⎥ σ ≥L≥<br />
1<br />
σ<br />
σ ⎥<br />
n ⎦<br />
1<br />
0<br />
(siccome H( x k ) è s.d.p. i suoi autovalori sono reali). Se la matrice ( )<br />
allora σ n<br />
= 0 o, in generale, σ<br />
n ≤<br />
H x k<br />
non è invertibile,<br />
ε , dove ε è la precisione di macchina.<br />
Invece di invertire la matrice H( x k ) si può invertire la matrice H( x )<br />
[ ]<br />
T<br />
( k ) + λ = ⋅ Σ ( k ) + λ ⋅<br />
Σ( x )<br />
H x I U x I V<br />
k<br />
k<br />
+ λ I ( λ ∈R , λ > ε ):<br />
⎡σ1 + λ 0 ⎤<br />
⎢<br />
⎥<br />
+ λI<br />
= ⎢ O ⎥<br />
⎣<br />
⎢ 0 σ<br />
n<br />
+ λ⎦<br />
⎥<br />
e σ + n<br />
λ > ε perché λ > ε . Poiché questo metodo introduce il parametro λ si perde in<br />
precisione e velocità. Gli algoritmi che usano la direzione di ricerca di L-M non invertono la<br />
matrice H( x<br />
k ) + λ I sempre ma solo quando ( )<br />
H x k<br />
non è invertibile.<br />
n<br />
1.5 Metodi quasi-Newton<br />
Questi metodi sono meno efficienti di quello di Newton ma più efficienti di quello del<br />
gradiente. Essi utilizzano i gradienti ai passi precedenti in modo da seguire in maniera<br />
4 T<br />
Una matrice A è s.d.p. se x Ax ≥ 0 , ∀x .<br />
17
Ottimizzazione<br />
approssimata la curvatura della funzione (che è data dal suo hessiano). Esistono molti<br />
algoritmi di questo tipo:<br />
• Fletcher-Reeves<br />
• Davidson-Fletcher-Powell<br />
• Polak-Polyak-Ribier-Sorenson<br />
• Broycher-Fletcher-Goldfarb-Shanno<br />
Un passo dell’algoritmo F-R è il seguente:<br />
x = +<br />
x −<br />
1<br />
γ ν<br />
i i i i<br />
dove γ i<br />
∈R è il passo di discesa e ν i<br />
è la direzione di discesa:<br />
ν<br />
( )<br />
= ∇ f x + β −1 ν −1<br />
, β i<br />
∈R<br />
i x i i i<br />
T<br />
( x ) f( x )<br />
T<br />
f( x ) ⋅∇ f( x )<br />
f<br />
= ∇ ⋅∇<br />
∇<br />
x i x i<br />
= ∇ ∇<br />
x<br />
( xi<br />
)<br />
f( x )<br />
x i+ 1 x i+ 1 x + 1<br />
β i 2<br />
Il parametro β i<br />
pesa la nuova direzione di discesa rispetto alle direzioni dei passi precedenti.<br />
Ogni n passi il valore di β i<br />
viene posto a 0.<br />
Con questo metodo, i punti x i<br />
sono disposti all’incirca lungo una spirale tra x 0<br />
ed il minimo<br />
della funzione.<br />
I metodi quasi-Newton sono anche detti metodi dei gradienti coniugati e differiscono tra loro<br />
per la scelta dei β i<br />
. Il costo di un passo di uno di questi metodi è leggermente superiore al<br />
costo di un passo del metodo del gradiente.<br />
f<br />
i<br />
2<br />
1.6 Metodi per il calcolo del passo γ i<br />
Il valore del passo γ i<br />
dovrebbe essere calcolato in modo da minimizzare la funzione di costo<br />
lungo una direzione (la funzione di costo ristretta lungo una direzione diventa una funzione<br />
scalare). Ma calcolare l’estremo di una funzione lungo una semiretta è impossibile, perciò<br />
bisogna determinare gli estremi del segmento lungo il quale minimizzare la funzione. Il primo<br />
estremo è costituito dal punto d’inizio, mentre il secondo è tale che il segmento abbia<br />
lunghezza ∆ max<br />
(da fissare). All’interno di questo segmento è possibile applicare il metodo<br />
delle successioni di Fibonacci o quello della sezione aurea. Supporremo che sul nostro<br />
segmento il minimo della funzione esista e sia unico (un intervallo con questa caratteristica è<br />
detto intervallo di unimodalità 5 ).<br />
1.6.1<br />
.1 Metodo di Fibonacci<br />
Per il calcolo di γ i<br />
può essere utilizzata la successione di Fibonacci, data da:<br />
Quindi:<br />
F 0<br />
= 1, F 1<br />
= 1, ..., F = F + F<br />
k+ 1 k k−1<br />
5<br />
Una funzione che ammette un solo minimo locale è detta unimodale. In questo caso, quindi, il minimo locale è<br />
anche globale.<br />
18
Ottimizzazione statica<br />
F 2<br />
= 2 , F 3<br />
= 3 , F 4<br />
= 5, F 5<br />
= 8, F 6<br />
= 13 , F 7<br />
= 21, ...<br />
Il segmento in cui effettuare la ricerca del minimo sia [ a, b]<br />
:<br />
con l 0<br />
= ∆ max<br />
.<br />
l<br />
Si individua un numero N tale che F ≥ 0 N<br />
, dove ε limita il numero di passi dell’algoritmo<br />
ε<br />
( ε è l’ampiezza minima dei sottointervalli dell’intervallo iniziale che si ottengono durante i<br />
vari passi). Ad esempio, se ε = l 0<br />
10 si ottiene che F 6<br />
= 13, N = 6 .<br />
Si pone ε'= l 0<br />
( ε'≤ ε)<br />
(si divide l’intervallo di lunghezza l<br />
F 0<br />
in F N<br />
intervallini di lunghezza<br />
N<br />
ε' ), si valuta la funzione nei punti di ascisse a , a + F N −1<br />
⋅ ε' , a + F N −2<br />
⋅ ε' e b (rispetto<br />
all’estremo a ) e si elimina l’intervallino del segmento che sicuramente non contiene il<br />
minimo:<br />
Si ripete il procedimento per la parte restante del segmento iniziale. E così via. In queste<br />
iterazioni successive, però, la lunghezza dei segmenti ai quali viene applicato il metodo di<br />
1<br />
l<br />
Fibonacci non è l 0<br />
e quindi bisogna calcolare nuovamente il valore N per il quale F ≥ 0 N<br />
ε .<br />
19
Ottimizzazione<br />
Qualsiasi sia la funzione f , il metodo di Fibonacci dà il massimo rapporto tra la lunghezza<br />
dell’intervallo iniziale e quella dell’intervallo finale con numero di passi fissato.<br />
1.6.2<br />
.2 Metodo della sezione aurea<br />
In questo caso si divide l’intervallo [ a, b]<br />
in tre intervallini: [ a,γ 1 ], [ γ<br />
1, γ<br />
2 ] e [ ]<br />
5 − 1<br />
τ =<br />
2<br />
γ = b − τ( b − a )<br />
1<br />
γ = a + τ( b − a )<br />
2<br />
( γ<br />
1<br />
> γ<br />
2<br />
sempre)<br />
γ 2<br />
,b tali che:<br />
Si scarta l’intervallino che sicuramente non contiene il minimo e si riapplica questo metodo al<br />
sottointervallo di [ a, b ] restante. E così via.<br />
Il metodo della sezione aurea approssima al limite le scelte effettuate con il metodo di<br />
Fibonacci:<br />
lim<br />
k→+∞<br />
Fk<br />
+ 1<br />
5 + 1<br />
=<br />
F 2<br />
k<br />
Con numero di passi arbitrario, il metodo della sezione aurea è più efficiente di quello di<br />
Fibonacci.<br />
1.7 Criteri d’arresto<br />
Tutti gli algoritmi che abbiamo visto per determinare il min ( x)<br />
x<br />
+ 1<br />
= x − γ d<br />
k k k k<br />
x∈X<br />
f sono di tipo iterativo:<br />
dove d k<br />
è la direzione di salita della funzione f . Non è possibile continuare ad applicare il<br />
metodo finché non si arriva esattamente al minimo, ma bisogna utilizzare uno dei seguenti<br />
criteri di arresto:<br />
• xk<br />
+ 1<br />
− xk<br />
≤ ε<br />
1<br />
(nel caso di funzioni di costo molto strette)<br />
• f( xk+ 1) − f( xk)<br />
≤ ε<br />
2<br />
(nel caso di funzioni di costo piatte)<br />
• ∇<br />
xf( x<br />
k )<br />
≤ ε 3<br />
(nel caso di gradiente piatto)<br />
Spesso, invece di calcolare γ k<br />
ad ogni passo, si usa un valore γ fisso. In questo modo si evita<br />
di valutare ripetutamente la funzione di costo, anche se si possono avere dei problemi. Infatti,<br />
si può procedere molto lentamente (se γ è troppo piccolo):<br />
20
Ottimizzazione statica<br />
oppure si può “perdere” il minimo (se γ è troppo grande):<br />
1.8 Ricerca del minimo globale<br />
Nel caso in cui la funzione f non sia unimodale (cioè nel caso in cui la f abbia più minimi<br />
locali ed eventualmente un minimo globale) i metodi visti finora non possono essere applicati.<br />
Gli algoritmi che risolvono problemi di ricerca di minimi globali (algoritmi di global search)<br />
convergono in probabilità verso il minimo globale con un numero di valutazioni tendente<br />
all’infinito. In realtà, i metodi possono essere fermati utilizzando un criterio d’arresto dopo un<br />
certo numero di iterazioni, ottenendo un valore che molto probabilmente è vicino al minimo<br />
globale della funzione. Da questo punto si può calcolare il minimo locale (che, quindi, è molto<br />
probabilmente uguale a quello globale) con uno dei metodi visti sopra.<br />
Algoritmi di global search sono l’algoritmo di simulated annealing ed i genetic algorithms.<br />
Se si vuole trovare il minimo globale di una funzione si potrebbe valutare la funzione su tutto<br />
il dominio con passo fisso. Un approccio del genere può essere ammissibile in R ma non in<br />
R n , con n molto grande.<br />
Questi algoritmi cercano di effettuare i campionamenti in parte in modo casuale ed in parte in<br />
modo guidato. La casualità ci dà la possibilità di “sfuggire” dai minimi locali, mentre la ricerca<br />
guidata ci evita di cercare la soluzione in zone che molto probabilmente non la contengono.<br />
Questi metodi ci permettono di ottenere un valore di x che molto probabilmente è vicino al<br />
minimo globale della funzione. Si può comunque dimostrare che esiste sempre un<br />
controesempio per il quale il minimo globale non si riesce a trovare utilizzando questi<br />
algoritmi.<br />
21
Ottimizzazione<br />
1.9 Simulated annealing<br />
Il passo (k+1)-esimo dell’algoritmo è dato da:<br />
x<br />
k<br />
+<br />
= xk<br />
+<br />
1<br />
∆<br />
dove ∆ è un vettore generato casualmente. Si valuta f( k )<br />
punto se f( xk<br />
+ 1 ) < f( xk)<br />
oppure se f( x<br />
k+ ) − f( x<br />
k ) ≤ T<br />
x +1<br />
e si accetta x k+1<br />
come nuovo<br />
1<br />
(la variabile T è detta temperatura.),<br />
altrimenti x = k+ 1<br />
x<br />
k<br />
(si mantiene il valore precedente). Se il valore di T è alto la<br />
disuguaglianza di sopra si verifica facilmente: tanto più alto è il valore di T , tanto più<br />
l’algoritmo si comporta in modo casuale. Se ad ogni iterazione si diminuisce il valore di T , ad<br />
ogni passo l’algoritmo si comporta sempre di più in modo “intelligente”:<br />
T = +<br />
T − ⋅<br />
1<br />
δ T<br />
k k k<br />
La scelta di δ è critica e dipende dal problema, ma deve essere tale che T k<br />
non decresca molto<br />
velocemente.<br />
1.10<br />
10 Algoritmi genetici<br />
Si codifica x con una stringa di bit. I primi n 1<br />
bit della codifica sono usati per la prima<br />
componente di x , i secondi n 2<br />
bit sono usati per la seconda componente di x , e così via.<br />
Generiamo casualmente N possibili soluzioni x 1<br />
, ... x N<br />
, calcoliamo i valori della funzione di<br />
costo in tali punti ed ordiniamo le soluzioni da quella con valore della f maggiore a quella<br />
con valore della f minore.<br />
Da queste N soluzioni possono esserne generate altre k (ad esempio può essere k = N<br />
2 ) che<br />
sostituiscono le k soluzioni peggiori trovate al passo precedente. Per generare queste nuove<br />
soluzioni possono essere usate due tecniche:<br />
• crossover: si estraggono a caso due soluzioni, che vengono dette genitori, tra le prime<br />
N − k (quelle che abbiamo deciso di conservare), e viene creato un figlio, cioè una<br />
soluzione ottenuta “accorpando” delle parti dei due genitori; ad esempio, nel caso di un<br />
solo taglio si può avere:<br />
22<br />
1 0 0 1 0 1 | 1 0 0 1 1 0 0 0 1 primo genitore<br />
1 1 1 0 0 1 | 0 1 0 1 0 0 0 1 0 secondo genitore<br />
1 0 0 1 0 1 | 0 1 0 1 0 0 0 1 0 figlio<br />
• mutazione: a caso si sceglie un genitore e si crea il figlio in modo che abbia gli stessi bit<br />
del genitore tranne qualcuno che viene invertito.<br />
La scelta della tecnica da usare può essere casuale (ad esempio si può scegliere di applicare il<br />
crossover nel 90% dei casi e la mutazione nel 10% dei casi). Inoltre, nella tecnica del crossover<br />
si potrebbe applicare il taglio in più punti e/o le mutazioni potrebbero avvenire su più bit.<br />
Le mutazioni portano una certa casualità, mentre i crossover permettono di cercare (in modo<br />
casuale) nuove buone soluzioni “assemblando” parti di buone soluzioni.<br />
Le vecchie N − k soluzioni e le nuove k vengono ordinate in base al valore della funzione di<br />
costo e le tecniche di crossover e mutazione vengono applicate nuovamente.
Ottimizzazione statica<br />
In genere in un algoritmo generico il numero N di una popolazione (soluzioni al passo i-<br />
esimo) è abbastanza basso (minore di 100), mentre il numero di iterazioni è abbastanza<br />
elevato (circa 10000).<br />
1.11<br />
11 Metodi di approssimazione della funzione f<br />
Nell’algoritmo di simulated annealing e negli algoritmi genetici il numero di valutazioni della<br />
funzione f è molto elevato. Il tempo di calcolo, quindi, dipende fortemente dal tempo di<br />
valutazione della f . Nei casi in cui il tempo di valutazione della f è molto elevato (dell’ordine<br />
dell’ora) questi metodi non possono essere usati (tipicamente si effettuano almeno 500.000<br />
valutazioni della f prima di ottenere la soluzione).<br />
In questi casi bisogna utilizzare altri metodi oppure si può approssimare la f : se il problema è<br />
in R n possiamo grigliare “rozzamente” (ogni asse viene suddiviso in 2 o 3 parti) lo spazio e<br />
calcolare sulla griglia il valore della funzione di costo. Costruiamo una funzione che<br />
approssimi la f in base a queste informazioni ed utilizzando le funzioni a base radiale. La f<br />
approssimata è data da:<br />
N<br />
( )<br />
f$ 1<br />
= ∑c i<br />
ϕ x,<br />
x i<br />
i=<br />
1<br />
Le funzioni ϕ( x, xi ) sono dette funzioni a base radiale se dipendono solo dalla distanza tra x<br />
ed x i<br />
:<br />
Funzioni di questo tipo sono la gaussiana:<br />
oppure le funzioni multiquadriche:<br />
ϕ<br />
( x, xi ) = ϕ( x − xi<br />
)<br />
ϕ<br />
( )<br />
( x x )<br />
,<br />
i<br />
= e<br />
2<br />
x−xi<br />
2<br />
σ<br />
ϕ x, xi = x − xi + h<br />
I valori dei parametri c i<br />
vengono determinati in modo che nei punti della griglia si abbia:<br />
N<br />
∑ i 1<br />
i=<br />
1<br />
2<br />
( x ) − f ( x )<br />
min f $<br />
che porta ad un sistema di equazioni lineari.<br />
Il tempo di valutazione della funzione f $ 1<br />
è molto basso e a questa funzione possono essere<br />
applicati gli algoritmi genetici o quello di simulated annealing. Quando si è trovato il minimo<br />
di f $ 1<br />
si costruisce una griglia nella zona di R n intorno al minimo trovato e si calcola una<br />
nuova funzione approssimata $ f 1<br />
utilizzando i valori della funzione f nei punti della nuova<br />
griglia e conservando le informazioni trovate al passo precedente:<br />
i<br />
2<br />
23
Ottimizzazione<br />
2N<br />
( )<br />
f$ 2<br />
= ∑ c i<br />
ϕ x,<br />
x i<br />
i=<br />
1<br />
Questo procedimento può essere ripetuto per più passi.<br />
Ai passi successivi al primo otteniamo un’interpolazione su punti sparsi, ma questo non ci crea<br />
problemi utilizzando le funzioni a base radiale 6 .<br />
6<br />
In generale, l’interpolazione può creare dei problemi nel caso in cui i punti nei quali viene campionata la<br />
funzione non siano disposti in modo regolare.<br />
24
Principio di Bellman<br />
2. PRINCIPIO DI BELLMAN<br />
Secondo il principio di Bellman si può arrivare all’ottimo effettuando ad ogni passo la scelta<br />
ottima, supponendo ottime le scelte effettuate ai passi precedenti. Il principio di Bellman si<br />
applica ai problemi partendo dall’ultimo passo e risalendo via via verso il primo.<br />
2.1 Esempio n.1: segmento da suddividere in n parti<br />
Si abbia un segmento di lunghezza l da suddividere in n segmenti di lunghezza x i<br />
in modo<br />
che si abbia max<br />
n<br />
x i<br />
i=<br />
1<br />
∏<br />
n<br />
∑<br />
, con x = l .<br />
i=<br />
1<br />
i<br />
Possiamo provare a risolvere il problema (più immediato) di dividere il segmento in due parti<br />
x 1<br />
ed x 2<br />
tali che x 1<br />
x 2<br />
sia massimo. Se x = 1<br />
x e x = l − x otteniamo:<br />
2<br />
max( x( l − x)<br />
) = max( lx − x<br />
2 )<br />
⇓<br />
∂<br />
( )<br />
∂x lx − x 2<br />
= − 2 x + l =<br />
l<br />
0 ⇒ x = 2<br />
2<br />
l<br />
f1 = max( x1x2<br />
) =<br />
4<br />
Se ora vogliamo suddividere il nostro segmento in tre parti x 1<br />
, x 2<br />
ed x 3<br />
tali che x x x<br />
1 2 3 sia<br />
massimo possiamo supporre che la prima parte (di lunghezza x ) sia già stata scelta<br />
(applichiamo, in pratica, il principio di Bellman). In questo modo, 1’unica scelta che può<br />
portarci all’ottimo è quella di dividere in due parti uguali il segmento restante. Si ottiene:<br />
Calcoliamo il valore ottimo di x :<br />
⎛<br />
f x x x x l − x ⎞<br />
2<br />
=<br />
1 2 3<br />
= ⎜ ⎟<br />
⎝ 4 ⎠<br />
∂<br />
( )<br />
∂x x l 2 x 2<br />
+ − 2 lx 1<br />
2 2<br />
l<br />
= l + 3x − 4lx<br />
= 0 ⇒ x =<br />
4 4<br />
3<br />
Da questo si può estrapolare il fatto che, dividendo il segmento in n parti, la soluzione ottima<br />
è quella di avere tutte le parti di lunghezza l n :<br />
2<br />
25
Ottimizzazione<br />
l<br />
f ( l)<br />
n<br />
= ⎛ ⎝ ⎜ ⎞<br />
⎟<br />
n⎠<br />
Questo si può dimostrare anche per induzione: si suppone vero il teorema per n e lo si<br />
dimostra vero per n +1. In pratica si suppone di dover dividere il segmento in n +1 punti e di<br />
scegliere una parte di lunghezza x e le altre di lunghezza l − x :<br />
n<br />
n+1<br />
Calcoliamo il valore ottimo di x :<br />
⎛<br />
f ( l)<br />
x l − x ⎞<br />
n+ 1<br />
= ⎜ ⎟<br />
⎝ n ⎠<br />
n<br />
∂ ∂<br />
( )<br />
∂x f x ⎡<br />
∂x x ⎛ l − x ⎞<br />
n+<br />
1<br />
= ⎢ ⎜ ⎟<br />
⎣<br />
⎝ n ⎠<br />
n<br />
⎤ ⎛ l − x⎞<br />
⎥ = ⎜ ⎟<br />
⎦<br />
⎝ n ⎠<br />
⇓<br />
l<br />
x =<br />
n + 1<br />
+ 1 n−1<br />
⎛ l − ( n + 1)<br />
x⎞<br />
⋅ ⎜ ⎟ = 0<br />
⎝ n ⎠<br />
2.2 Esempio n.2: percorso ottimo<br />
Consideriamo una città di partenza, una di arrivo e delle stazioni intermedie. Le strade che<br />
collegano le varie città abbiano un costo come indicato nel grafo seguente:<br />
Le linee tratteggiate indicano le tappe del percorso (ogni percorso possibile deve passare una<br />
ed una sola volta per ogni tappa).<br />
Per trovare il percorso ottimo (di costo minimo) da A 0<br />
ad A 6<br />
si potrebbero esplorare tutti i<br />
percorsi possibili, ma questo può essere non efficiente, anche se il numero dei percorsi<br />
possibili da A 0<br />
ad A 6<br />
è finito.<br />
Anche questo problema può essere risolto con il principio di Bellman: si parte dall’ultima<br />
tappa e si procede a ritroso. Ad ogni passo si sceglie l’arco migliore che collega le varie città<br />
della tappa corrente con il resto del percorso già scelto. Nel grafo seguente su ogni nodo è<br />
indicato il costo del percorso ottimo da quel nodo ad A 6<br />
:<br />
26
Principio di Bellman<br />
27
Minimizzazione di un indice di qualità<br />
3. MINIMIZZAZIONE DI UN INDICE DI<br />
QUALITÀ<br />
3.1 Equazione di Eulero-Lagrange<br />
Vediamo un esempio in cui il numero di possibili soluzioni di un problema è infinito. In<br />
questo caso non si può trovare la soluzione ottima esaminando tutte le possibili soluzioni.<br />
Determiniamo la funzione x( t ) tale che risulti minimo l’integrale:<br />
Il nostro problema è quello di determinare il<br />
Consideriamo fissi t f<br />
ed x x( t )<br />
(3.1) ( )<br />
t f<br />
J = ∫ F x, x&,τ dτ<br />
t0<br />
min ,<br />
J = V( x0 t<br />
0 ) con x<br />
0<br />
x( t<br />
0)<br />
( )<br />
x t<br />
= .<br />
f<br />
=<br />
f<br />
e supponiamo che la funzione x( t ) esista e che si possa<br />
calcolare in qualche modo. Un caso generale dell’integrale (3.1) è il seguente, in cui abbiamo<br />
sostituito t a t 0<br />
:<br />
Possiamo porre:<br />
t f<br />
( , &, )<br />
J'<br />
= ∫ F x x τ dτ<br />
t<br />
x( t)<br />
t f<br />
( τ) τ ( )<br />
min ∫ F x, x&, d = V x,<br />
t<br />
Otteniamo:<br />
t f<br />
t+<br />
∆<br />
t f<br />
⎧⎪<br />
⎫⎪<br />
min F( x, x&, ) d min F( x, x&, ) d F( x, x&,<br />
) d<br />
x( t)<br />
∫ τ τ = ⎨ τ τ τ τ<br />
x( t)<br />
∫ + ∫ ⎬<br />
t<br />
⎩⎪ t<br />
t<br />
⎭⎪ =<br />
+ ∆<br />
Se ∆ è piccolo si ottiene:<br />
t<br />
t+<br />
∆<br />
t f<br />
⎧<br />
⎫ ⎧⎪<br />
⎫⎪<br />
= min ⎨ F( x, x&, τ)<br />
dτ min F x, x&, τ dτ<br />
V x,<br />
t<br />
x( t)<br />
∫ ⎬ + ⎨<br />
x( t)<br />
∫ ⎬<br />
⎩ t ⎭ ⎩⎪ t<br />
⎭⎪ =<br />
+ ∆<br />
( ) ( )<br />
29
Ottimizzazione<br />
t f<br />
⎧⎪<br />
⎫⎪<br />
min ⎨ F x, x&, d V x x& , t<br />
x( t)<br />
∫ ⎬<br />
⎩⎪ t+<br />
⎭⎪ = + +<br />
∆<br />
( τ) τ ( ∆ ∆)<br />
Quindi:<br />
( + & ∆, + ∆) − ( , )<br />
t+<br />
∆<br />
⎧V x x t V x t 1<br />
min⎨<br />
+ ∫ F x x<br />
⎩ ∆<br />
∆<br />
t<br />
⇓<br />
⎧dV( x,<br />
t)<br />
⎫<br />
min⎨<br />
+ F( x, x&,<br />
t)<br />
⎬<br />
&x ( t)<br />
⎩ dt<br />
⎭ = 0<br />
( , &, τ)<br />
⎫<br />
dτ⎬<br />
= 0<br />
⎭<br />
Ci siamo ridotti a calcolare il valore di &x che ci permette di spostarci lungo la direzione ottima<br />
(ci siamo ridotti al calcolo di &x in un punto). Una condizione limite è data da:<br />
Otteniamo:<br />
V( x, t f ) ≡ 0 ∀x<br />
(3.2)<br />
( , ) ⎡∂V( x,<br />
t)<br />
∂V x t<br />
∂t<br />
⎤<br />
+ min⎢<br />
x&<br />
+ F( x, x&,<br />
t)<br />
x&<br />
⎣ ∂x<br />
⎥ = 0<br />
⎦<br />
Abbiamo ottenuto un’equazione alle derivate parziali del primo ordine con un operatore di<br />
∂V( x,<br />
t)<br />
ottimizzazione. Affinchè x&<br />
+ F( x, x&,<br />
t)<br />
sia minimo (rispetto ad &x ) deve essere:<br />
∂x<br />
(3.3)<br />
( , )<br />
∂ ⎡∂V x t<br />
∂x&<br />
⎢<br />
⎣ ∂x<br />
( , &, )<br />
x&<br />
+ F x x t<br />
( , ) ∂F( x, x&,<br />
t)<br />
⎤ ∂V x t<br />
⎥ = + = 0<br />
⎦ ∂x<br />
∂x&<br />
Possiamo sostituire la (3.2) con il seguente sistema:<br />
(3.4)<br />
( , ) ∂V( x,<br />
t)<br />
x&<br />
F( x, x&,<br />
t)<br />
∂t<br />
∂x<br />
∂V( x, t) ∂F( x, x&,<br />
t)<br />
⎧∂V x t<br />
⎪<br />
+ + = 0<br />
⎨<br />
⎩⎪<br />
∂x<br />
+<br />
∂x&<br />
= 0<br />
( , )<br />
( )<br />
∂V x t<br />
Sostituiamo con − ∂ F x, x&,<br />
t<br />
nella prima equazione e poi eliminiamo la funzione V<br />
∂x<br />
∂x&<br />
derivando in ∂x la prima equazione e in ∂t la seconda equazione:<br />
⎧<br />
2<br />
∂ V x t<br />
⎪ ∂x∂t<br />
⎨<br />
⎪<br />
⎩⎪<br />
( , ) ∂ ⎛ ∂F( x, x&,<br />
t) ⎞ ∂F( x, x&,<br />
t)<br />
− ⎜<br />
∂x<br />
⎝<br />
∂ V x t<br />
∂x∂t<br />
∂x&<br />
( , ) ∂ F( x, x&,<br />
t)<br />
2 2<br />
x&<br />
⎟ + = 0<br />
⎠ ∂x<br />
+ = 0<br />
∂t∂x&<br />
30
Minimizzazione di un indice di qualità<br />
Otteniamo:<br />
(3.5)<br />
d<br />
dt<br />
( , &, ) ∂ F( x, x&,<br />
t) ∂F( x, x&,<br />
t)<br />
2 2<br />
∂ F x x t<br />
+ x&<br />
− = 0<br />
∂t∂x&<br />
∂x∂x&<br />
∂x<br />
⇓<br />
⎛ ∂F( x, x&,<br />
t) ⎞ ∂F( x, x&,<br />
t)<br />
⎜ ⎟ − = 0 (equazione di Eulero-Lagrange)<br />
⎝ ∂x&<br />
⎠ ∂x<br />
Per risolvere un’equazione differenziale abbiamo bisogno delle condizioni iniziali. In questo<br />
caso, invece, abbiamo una condizione iniziale ( t , x ) e una finale ( t x )<br />
0 0<br />
esistenza ed unicità della soluzione (Cauchy) non è più valido.<br />
Ad esempio, se la F è tale che la (3.5) diventi:<br />
si ottiene:<br />
&&x<br />
+ x = 0<br />
x( t)<br />
= A cost + Bsen<br />
t<br />
f<br />
,<br />
1<br />
e il teorema di<br />
Se t 0<br />
= 0 ed x( t 0 ) = 0 , allora x( t)<br />
= Bsen t ( A = 0). Per calcolare B bisogna imporre la<br />
f<br />
relazione x<br />
f<br />
= Bsen t<br />
f<br />
. Se t f<br />
= π 3<br />
B<br />
, otteniamo l’unica soluzione x<br />
f<br />
= B<br />
= x 2<br />
f<br />
. Ma se t 3 f<br />
= 0 si hanno infinite soluzioni possibili.<br />
3<br />
2<br />
⇒<br />
3.2 Condizioni per l’ottimalità della x(t)<br />
Nella trattazione precedente abbiamo fissato t e x e abbiamo cercato il valore di &x che<br />
minimizzasse J' . Per verificare che questo valore di &x sia davvero tale da minimizzare l’indice<br />
∂V( x, t) ∂F( x, x&,<br />
t)<br />
di qualità bisogna derivare + in ∂&x e verificare che il risultato sia positivo:<br />
∂x<br />
∂x&<br />
(3.6)<br />
∂ ⎡∂V x t<br />
∂x&<br />
⎢<br />
⎣ ∂x<br />
2<br />
( , ) ∂F( x, x&,<br />
t) ⎤ ∂ F( x, x&,<br />
t)<br />
+<br />
∂x&<br />
⎥ = ><br />
⎦ ∂x&<br />
2<br />
0<br />
Questa è la condizione necessaria per l’ottimalità.<br />
Se abbiamo due soluzioni &x m ed &x , con x& m ≠ x&<br />
, otteniamo:<br />
( , &, )<br />
F x x t<br />
( , ) ∂V( x,<br />
t)<br />
∂V x t<br />
∂V x t<br />
m<br />
+ + x& ≤ F( x, x& , t)<br />
+ +<br />
∂t<br />
∂x<br />
∂t<br />
∂V( x,<br />
t) F ( x x t ) F ( x x<br />
m t )<br />
x (<br />
m<br />
, &, − , & , ≤ x&<br />
− x&<br />
∂ )<br />
( , ) ∂V( x,<br />
t)<br />
∂x<br />
x&<br />
m<br />
1<br />
I problemi in cui è data una condizione iniziale ed una finale sono detti two-point boundary-value problems.<br />
31
Ottimizzazione<br />
Inoltre, siccome in entrambi i casi si ha un minimo e quindi in entrambi i casi vale la<br />
relazione (3.3), otteniamo:<br />
( , &, ) (<br />
m<br />
x&<br />
x&<br />
)<br />
∂F x x t<br />
F ( x x t ) F ( x x<br />
m<br />
, &, − , & , t ) ≤ −<br />
∂x&<br />
3.3 Generalizzazioni del problema<br />
In alcuni casi non ci interessa partire da un punto preciso o arrivare in un punto preciso ma<br />
ci interessa solo che il punto iniziale e/o il punto finale appartengano ad una curva. Ad<br />
esempio, si può avere un problema in cui x f<br />
è fisso, mentre x 0<br />
può muoversi lungo la retta<br />
t = t 0<br />
:<br />
Esistono infinite funzioni V considerando i vari punti ( t x )<br />
possibili quella ottimale è tale che:<br />
, sulla retta. Tra tutte le scelte<br />
0 0<br />
( , )<br />
∂V x t<br />
∂x<br />
t = t 0<br />
= 0<br />
Questa condizione deve essere aggiunta alle (3.4) e (3.6).<br />
Inoltre, siccome vale ancora la (3.3), questa equazione diventa la seguente:<br />
( , &, )<br />
∂F x x t<br />
∂&<br />
x<br />
t=<br />
t 0<br />
= 0<br />
Analogamente, se x f<br />
è libero di muoversi lungo la retta t<br />
= t f<br />
si ha la seguente equazione:<br />
( , &, )<br />
∂F x x t<br />
∂&<br />
x<br />
t=<br />
t f<br />
= 0<br />
32
Minimizzazione di un indice di qualità<br />
da aggiungere alle (3.4) e (3.6).<br />
Si può avere una situazione ancora più generale: possiamo partire da un punto ( x , t )<br />
qualsiasi su una curva c( t ) :<br />
0 0<br />
Anche in questo caso esistono infinite funzioni V considerando i vari punti ( t<br />
0<br />
x<br />
0 )<br />
curva. Tra tutte le scelte possibili quella ottimale è tale che:<br />
, sulla<br />
( , ) ∂V( x,<br />
t)<br />
⎛ ∂V x t<br />
⎜<br />
⎝ ∂x<br />
x&<br />
+<br />
∂t<br />
⎞<br />
⎟ = 0 ⇒<br />
⎠<br />
x=<br />
c( t )<br />
( , ) ∂V( x,<br />
t)<br />
∂V x t<br />
∂x<br />
c&<br />
+ = 0<br />
∂t<br />
Utilizzando la prima equazione delle (3.4) si ottiene:<br />
Infine, per la (3.3) si ha:<br />
( , ) ∂V( x,<br />
t)<br />
∂V x t<br />
∂x<br />
( , &, ) ( c& x& ) F ( x, x&,<br />
t )<br />
∂F x x t<br />
∂x&<br />
( , &, )<br />
c&<br />
− x&<br />
− F x x t = 0<br />
∂x<br />
− + = 0 (condizione di trasversalità)<br />
Questa condizione è detta di trasversalità perché il segmento più corto che congiunge un<br />
punto qualsiasi su una circonferenza con un punto qualsiasi su un’altra circonferenza è quello<br />
che giace sulla retta che congiunge i due centri: tale segmento esce con un angolo di 90° dalle<br />
due circonferenze:<br />
33
Ottimizzazione<br />
Le equazioni ottenute sopra e dovute al fatto di avere x 0<br />
e/o x f<br />
giacenti su una curva si<br />
aggiungono alle (3.4) e (3.6) e sostituiscono le condizioni iniziali e finali.<br />
Finora abbiamo esaminato il caso in cui x è una variabile scalare. Nel caso multidimensionale<br />
si ottengono gli stessi risultati sostituendo ∂<br />
∂x con ∇ x e ∂ ∂&x con ∇ &x .<br />
3.4 Esempio: minimizzazione del percorso che collega<br />
due punti<br />
Cerchiamo la curva di lunghezza minima che collega due punti. L’integrale da minimizzare è<br />
il seguente:<br />
2<br />
dove 1+ x&<br />
= (&,<br />
)<br />
Siccome<br />
t f<br />
J = ∫ 1 2<br />
+ x&<br />
dt<br />
F x t è la distanza elementare.<br />
∂F( x&<br />
)<br />
= 0 , l’equazione di E-L diventa:<br />
∂x<br />
t 0<br />
d<br />
dt<br />
∂F( x&<br />
)<br />
∂x&<br />
=<br />
d<br />
dt<br />
∂<br />
1+<br />
x&<br />
∂x&<br />
2<br />
= 0<br />
⇒<br />
∂<br />
1+<br />
x&<br />
∂x&<br />
2<br />
=<br />
2<br />
cost ⇒ ( 1 x&<br />
)<br />
1<br />
−<br />
2<br />
+ ⋅ x&<br />
=<br />
x&<br />
1+<br />
x&<br />
2<br />
= cost<br />
Siccome l’equazione di sopra dipende solo da &x e deve essere sempre vera, allora &x deve<br />
essere costante. Quindi, tutte le possibili curve con pendenza costante (rette) sono soluzioni<br />
del problema.<br />
Se utilizziamo le condizioni iniziale e finale si ottiene che la curva più corta che congiunge i<br />
due punti è il segmento che li unisce.<br />
34
Funzione hamiltoniana<br />
4. FUNZIONE HAMILTONIANA<br />
Definiamo la variabile aggiunta o variabile momento nel seguente modo:<br />
( , &, ) ∂V( x,<br />
t)<br />
∂F x x t<br />
p = = −<br />
∂x&<br />
La variabile p è (a meno di un segno) il gradiente di V e deve essere continua: V è definita<br />
come integrale di F e, se F è continua, il suo integrale è continuo.<br />
Definiamo la funzione hamiltoniana H nel seguente modo:<br />
∂x<br />
Ma, per le (3.4) è anche<br />
( , &, )<br />
∂<br />
H = x&<br />
F x x t − F x x t = xp − F x x t<br />
∂x&<br />
( , )<br />
( , &, ) & ( , &, )<br />
( , )<br />
∂<br />
H = −x&<br />
V x t<br />
∂V x t<br />
− F( x, x&,<br />
t)<br />
=<br />
∂x<br />
∂t<br />
∂H<br />
∂x<br />
( , &, )<br />
= − d ∂F x x t<br />
dt ∂x&<br />
= −p &<br />
&x = ∂ H<br />
∂p<br />
. Otteniamo:<br />
Con la definizione di p ed H possiamo trasformare l’equazione di Eulero-Lagrange, che è<br />
un’equazione differenziale del secondo ordine, in un sistema di equazioni differenziali del<br />
primo ordine:<br />
⎧ ∂H<br />
p&<br />
= −<br />
⎪ ∂x<br />
⎨ ∂H<br />
x&<br />
=<br />
⎩⎪<br />
∂p<br />
(formulazione hamiltoniana)<br />
La funzione H è tale che la sua derivata totale rispetto al tempo è uguale alla sua derivata<br />
parziale rispetto al tempo:<br />
dH ∂H ∂H dt t x x ∂H p p ∂H ∂H ∂H ∂H ∂H ∂H<br />
= + & + & = + − =<br />
∂ ∂ ∂ ∂t ∂x ∂p ∂p ∂x ∂t<br />
Nella pratica generalmente H è costante nel tempo:<br />
∂H<br />
∂t<br />
= 0 ⇒<br />
dH = 0 ⇒ H = cost<br />
dt<br />
35
Ottimizzazione<br />
Si può dimostrare che, se x è continua, anche p è continua. Possiamo ottenere altre due<br />
equazioni in cui t ed H sono coniugati tra di loro:<br />
&H = ∂ H<br />
∂ t<br />
t= 1=<br />
∂ H<br />
∂H<br />
Se il tempo è continuo (se il problema è formulato bene ci aspettiamo che lo sia) anche H è<br />
continua.<br />
4.1 Esempio: sistema massa-molla<br />
Se la funzione F è la lagrangiana L di un sistema dinamico (differenza tra energia cinetica ed<br />
energia potenziale), applicando le equazioni di sopra otteniamo le equazioni fondamentali<br />
della dinamica.<br />
Consideriamo una massa m collegata ad una molla di costante elastica k . Otteniamo:<br />
Applicando l’equazione di E-L otteniamo:<br />
& 2<br />
T =<br />
mx<br />
2<br />
(energia cinetica)<br />
V =<br />
kx 2<br />
2<br />
(energia potenziale)<br />
mx& kx<br />
L = −<br />
2 2<br />
( , &, ) d ∂L( x, x&,<br />
t)<br />
∂L x x t<br />
∂x<br />
d<br />
− = 0 ⇒ kx + ( mx& ) = 0<br />
dt ∂x&<br />
dt<br />
( mx& è la quantità di moto del sistema).<br />
Quindi, la somma della quantità di moto e della forza elastica è nulla. Se m è costante,<br />
otteniamo mx && = − kx , dove &&x è l’accelerazione del sistema.<br />
2 2 2 2<br />
∂L( x, x&,<br />
t)<br />
mx&<br />
kx mx&<br />
kx<br />
2<br />
Possiamo definire p = = mx& e H = mx&<br />
− + = + . H non dipende<br />
∂x&<br />
2 2 2 2<br />
dal tempo, quindi d H = 0 (principio di conservazione dell’energia).<br />
dt<br />
Se l’i-esima componente di x non è esplicitamente presente in H , la derivata di H rispetto a<br />
quella componente è nulla e quindi l’i-esima componente di p è costante (otteniamo il<br />
principio di conservazione della quantità di moto).<br />
4.2 Esempio: giuntura di due soluzioni<br />
Minimizziamo il seguente integrale:<br />
36
Funzione hamiltoniana<br />
tra i punti ( 0, 0)<br />
e ( 2 1)<br />
2<br />
∫ 2 2<br />
( 1 & )<br />
0<br />
J = y − y dt<br />
2<br />
2<br />
, . La quantità y ( 1− y& ) [= F( y y t)<br />
, &, ] è sicuramente non negativa. Si<br />
potrebbe minimizzare l’integrale di sopra ponendo y = 0 oppure &y = 1 ma nessuna di queste<br />
è soluzione (entrambe non passerebbero per ( 0, 0)<br />
e ( 2 1)<br />
otteniamo:<br />
Se y ≠ 0 otteniamo:<br />
( , &, ) d ∂F( y, y&,<br />
t)<br />
∂F y y t<br />
∂y<br />
− = 0<br />
dt ∂y&<br />
⇓<br />
2<br />
2<br />
2y( 1 − y & ) + d<br />
2( 1 ) 0<br />
dt y ⋅ − y&<br />
=<br />
⇓<br />
( ) 2<br />
( )<br />
y 1− y& + 2yy & 1− y& − && yy = 0<br />
( ) 2<br />
( )<br />
1− y& + 2y& 1− y& − && y = 0<br />
, ). Applicando l’equazione di E-L<br />
Possiamo porre:<br />
( , &, )<br />
∂F y y t<br />
p = = −2y<br />
2 1−<br />
∂y&<br />
( y&<br />
)<br />
2<br />
( ) ( 1 )<br />
H = yp & − F y, y&, t = yp & − y − y&<br />
2<br />
Siccome H non dipende esplicitamente dal tempo, allora H = cost , quindi:<br />
Siccome la curva deve passare per ( 0 0)<br />
( ) ( )<br />
− 2y 2 y& 1− y& − y 2 1− y& = cost<br />
, (punto iniziale) e in quel punto H = 0 , sarà<br />
H = 0 sempre. La funzione H è nulla o perché y = 0 o perché 1− &y = 0.<br />
Quindi, la soluzione esatta del problema non esiste. Si possono “giuntare” le due soluzioni<br />
y = 0 e &y = 1:<br />
2<br />
37
Ottimizzazione<br />
In questo caso H e p sono continue. Se H e p non sono continue, la soluzione trovata<br />
giuntando due soluzioni “parziali” deve essere scartata.<br />
4.3 Condizioni di continuità sulle giunture nel caso<br />
generale<br />
Le condizioni di continuità in una giuntura centrata all’istante τ sono le seguenti:<br />
• x( τ<br />
− ) = x( τ<br />
+ )<br />
• p( τ<br />
− ) = p( τ<br />
+ )<br />
• H( τ ) = H( τ )<br />
− +<br />
Queste condizioni possono essere espresse anche in funzione di F:<br />
• ∂ F ( x, x&,<br />
t ) ∂F ( x, x&,<br />
t<br />
=<br />
)<br />
∂x&<br />
∂x&<br />
( )<br />
⎛ ∂F x, x&,<br />
t<br />
• ⎜<br />
⎝ ∂x&<br />
τ − τ +<br />
( , &, )<br />
⎞ ∂F x x t<br />
x&<br />
− F( x, x&,<br />
t)<br />
x&<br />
F( x, x&,<br />
t)<br />
⎠<br />
⎟ = ⎛<br />
⎜<br />
⎝ ∂x&<br />
− ⎞<br />
⎟<br />
⎠<br />
τ − τ +<br />
4.4 Minimizzare un integrale mantenendo costante un<br />
altro integrale<br />
Minimizziamo il seguente integrale:<br />
mantenendo costante il seguente integrale:<br />
t1<br />
( )<br />
J = ∫ F1<br />
x, x&,τ dτ<br />
t0<br />
38
Funzione hamiltoniana<br />
t1<br />
( )<br />
k = ∫ F2<br />
x, x&,τ dτ<br />
t 0<br />
Se F 2<br />
è la lunghezza infinitesima di un filo di lunghezza assegnata i cui estremi sono fissi<br />
sull’asse delle ascisse e − F 1<br />
è l’area compresa tra il filo e tale asse, il problema è quello di<br />
disporre il filo in modo che sottenda un’area massima. In maniera intuitiva sappiamo che in<br />
questo caso il filo deve essere disposto in modo da formare un arco di circonferenza.<br />
Possiamo porre:<br />
con q( t 0 ) = 0 e q( t )<br />
1<br />
= k .<br />
t<br />
( ) ( , &,τ)<br />
τ ⇒ q&<br />
( t) F ( x, x&,<br />
t)<br />
q t = ∫ F2<br />
x x d<br />
t 0<br />
La funzione da minimizzare diventa F( x, x&, t) = F ( x, x&, t) + ( t) q& ( t) − F ( x, x&,<br />
t)<br />
t1<br />
∫<br />
= 2<br />
[ ]<br />
λ :<br />
1 2<br />
{ 1( ) + ( ) ⋅[ ( ) −<br />
2( )]}<br />
min F x, x&, τ λ τ q τ F x, x&,<br />
τ dτ<br />
t 0<br />
Se massimizziamo λ e se &q ≠ F 2<br />
otteniamo sicuramente che il minimo di F tende all’infinito.<br />
Questo obbliga &q = F 2<br />
.<br />
L’equazione di Eulero-Lagrange rispetto ad x è la seguente:<br />
∂<br />
{ F1 ( x, x&, t) + λ( t) [ q& ( t) − F2<br />
( x, x&,<br />
t)<br />
]}<br />
quella rispetto a λ è:<br />
∂x<br />
mentre quella rispetto alla q è la seguente:<br />
{ ( , &, ) λ( )[ &( ) ( , &, )]}<br />
d ∂<br />
−<br />
dt ∂x F x x t + t q t −<br />
&<br />
F x x t =<br />
&q<br />
− F2 = 0<br />
1 2<br />
0<br />
{ ( , &, ) λ( )[ &( ) ( , &, )]}<br />
d ∂<br />
− + − =<br />
dt ∂q&<br />
F x x t t q t F x x t<br />
1 2<br />
0 ⇒<br />
dλ( t)<br />
dt<br />
= 0 ⇒ λ( t ) = λ = cost<br />
Poiché λ è costante, possiamo derivare la prima equazione ricavando la x . Infine, imponendo<br />
( )<br />
q t<br />
1<br />
= k , riusciamo a calcolare λ .<br />
Scambiando l’operatore di minimo con quello di massimo ed F 1<br />
con F 2<br />
si può risolvere il<br />
problema duale.<br />
4.5 Esempio: massimizzazione dell’area sottesa da un<br />
filo di lunghezza fissata<br />
Calcoliamo la curva di lunghezza fissata che sottende un’area massima:<br />
39
Ottimizzazione<br />
L’integrale da massimizzare è<br />
Definiamo la funzione:<br />
B<br />
2<br />
∫ ydt , con ∫ 1+ &y dt = l .<br />
A<br />
B<br />
A<br />
( ) ( )<br />
F y, y&, t = y + λ t 1+<br />
y&<br />
F è indipendente da t . Quindi, la H deve essere costante:<br />
( , &, )<br />
∂<br />
H = y&<br />
F y y t<br />
− F( y, y&,<br />
t)<br />
= c<br />
∂y&<br />
⇓<br />
2<br />
y + λ 1+ y&<br />
− λ<br />
( y c )<br />
y&<br />
2<br />
1+<br />
y&<br />
⇓<br />
2<br />
2 λ<br />
+<br />
1<br />
=<br />
1 + y &<br />
2<br />
1<br />
+ c = 0<br />
2 1<br />
Le soluzioni di quest’equazione differenziale le soluzioni sono circonferenze del tipo:<br />
2<br />
( x c<br />
2 ) ( y c1)<br />
+ + + =<br />
Poiché i due punti A e B sono fissi quest’equazione rappresenta tutti gli archi di<br />
circonferenza che passano per i due punti. Il parametro λ ci permette di scegliere tra tutti<br />
questi archi la soluzione cercata, cioè l’arco la cui lunghezza è l .<br />
La soluzione al problema non può esistere in alcuni casi, ad esempio se l < B − A .<br />
2<br />
2<br />
2<br />
λ<br />
4.6 Presenza di un vincolo di disuguaglianza<br />
Il problema che ci poniamo in questo paragrafo è quello minimizzare il seguente integrale:<br />
40
Funzione hamiltoniana<br />
t1<br />
( )<br />
J = ∫ F x, x&,<br />
t dt<br />
t 0<br />
con il vincolo x( t) ≥ ϕ ( t)<br />
⇒<br />
2<br />
x( t) − ϕ( t) = z ( t)<br />
≥ 0. Sulla frontiera del vincolo si ha<br />
z = 0 .<br />
Derivando la disequazione precedente si ottiene:<br />
Riportando il problema in z si ottiene:<br />
x& − ϕ& = 2 zz&<br />
⇒ x& = ϕ& + 2zz&<br />
t1<br />
∫<br />
2<br />
( ϕ, ϕ& 2 &, t)<br />
J = F z + + zz dt<br />
t 0<br />
Possiamo estremizzare quest’integrale rispetto alla variabile z . Applichiamo l’equazione di E-<br />
L:<br />
2 2<br />
( + ϕ, ϕ& + 2zz& ) d ∂F( z + ϕ, ϕ& + 2zz&<br />
)<br />
∂F z<br />
∂z<br />
−<br />
dt ∂z&<br />
⇓<br />
⎡∂F( x x t) d ( )<br />
2z<br />
∂F x x t ⎤<br />
⎢ −<br />
0<br />
⎣ ∂x<br />
dt ∂x&<br />
⎥ =<br />
⎦<br />
Una soluzione è quella data da z = 0 (frontiera del vincolo). Un’altra soluzione si ottiene<br />
risolvendo l’equazione di E-L come se non ci fosse il vincolo.<br />
La soluzione al problema si ottiene giuntando la soluzione ottenuta come se il vincolo non<br />
esistesse con porzioni della frontiera del vincolo.<br />
Ad esempio, se il vincolo è un cerchio, si ottiene:<br />
= 0<br />
Esistono due soluzioni possibili e quindi due minimi locali del problema. Il minimo globale<br />
può essere ottenuto per confronto diretto.<br />
41
Applicazione ai sistemi tempo-continui<br />
5. APPLICAZIONE AI SISTEMI TEMPO-<br />
CONTINUI<br />
Si abbia un sistema la cui dinamica è descritta dalla seguente equazione:<br />
( )<br />
x& = f x, u,<br />
t<br />
Si abbia la condizione iniziale x 0<br />
all’istante t 0<br />
e un indice di qualità:<br />
t f<br />
( , , τ ) τ Φ ( x , )<br />
J = ∫ l x u d +<br />
f<br />
t<br />
t0<br />
L’integrale tiene conto dell’intero intervallo in cui si svolge il controllo, mentre Φ tiene conto<br />
solo dello stato finale del sistema. L’intervallo [ t t f ]<br />
0<br />
, è detto orizzonte di controllo.<br />
Nel controllo classico in genere è t = 0 e t f<br />
→ ∞ . Spesso, però, ci interessa che un sistema<br />
abbia determinate proprietà solo fino ad un istante t f<br />
≠ ∞ (magari dopo quell’istante il<br />
sistema si distrugge o non viene più usato):<br />
Se t 0<br />
, t f<br />
ed x 0<br />
sono fissati, la soluzione ottima è tale che:<br />
t<br />
⎡ f<br />
V( x, t<br />
0 ) = min ⎢ l x, u, d + x<br />
f<br />
, t<br />
u( t )<br />
∫ τ τ Φ<br />
⎣⎢<br />
t 0<br />
( ) ( )<br />
L’incognita del problema è la funzione u( t ) . Ma in genere le funzioni u( t ) non possono essere<br />
qualsiasi: deve essere u( t)<br />
∈U . Ad esempio, ad un motore non possiamo applicare una<br />
tensione oltre un certo valore limite. Si potrebbero, inoltre, imporre dei vincoli sulla x( t ) o si<br />
potrebbero vincolare gli andamenti della u( t ) e della x( t ) .<br />
Otteniamo:<br />
t+ ∆<br />
t f<br />
t+<br />
∆<br />
⎡<br />
⎤<br />
V( x, t)<br />
= min ⎢ l( x, u, ) d + l( x, u, ) d + ( x<br />
f<br />
, t<br />
f ) ⎥ min l( x, u, ) d V[ x( t ),<br />
t ]<br />
u( t )<br />
u( t )<br />
⎣⎢<br />
t<br />
t<br />
⎦⎥ = ⎧<br />
⎨<br />
+ + +<br />
⎫<br />
∫ τ τ ∫ τ τ Φ ∫ τ τ ∆ ∆ ⎬<br />
+ ∆<br />
⎩ t<br />
⎭<br />
⇓<br />
t+<br />
∆<br />
⎧<br />
⎫<br />
0 = min ⎨ ( ) + [ ( + ) + ] − ( ) ⎬<br />
( ) ∫ l x, u, τ dτ<br />
V x t ∆ , t ∆ V x,<br />
t<br />
u t<br />
⎩ t<br />
⎭<br />
⇓<br />
f<br />
f<br />
⎤<br />
⎥<br />
⎦⎥<br />
43
Ottimizzazione<br />
t+<br />
∆<br />
⎧<br />
⎫<br />
∫ l( x, u,<br />
τ)<br />
dτ<br />
⎪<br />
V[ x( t + ∆)<br />
, t + ∆] − V( x,<br />
t)<br />
t<br />
⎪<br />
0 = min⎨<br />
+<br />
⎬<br />
u( t )<br />
⎪ ∆<br />
∆ ⎪<br />
⎩<br />
⎪<br />
⎭<br />
⎪<br />
Se ∆ → 0 si ottiene:<br />
⎡<br />
min ⎢l<br />
, ,<br />
u( t )<br />
⎣<br />
( x u t)<br />
dV<br />
+<br />
dt<br />
( x,<br />
t)<br />
⎤ ⎧⎪<br />
V( x,<br />
t)<br />
⎥ = min l( x, u,<br />
t)<br />
+ ⎡ ⎣ ⎢ ∂ ⎤<br />
⎨<br />
⎦<br />
u( t )<br />
⎩⎪<br />
∂x<br />
T<br />
∂V<br />
⎥ f( x, u,<br />
t)<br />
+<br />
⎦<br />
∂t<br />
( x,<br />
t)<br />
⎫⎪<br />
⎬<br />
⎭⎪ = 0<br />
In questo caso non ci interessa calcolare tutta la funzione u( t ) ma solo il valore dell’ingresso<br />
u all’istante t che minimizza l’espressione tra parentesi graffe.<br />
Il valore ottimale di u si può calcolare o derivando l’espressione tra parentesi graffe, oppure<br />
applicandole il metodo del gradiente, oppure, se u( t)<br />
∈U grigliando U e valutandola<br />
ripetutamente.<br />
Otteniamo:<br />
(5.1)<br />
( x,<br />
t)<br />
( x,<br />
t)<br />
∂V<br />
⎧⎪<br />
− = ( ) + ⎡<br />
( )<br />
⎣ ⎢ ∂V<br />
⎤<br />
min ⎨l<br />
x, u,<br />
t<br />
∂t<br />
⎥<br />
u t<br />
⎩⎪<br />
∂x<br />
⎦<br />
T<br />
( , , t)<br />
f x u<br />
⎫⎪<br />
⎬<br />
⎭⎪<br />
Quella ottenuta è un’equazione alle derivate parziali contenente un operatore di minimo. Per<br />
risolvere un’equazione alle derivate parziali occorre fornire le condizioni a contorno. Una<br />
condizione a contorno si può ricavare dalla definizione di V :<br />
(5.2) V( x , t ) = Φ( x , t )<br />
f f f f<br />
5.1 Equazione di Riccati<br />
Se l’indice di qualità è quadratico:<br />
si ottiene una semplificazione del problema:<br />
t<br />
f<br />
+<br />
J = ∫ x T<br />
Qx u T<br />
Ru d + x F T<br />
τ<br />
f<br />
x<br />
2 2<br />
t 0<br />
&x ( t) = A( t) x( t) + B( t) u( t)<br />
Le matrici Q , R ed F siano simmetriche e ad elementi reali. Inoltre:<br />
T<br />
⎧Q<br />
= Q ≥ 0<br />
⎪ T<br />
⎨R<br />
= R > 0<br />
⎪ T<br />
⎩ F = F ≥ 0<br />
f<br />
44
Applicazione ai sistemi tempo-continui<br />
Un problema di questo tipo è detto problema lineare quadratico (LQ).<br />
Dalle (5.1) e (5.2) otteniamo:<br />
( ) ⎧ T<br />
T<br />
x,<br />
t x Qx u Ru ∂V( x,<br />
t)<br />
− = + + ⎡ T<br />
∂V<br />
⎪<br />
( )<br />
⎣ ⎢ ⎤ ⎫⎪<br />
min⎨<br />
⎥ Ax + Bu ⎬<br />
∂t<br />
u 2 2 ∂x<br />
⎩⎪<br />
⎦ ⎭⎪<br />
( )<br />
V x f<br />
, t f<br />
= x F T<br />
f<br />
x<br />
2 f<br />
Siccome l’integrale nell’indice di qualità contiene funzioni quadratiche, esso dipende da x 0<br />
e<br />
t 0<br />
in modo quadratico. Se la V può essere scritta nel seguente modo:<br />
V<br />
( x t)<br />
, =<br />
T<br />
x P( t)<br />
x<br />
2<br />
T<br />
, P = P ≥ 0 (perché integrale di funzioni positive)<br />
otteniamo:<br />
V<br />
( x t )<br />
f<br />
f<br />
( t )<br />
( x t)<br />
T<br />
∂V<br />
, x Px &<br />
=<br />
∂t<br />
2<br />
∂V( x,<br />
t)<br />
= Px<br />
∂x<br />
T<br />
x<br />
f<br />
P x<br />
, = = , =<br />
T<br />
x<br />
f<br />
F( t<br />
f ) x<br />
f<br />
Φ ( x t )<br />
⇒ P( t<br />
f ) = F( t<br />
f )<br />
f f<br />
f f<br />
2 2<br />
T<br />
x Px &<br />
T<br />
T<br />
⎡x Qx u Ru ⎤<br />
− = ⎢ + + x<br />
T PAx + x<br />
T<br />
min<br />
PBu<br />
2<br />
⎥<br />
u( t)<br />
⎣ 2 2<br />
⎦<br />
Per minimizzare rispetto ad u l’espressione tra parentesi quadre bisogna annullare la sua<br />
derivata rispetto ad u 1 :<br />
Il controllo ottimo è dato da:<br />
Ru<br />
T<br />
+ B Px = 0<br />
−1 T<br />
( t) = − ( t) ( t) ( t) = − ( t) ( t)<br />
$u R B P x K x<br />
Affinché si riesca a controllare il sistema occorre reazionare il suo stato. Quindi:<br />
T<br />
− −<br />
x Px & T<br />
x Qx<br />
+<br />
−<br />
− = + x PBR 1 RR 1<br />
B T<br />
P x + x PA A T<br />
P T<br />
T<br />
T 1 T<br />
x − x PBR B Px =<br />
2 2 2 2<br />
T<br />
− −<br />
x Qx<br />
+<br />
= − x PBR 1 RR 1<br />
B T<br />
P x + x PA A T<br />
P T<br />
T<br />
x<br />
2 2 2<br />
T T T T T<br />
perché x A Px = x ( PA)<br />
x = x PAx .<br />
P deve soddisfare quest’equazione che è un’identità rispetto ad x . Quindi deve essere:<br />
1 Le espressioni devono contenere vettori colonna e quindi bisogna trasporre quando si ottengono dei vettori riga.<br />
45
Ottimizzazione<br />
−1 −1 T T<br />
− &P = Q − PBR RR B P + PA + A P<br />
(sistema di equazioni di Riccati)<br />
Abbiamo ottenuto un sistema di equazioni differenziali del primo ordine. Poiché entrambi i<br />
membri dell’equazione di Riccati sono matrici simmetriche non bisogna risolvere n 2<br />
n( n + 1)<br />
equazioni (se A ∈R n×<br />
n ) ma solo .<br />
2<br />
L’espressione a secondo membro è quadratica in P (è del secondo ordine) e quindi il sistema<br />
di equazioni è non lineare.<br />
Se R = r I ed r → ∞ (cioè se vogliamo che l’ingresso sia vicino allo zero), si ha che R −1 → 0 .<br />
In questo modo, se abbiamo un tempo infinito per il controllo e A( t ) e B( t ) sono costanti,<br />
supponendo che P sia la soluzione a regime, otteniamo:<br />
&P = 0<br />
T<br />
A P + PA = − Q (equazione di Lyapunov)<br />
Se Q = 0 (cioè se ci preoccupiamo solo del controllo) l’equazione di Riccati diventa omogenea<br />
in P . Moltiplicando ambo i membri a sinistra e a destra per P −1 si ottiene:<br />
Infatti, ( )<br />
Se P<br />
−1<br />
& T T<br />
−1 −1 − P PP<br />
−1 = − BR B<br />
−1 −1<br />
+ AP + P A<br />
⇓<br />
&P −1 BR −1 B T<br />
AP −1 P −1<br />
= − + + A T<br />
d<br />
−1 d<br />
−1 −1<br />
P P = I = 0 = P& P + P P& , cioè d dt dt<br />
dt P −1 P − P − PP −<br />
= & 1 1 1<br />
= − & .<br />
= X otteniamo:<br />
−1 T T<br />
&X = − BR B + XA + AX<br />
(sistema di equazioni differenziali lineari del primo ordine)<br />
Se P = p = cost , Q = q , A = a , B = b ed R = r (scalari) l’equazione di Riccati diventa:<br />
2<br />
b<br />
r p 2<br />
+ 2 ap − q = 0<br />
Possiamo ricavare due soluzioni di cui una in generale non ci interessa (fisicamente non è<br />
ammissibile). Le soluzioni ammissibili (con significato fisico) sono quelle per le quali P ≥ 0.<br />
Nel caso generale lo schema che si ottiene è il seguente:<br />
46
Applicazione ai sistemi tempo-continui<br />
−1 T<br />
perché K( t) = R B ( t) P( t)<br />
.<br />
Se R<br />
−1<br />
= I<br />
la stabilità è assicurata: la x non diverge. Infatti, se V( t) T ( t)<br />
& T T T<br />
V & & & T T<br />
= x Px + x Px + x Px = 2x Px& + x Px & =<br />
x, = x P x , allora:<br />
T T T T T T T T T<br />
= 2x PAx − 2x PBB Px − x Qx + x PBB Px − x PAx − x A Px =<br />
T T T T T T T T T<br />
= x PAx − x A Px − x Qx − x PBB Px = −x Qx − x PBB Px ≤<br />
0<br />
5.2 Caso di sistema lineare stazionario ed indice di<br />
qualità quadratico<br />
L’unico caso in cui K( t ) = cost è quello in cui il sistema è lineare e stazionario, Q ed R sono<br />
indipendenti dal tempo e l’orizzonte nel quale si effettua il controllo è infinito ( P & = 0 ). Se<br />
t → ∞ , deve essere x f<br />
→ 0 perché altrimenti per t → ∞ l’indice J divergerebbe.<br />
In questo caso di ottiene l’Algebraic Riccati Equation (ARE):<br />
T<br />
−1 T<br />
A P + PA − PBR B P + Q = 0<br />
Quest’equazione si può risolvere anche in modo iterativo: si parte da P 0<br />
= 0 e ad ogni passo si<br />
calcola:<br />
fermandosi quando P<br />
1<br />
Pk<br />
.<br />
k+ ≅<br />
T<br />
−1<br />
T<br />
A P + P A − P BR B P + Q = 0<br />
k+ 1 k+<br />
1 k<br />
k<br />
5.3 Caso di sistema lineare con indice di qualità<br />
dipendente da (x-x d ) in modo quadratico<br />
Se il sistema è lineare e vogliamo portare la x ad un certo valore x d<br />
possiamo usare il<br />
seguente indice di qualità:<br />
47
Ottimizzazione<br />
T<br />
( ) ( )<br />
t f<br />
T<br />
−<br />
d<br />
−<br />
d<br />
+<br />
J = ∫ x x Q x x u Ru<br />
dτ<br />
2<br />
La procedura da seguire è uguale a quella vista sopra 2 . Si ottiene:<br />
∂V<br />
∂t<br />
t0<br />
T<br />
T<br />
( x,<br />
t) ⎧( x − x ) Q( x − x ) u Ru ∂V( x,<br />
t)<br />
⎪<br />
= min⎨<br />
u<br />
⎩⎪<br />
u dipende da x ed x d<br />
. Possiamo porre:<br />
Si ottiene:<br />
V<br />
d<br />
( x t)<br />
T<br />
d<br />
+ + ⎡ ( Ax Bu)<br />
⎣ ⎢ ⎤ ⎫<br />
⎪<br />
⎥ + ⎬<br />
2 2 ∂x<br />
⎦ ⎭⎪<br />
T<br />
x P( t)<br />
x<br />
T<br />
, = + p ( t) x + c( t)<br />
2<br />
(5.3)<br />
T<br />
T<br />
T<br />
T<br />
∂V( x, t)<br />
x Px &<br />
⎡<br />
T<br />
x Qx<br />
T<br />
x<br />
dQx<br />
d u Ru<br />
= + p& x + c& = min⎢<br />
− x<br />
dQx<br />
+ + +<br />
∂t<br />
2 u<br />
⎣ 2 2 2<br />
+ +<br />
Deriviamo rispetto ad u l’espressione tra parentesi quadre e poniamola a zero:<br />
( )<br />
T<br />
Ru + B p + Px = 0<br />
⇓<br />
−1 $u ( t) R B T<br />
−1<br />
T<br />
= − ( t) p( t) − R B ( t) P( t) x( t)<br />
T T<br />
( p x P)( Ax Bu)<br />
(è la somma di un termine di reazione e di un termine di comando dipendente da p( t ) ).<br />
Imponendo l’uguaglianza (5.3) si ottiene:<br />
perché:<br />
T<br />
x Px & T<br />
x Qx<br />
x PBR −1<br />
B T<br />
P x x PA A T<br />
P T<br />
T<br />
+<br />
= − +<br />
x (termini dipendenti da x 2 )<br />
2 2 2 2<br />
T T T −1 T T<br />
&p x = −x Qx − p BR B Px + p Ax (termini dipendenti da x )<br />
d<br />
T<br />
d<br />
T −1<br />
T<br />
x Qx<br />
d p BR B p<br />
&c = −<br />
2 2<br />
(termini indipendenti da x )<br />
T T T T −1 T T −1 T T T −1 T T −1<br />
T<br />
( p + x P)( Ax + Bu)<br />
= p Ax − p BR B p − p BR B Px + x PAx − x PBR B p − x PBR B Px<br />
e<br />
T T −1 T T −1<br />
T<br />
u Ru p BR B p + x PBR B Px<br />
T<br />
=<br />
+ p BR<br />
2 2<br />
−1<br />
T<br />
B Px<br />
⎤<br />
⎥<br />
⎦<br />
2 T<br />
Si potrebbe complicare il problema aggiungendo un termine x Mu<br />
questo caso la procedura resta uguale a quella vista sopra.<br />
(che dipende da x e da u ). Anche in<br />
48
Applicazione ai sistemi tempo-continui<br />
5.4 Sistemi non lineari<br />
Consideriamo un sistema non lineare descritto dalla seguente equazione:<br />
( )<br />
x& = f x, u,<br />
t<br />
con x( 0)<br />
= x<br />
0<br />
e u ∈U (considereremo solo vincoli sui valori di u ma non sulle funzioni u( t)<br />
né sulle x( t ) ).<br />
L’indice di qualità da massimizzare sia il seguente:<br />
J = ψ[ x( T)<br />
] + ∫ L( x, u,<br />
τ)<br />
dτ<br />
Siccome stiamo considerando un problema di massimo, allora F = − L .<br />
Possiamo modificare l’indice di qualità utilizzando i moltiplicatori di Lagrange:<br />
T T T<br />
T<br />
0<br />
T T T<br />
∫ ( )[ ( )] [ ( )] ∫[ ( ) ( ) ( )] ∫ ( )<br />
J = J − p τ x& − f x, u, τ dτ = ψ x T + L x, u, τ + p τ f x, u, τ dτ − p τ x&<br />
dτ<br />
0<br />
0 0 0<br />
dove L + p T f =<br />
H è l’hamiltoniano associato. Se x& f( x, u,<br />
)<br />
= τ , allora J = J . Si ha che<br />
0<br />
&x = ∂ H . Scegliamo le variabili p in modo tale che sia &p = − ∂ . Per ricondurci alla<br />
∂p<br />
∂H<br />
x<br />
formulazione hamiltoniana abbiamo aggiunto al sistema le variabili p (variabili ausiliarie),<br />
cioè abbiamo raddoppiato la dimensione dello spazio di stato.<br />
La condizione iniziale sulla x è data da x( 0)<br />
= x<br />
0<br />
e quella finale sulla p è data da<br />
p( T)<br />
= ∂ψ . Abbiamo n condizioni iniziali (per n equazioni) ed n condizioni finali (per le<br />
∂x<br />
T<br />
altre n equazioni). Questo può crearci dei problemi di tipo numerico per l’integrazione.<br />
H dipende da x , da p e da u : H = H( x, p, u)<br />
. Se $u ( t ) è ottimale, con qualsiasi scelta di x e<br />
p otteniamo:<br />
H( x, p, u$ ( t)<br />
) ≥ H( x, p,<br />
v( t)<br />
)<br />
dove v( t ) è un qualsiasi altro controllo.<br />
Questa relazione ci suggerisce come scegliere la u fissando x e p (la ricerca può essere fatta<br />
in modo numerico o analitico, se possibile). In questo caso, però, le tecniche di ricerca<br />
utilizzabili sono di tipo locale. La soluzione ottima sarà data da u$ ≡ u$ ( x, p,<br />
t ) (funzione anche<br />
delle variabili ausiliarie).<br />
Potremmo aggiungere all’equazione x& = f( x, u,<br />
t ) l’equazione x& = L( x , u 0<br />
, t)<br />
ottenendo:<br />
In questo caso possiamo scrivere:<br />
J = ψ[ x( T)<br />
] + x ( T)<br />
0<br />
T<br />
H = p 0<br />
L + p f<br />
49
Ottimizzazione<br />
Il problema non è cambiato perché p 0<br />
= cost :<br />
&p<br />
0<br />
∂H<br />
= − = 0<br />
∂x<br />
0<br />
( H dipende da x e non da x 0<br />
).<br />
Alcune volte ci interessa minimizzare la u ma ci interessa che la x finale sia particolare<br />
(dobbiamo specificare anche delle condizioni terminali sulla x ). Abbiamo un sistema di 2n<br />
equazioni in 2n incognite con n condizioni iniziali (sulle x ) ed n condizioni finali (sulle p )<br />
e, per inserire altre condizioni finali sulle x bisogna procedere in questo modo: se la<br />
condizione su x i<br />
( T ) è specificata, la corrispondente condizione su p i<br />
( T ) deve essere<br />
eliminata. In seguito si pone p 0<br />
= 1 e si cerca la soluzione. Se non si riesce ad ottenerla si pone<br />
p 0<br />
= 0 e si ritenta.<br />
5.5 Esempio. Curva più corta che unisce due punti<br />
I due punti siano x( 0)<br />
= 0 ed x( 1)<br />
= 1. Il sistema può essere descritto dall’equazione &x = u .<br />
L’indice da massimizzare è il seguente:<br />
Si ottiene:<br />
1<br />
J = − ∫ 1 2<br />
+ u dt<br />
0<br />
∂H<br />
∂u<br />
2<br />
H = − 1+ u + pu<br />
∂H &p = − = 0<br />
∂x<br />
1 1<br />
= p − 2u<br />
= p −<br />
2 1+<br />
u<br />
u<br />
1+<br />
u<br />
2 2<br />
Si ha che H è costante se u è costante. Quindi &x = c = cost ⇒ x = ct + a . Inserendo le<br />
condizioni iniziali e finali si ottiene c = 1 ed a = 0 .<br />
50
Applicazione ai sistemi tempo-continui<br />
5.6 Esempio. Curva di lunghezza assegnata tale che<br />
l’area sottesa sia massima<br />
Gli estremi della curva siano x( 0)<br />
= 0 e x( T ) = 0 . Il sistema può essere descritto<br />
2<br />
dall’equazione &x = u . L’integrale ∫ 1+ u dt = l<br />
mantenuto costante. L’indice da massimizzare è il seguente:<br />
T<br />
0<br />
J<br />
T<br />
= ∫ xdt<br />
0<br />
(lunghezza della curva) deve essere<br />
Per eliminare il vincolo aumentiamo il numero delle variabili di stato. Definiamo:<br />
con y( 0)<br />
= 0 ed y( T)<br />
Costruiamo l’hamiltoniano:<br />
Otteniamo:<br />
&y<br />
= 1+<br />
= l . Il nostro sistema di equazioni diventa:<br />
d<br />
dt<br />
u<br />
⎛x<br />
u<br />
⎝<br />
⎜ ⎞ y ⎠ ⎟ = ⎛<br />
⎜<br />
⎝ 1 + u<br />
H = x + p x&<br />
+ p y&<br />
= x + p u + p 1+<br />
u<br />
2<br />
2<br />
⎞<br />
⎟<br />
⎠<br />
1 2 1 2<br />
2<br />
∂H<br />
∂u<br />
∂H<br />
&p = − =<br />
∂x<br />
∂H<br />
&p = − =<br />
∂y<br />
1<br />
1<br />
2<br />
0<br />
= 0 = p + p<br />
⇒ p1 = t + c1<br />
⇒ p 2<br />
= cost=c 2<br />
u<br />
u<br />
= t + c + c<br />
1+<br />
u<br />
1+<br />
u<br />
⇓<br />
1 2 2 1 2 2<br />
51
Ottimizzazione<br />
at + b =<br />
u<br />
2<br />
1+ u<br />
, con a = − 1 c<br />
2<br />
e b<br />
c<br />
= − 1 c<br />
2<br />
La x( t ) che si ottiene è un arco di circonferenza con equazione del tipo:<br />
dove ( t x )<br />
c<br />
, sono le coordinate del centro.<br />
c<br />
2 2<br />
( x( t)<br />
− x ) + ( t − t ) = r<br />
L’hamiltoniano non dipende dal tempo ( H=cost=c 3<br />
) perché<br />
c<br />
c<br />
2<br />
dH<br />
dt<br />
∂H<br />
= = 0 . Siccome<br />
∂t<br />
2<br />
H = x + p u + p 1 + u = c possiamo ricavare la u in funzione degli altri parametri.<br />
1 2<br />
3<br />
5.7 Matrice hamiltoniana<br />
Consideriamo ora un sistema lineare stazionario:<br />
con x x( )<br />
0<br />
= t<br />
0<br />
noto.<br />
L’indice di qualità da minimizzare sia del tipo:<br />
&x = Ax + Bu<br />
T T T T<br />
x F( T)<br />
x ⎛ x Qx u Ru⎞<br />
J = + ∫ ⎜ + ⎟dτ<br />
2 ⎝ 2 2 ⎠<br />
0<br />
⇓<br />
T T T T<br />
⎡ x F( T)<br />
x ⎛ x Qx u Ru⎞<br />
⎤<br />
max⎢− − ∫ ⎜ + ⎟dτ⎥<br />
⎣ 2 ⎝ 2 2 ⎠<br />
0<br />
⎦<br />
con Q almeno s.d.p. ed R d.p., cioè invertibile. Otteniamo:<br />
Non abbiamo vincoli sulla u :<br />
T<br />
T<br />
T<br />
T<br />
T<br />
x Qx u Ru<br />
T<br />
T<br />
x Qx u Ru<br />
H = p x&<br />
− − = p Ax + p Bu − −<br />
2 2 2 2<br />
∂H<br />
T<br />
&p = − = − A p + Qx<br />
∂x<br />
∂H<br />
∂u<br />
T<br />
= 0 = B p − Ru<br />
−1 T<br />
⇒ $u ( t) = R B p( t)<br />
Le condizioni finali sulle p sono date da p( T) = − F( T) x( T)<br />
.<br />
Si ottiene il seguente sistema in evoluzione libera (con ingresso nullo):<br />
52
Applicazione ai sistemi tempo-continui<br />
d<br />
dt<br />
⎛x<br />
A BR B<br />
⎜ ⎞ −1<br />
T<br />
⎝p⎠ ⎟ =<br />
⎡<br />
⎢<br />
⎣Q<br />
− A<br />
T<br />
⎤ x<br />
⎥ ⎛ ⎦⎝ ⎜ ⎞ p⎠ ⎟<br />
dove la matrice M A BR −1<br />
B T<br />
⎡<br />
⎤<br />
= ⎢<br />
T ⎥ è la matrice hamiltoniana e la sottomatrice BR −1 B<br />
T è<br />
⎣Q<br />
− A ⎦<br />
una matrice reale simmetrica.<br />
La dinamica del sistema dipende solo dagli autovalori ed autovettori della matrice<br />
hamiltoniana. Una proprietà di questa matrice è che, se essa ha l’autovalore λ , ha anche<br />
l’autovalore − λ . Quindi, il suo polinomio caratteristico è funzione di s 2 : le sue radici sono a<br />
simmetria quadrantale 3 .<br />
L’evoluzione del sistema nelle variabili x e p è data da:<br />
Φ t, t<br />
0<br />
Otteniamo:<br />
⎛x( t)<br />
⎞<br />
⎜ ⎟ = Φ<br />
⎝p<br />
t ⎠<br />
( t,<br />
t<br />
0 )<br />
( )<br />
⎛x<br />
⎜<br />
⎝p<br />
( t<br />
0 )<br />
( t<br />
0)<br />
⎞<br />
⎠<br />
⎟ = ⎡ Φ<br />
⎢<br />
⎣ ⎢Φ<br />
M( t−t<br />
0 )<br />
con ( ) = e e Φ ( t ) Φ ( t t )<br />
ij<br />
, t 0 ij 0<br />
( t, t ) Φ ( t,<br />
t )<br />
( t, t ) Φ ( t,<br />
t )<br />
11 0 12 0<br />
21 0 22 0<br />
⎤⎛x<br />
⎥<br />
⎜<br />
⎦⎥<br />
⎝p<br />
( t<br />
0 )<br />
( t<br />
0)<br />
= − perché il sistema è lineare e stazionario.<br />
(5.4) p( T) = − F( T) x( T) = Φ ( T, t ) x( t ) + Φ ( T,<br />
t ) p( t )<br />
⎞<br />
⎟<br />
⎠<br />
21 0 0 22 0 0<br />
−1<br />
Da quest’equazione possiamo ricavare p( t 0 ), sapendo che Φ22 ( T − t<br />
0) = Φ22 ( t<br />
0<br />
− T)<br />
Inoltre:<br />
( T) = Φ ( T, t ) ( t ) + Φ ( T,<br />
t ) ( t )<br />
x x p<br />
11 0 0 12 0 0<br />
Se moltiplichiamo ambo i membri di quest’equazione per F otteniamo:<br />
( T) = Φ ( T, t ) ( t ) + Φ ( T,<br />
t ) ( t )<br />
Fx F x F p<br />
11 0 0 12 0 0<br />
Se sommiamo quest’equazione alla (5.4) possiamo scrivere x( t 0 ) in funzione di ( )<br />
−1 T<br />
ottenendo che p( t ) è funzione solo di p( t 0 ) ed il controllo $u ( t) = R B p( t)<br />
.<br />
p t 0<br />
,<br />
sarebbe a ciclo<br />
aperto.<br />
Se, invece, p( t) = − P( t) x( t)<br />
, con P( t ) simmetrica e d.p., otteniamo il controllo in<br />
T<br />
controreazione $u ( t) = −R −1 B P( t) x( t)<br />
trovato sopra. In questo caso si ha:<br />
&p = Qx − A T<br />
T<br />
p = Qx + A Px<br />
p& Px & Px& Px & PAx PBu Px &<br />
−1 T<br />
= − − = − − − = − − PAx + PBR B Px<br />
⇓<br />
T<br />
Qx + A Px = −Px & −1<br />
T<br />
− PAx + PBR B Px<br />
Questa relazione vale qualunque sia x . Otteniamo l’equazione di Riccati:<br />
3 Le radici del polinomio caratteristico sono simmetriche non solo rispetto all’asse reale (il polinomio è a<br />
coefficienti reali) ma anche rispetto all’asse immaginario.<br />
53
Ottimizzazione<br />
T<br />
−1<br />
T<br />
− &P = A P + PA + Q − PBR B P<br />
Il problema è sicuramente ben posto se la coppia ( A, B)<br />
è controllabile.<br />
La condizione finale su p( T ) diventa p( T) = − P( T) x( T) = − F( T) x( T)<br />
⇒ P( T) = F( T)<br />
.<br />
Il sistema:<br />
diventa:<br />
−1 T<br />
⎧x&<br />
= Ax + BR B p<br />
⎨<br />
T<br />
⎩p&<br />
= Qx − A p<br />
−1<br />
T<br />
( )<br />
T −1<br />
( )<br />
⎧x&<br />
= A − BR B P x<br />
⎨<br />
⎩p&<br />
= − A + QP p<br />
−1 T<br />
−1 T<br />
La matrice a ciclo chiuso è A<br />
c<br />
= A − BR B P . La matrice K = BR B P deve avere<br />
necessariamente tutti gli autovalori a parte reale negativa.<br />
In questo modo abbiamo disaccoppiato la dinamica delle x da quella delle p . Se l’intervallo di<br />
controllo è infinito ci aspettiamo che sia p → cost (si va a regime). D’altra parte, x → 0 per<br />
t → ∞ perché altrimenti l’indice da minimizzare divergerebbe.<br />
5.8 Proprietà della matrice hamiltoniana<br />
Dimostriamo che la dinamica delle p è uguale ed opposta a quella delle x :<br />
54<br />
−1 T<br />
⎧x&<br />
= Ax + BR B p<br />
⎨<br />
T<br />
⎩p&<br />
= Qx − A p<br />
Calcoliamo gli autovalori della matrice hamiltoniana:<br />
−1 T<br />
−1<br />
T<br />
T<br />
⎡sI − A − BR B ⎤ ⎡0<br />
− I⎤⎡sI − A − BR B ⎤⎡0<br />
− I⎤<br />
⎡ − sI − A − Q ⎤<br />
det⎢<br />
T ⎥ = − det⎢<br />
T<br />
det<br />
T<br />
⎣ − Q sI + A ⎦ ⎣I<br />
⎥⎢<br />
⎥⎢<br />
⎦⎣<br />
− Q sI + A ⎦⎣I<br />
⎥ = − ⎢ −1<br />
⎥ =<br />
0<br />
0 ⎦ ⎣− BR B − sI + A⎦<br />
−1<br />
⎡− sI − A − BR B<br />
= − det⎢<br />
⎣ − Q − sI + A<br />
perchè il determinante di una matrice è uguale a quello della sua trasposta.<br />
Quindi, se il polinomio caratteristico della matrice hamiltoniana ha un autovalore λ essa ha<br />
anche l’autovalore − λ . Siccome il sistema iniziale è stabile per ipotesi (altrimenti si avrebbe<br />
che J → ∞ ) e p ha le stesse dimensioni di x , il sottosistema in x ha gli autovalori a parte<br />
reale negativa, mentre il sottosistema in p ha gli autovalori a parte reale positiva<br />
(l’andamento delle p è instabile).<br />
Possiamo effettuare un’altra dimostrazione. Supponiamo che [ ] u w T sia un autovettore della<br />
matrice hamiltoniana e che λ sia l’autovalore associato:<br />
T<br />
T<br />
⎤<br />
⎥<br />
⎦
Applicazione ai sistemi tempo-continui<br />
−1 T<br />
⎡A BR B ⎤ u u<br />
⎢<br />
⎥ ⎡<br />
⎣Q<br />
− A ⎦⎣ ⎢<br />
⎤<br />
w<br />
⎥ = ⎡<br />
⎦ ⎣ ⎢ ⎤<br />
T<br />
λ<br />
w<br />
⎥<br />
⎦<br />
⇓<br />
−1 T<br />
⎧Au + BR B w = λu<br />
⎨<br />
T<br />
⎩ Qu − A w = λw<br />
Se esiste un autovalore λ con autovettore destro associato [ u w]<br />
T esiste l’autovalore − λ con<br />
T T<br />
autovettore sinistro associato [ w − u ] :<br />
−1<br />
⎡A BR B<br />
T T<br />
T T<br />
[ w − u ] ⎢<br />
T ⎥ = −λ[ w − u ]<br />
⎣Q<br />
− A ⎦<br />
⇓<br />
T T T<br />
⎧ w A − u Q = −λw<br />
⎨ −1<br />
⎩w BR B + u A = λu<br />
T T T T T<br />
Quindi, − λ è un autovalore della matrice hamiltoniana.<br />
Un’ulteriore dimostrazione è la seguente. La matrice A BR −1 B T<br />
⎡<br />
⎤<br />
⎢<br />
T ⎥ può essere trasformata<br />
⎣Q<br />
− A ⎦<br />
per similitudine nel seguente modo:<br />
T<br />
⎤<br />
⎡ I<br />
⎢<br />
⎣P<br />
−1 T<br />
−1 T<br />
−1<br />
T<br />
0⎤⎡A BR B ⎤ I 0 A BR B P BR B<br />
I<br />
⎥⎢<br />
1 1<br />
⎦⎣Q<br />
− A ⎦<br />
⎥ ⎡ ⎤ ⎡ −<br />
T ⎢<br />
⎣ − P I<br />
⎥ = ⎢<br />
−<br />
⎦ ⎣Q + PA + A P − PBR B P − A − BR B P<br />
−<br />
( )<br />
T T T T<br />
⎤<br />
⎥<br />
⎦<br />
⎡ I 0⎤<br />
I 0 1<br />
dove ⎢<br />
⎣−<br />
P I<br />
⎥ = ⎡ −<br />
⎦ ⎣ ⎢<br />
⎤<br />
P I<br />
⎥ . La matrice P è soluzione dell’equazione di Riccati e quindi annulla<br />
⎦<br />
la sottomatrice in basso a sinistra. In questo modo gli autovalori della matrice sono quelli dei<br />
due blocchi sulla diagonale (gli autovalori del blocco in alto a sinistra sono uguali a quelli del<br />
blocco in basso a destra cambiati di segno).<br />
5.9 Luogo simmetrico delle radici<br />
T<br />
Se abbiamo un sistema SISO, u Ru = ru<br />
L’indice di qualità può essere scritto come:<br />
2<br />
(scalare) e Q<br />
= c T c , dove c è un vettore riga.<br />
J =<br />
dove v = cx , v ∈R .<br />
La matrice hamiltoniana diventa la seguente:<br />
∞<br />
∫<br />
0<br />
T T<br />
2<br />
x c cx + Ru 1 dt = ∫ ( v<br />
2<br />
+ ru<br />
2<br />
) dt<br />
2 2<br />
∞<br />
0<br />
55
Ottimizzazione<br />
⎡<br />
⎢ A<br />
⎢ T<br />
⎣c c<br />
bb<br />
r<br />
− A<br />
T<br />
T<br />
⎤<br />
⎥<br />
⎥<br />
⎦<br />
che ha polinomio caratteristico dato da:<br />
Possiamo calcolare:<br />
⎧<br />
⎪⎡( sI<br />
− A)<br />
= det⎨⎢<br />
⎩<br />
⎪⎣<br />
0<br />
T<br />
⎡<br />
det s bb<br />
⎢ I − A −<br />
⎢<br />
r<br />
T<br />
⎣ − c c sI + A<br />
⎧<br />
a ( ) ( ) ( )<br />
c<br />
s a<br />
c<br />
− s ⎪⎡<br />
sI<br />
− A<br />
= det⎨⎢<br />
a ( s) a ( s)<br />
o 0<br />
− ⎣<br />
⎩<br />
⎪ 0<br />
−1<br />
0<br />
T<br />
( sI<br />
+ A )<br />
−1<br />
T<br />
0⎤⎡I<br />
⎥⎢<br />
I⎦⎣0<br />
⎤<br />
⎥ a ( s) a ( s)<br />
c c<br />
⎥ = − = 0<br />
⎦<br />
0<br />
T<br />
( sI<br />
+ A )<br />
−1<br />
T<br />
⎡<br />
⎤<br />
bb ⎤⎫<br />
⎢sI<br />
− A − ⎥⎪<br />
⎥<br />
r ⎬ =<br />
⎦⎢<br />
T<br />
T ⎥<br />
⎣ − c c sI + A ⎦⎭<br />
⎪<br />
T<br />
⎤<br />
⎡ bb ⎤⎫<br />
⎡<br />
−1<br />
s − −<br />
( s )<br />
⎥<br />
⎢ I A ⎥⎪<br />
− −<br />
−1<br />
r ⎬ = det<br />
⎢ I I A bb<br />
T<br />
T<br />
⎦<br />
⎢<br />
⎥ ⎢<br />
r<br />
⎣ − c c sI + A ⎦⎭<br />
⎪<br />
T −1<br />
T<br />
⎣⎢<br />
− ( sI − A ) c c I<br />
T<br />
⎡<br />
⎤<br />
T T<br />
−<br />
= ⎢I − ( sI + A ) c c( sI − A )<br />
bb 1<br />
det<br />
⎥<br />
⎣<br />
r ⎦<br />
T<br />
⎤<br />
⎥<br />
⎥<br />
=<br />
⎦⎥<br />
dove a ( s)<br />
0<br />
è il polinomio caratteristico a ciclo aperto. Si può dimostrare che<br />
det<br />
[ I<br />
n× n<br />
Pn× rQ r× n ] det[ Ir× r<br />
Q<br />
r× nPn×<br />
r ]<br />
+ = + . Otteniamo:<br />
T<br />
−<br />
Definendo G( s) = c ( sI − A)<br />
1 b otteniamo:<br />
T<br />
T<br />
perché ( − s − )<br />
b I A c<br />
a ( ) ( )<br />
c<br />
s a<br />
c<br />
− s ⎡ T T T<br />
−1<br />
⎤<br />
= det − ( s + ) ( s − )<br />
a ( s) a ( − s)<br />
⎣<br />
⎢1 1 b I A c c I A b<br />
r<br />
⎦<br />
⎥<br />
o<br />
0<br />
( ) ( − )<br />
( ) ( − )<br />
−1 −1<br />
[ b ( sI A ) c c( sI A)<br />
b]<br />
a<br />
c<br />
s a<br />
c<br />
s<br />
T T T<br />
= 1− 1 + − =<br />
a s a s r<br />
0 0<br />
T T<br />
−1 T<br />
−1<br />
[ b ( sI A ) c c( sI A)<br />
b] ( ) ( s )<br />
= 1+ 1 − − − = 1+ 1<br />
r<br />
r G s G −<br />
−1<br />
[ ]<br />
è uguale ad c T<br />
−1<br />
( sI − A)<br />
b<br />
pratica è la funzione di trasferimento che lega la v alla u . Annullando<br />
T<br />
sostituendo s con − s. La G( s ) in<br />
a<br />
c( s) a<br />
c( − s)<br />
si ottiene<br />
a ( s) a ( − s)<br />
0 0<br />
il luogo simmetrico delle radici che indica l’andamento dei poli a ciclo chiuso: alcuni poli<br />
descrivono la dinamica delle x e gli altri (che non ci interessano) descrivono la dinamica delle<br />
p . Siccome i poli sono a simmetria quadrantale il baricentro del luogo delle radici sarà sempre<br />
l’origine.<br />
56
Applicazione ai sistemi tempo-continui<br />
5.10<br />
Esempi<br />
5.10<br />
10.1<br />
Filtro di Butterworth 4<br />
Si abbia un sistema con due poli immaginari puri in ± j:<br />
G( s)<br />
=<br />
s<br />
2<br />
1<br />
+ 1<br />
In questo caso G( s) = G( − s)<br />
e otteniamo il seguente luogo delle radici:<br />
1+<br />
1 1 r s 1<br />
( + )<br />
2 2<br />
= 0<br />
2<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
La dinamica instabile (quella relativa ai rami a parte reale positiva) è quella delle p .<br />
5.10<br />
10.2<br />
Sistema a fase non minima<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
s − 2<br />
G( s)<br />
=<br />
( s + )<br />
Otteniamo il seguente luogo simmetrico delle radici:<br />
1 2<br />
1 1 s − 2 s + 2<br />
−<br />
r ( s + 1) ( s − 1)<br />
2 2<br />
= 0<br />
4 I poli dei filtri di Butterworth sono disposti lungo le bisettrici dei quattro quadranti.<br />
57
Ottimizzazione<br />
3<br />
2<br />
asse immaginario<br />
1<br />
0<br />
-1<br />
-2<br />
-3<br />
-4 -3 -2 -1 0 1 2 3 4<br />
asse reale<br />
Se r → 0 un polo del sistema va a − ∞ ed l’altro va a − 2 (immagine speculare dello zero in<br />
2 ). Anche se si spinge il guadagno, lo zero limita le prestazioni del sistema (la banda passante<br />
del sistema è limitata dallo zero).<br />
5.10<br />
10.3<br />
Sistema a fase minima<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
s + 2<br />
G( s)<br />
=<br />
( s + )<br />
Otteniamo lo stesso luogo delle radici relativo all’esempio precedente:<br />
1 2<br />
1 1 s + 2 s − 2<br />
−<br />
r ( s + 1) ( s − 1)<br />
2 2<br />
= 0<br />
Se r → 0 il polo va verso zero in − 2 .<br />
5.10<br />
10.4<br />
Si abbia il seguente sistema:<br />
58<br />
&x = ⎡ 0 1<br />
x<br />
⎣ ⎢ ⎤<br />
⎥ + ⎡ 0<br />
⎦ ⎣ ⎢ ⎤ 0 0 1⎦ ⎥u<br />
y =<br />
[ − ]<br />
1 1 x<br />
con x = [ x x ]<br />
T<br />
1 2<br />
. L’indice da minimizzare sia quindi il seguente:<br />
Otteniamo:<br />
2<br />
2<br />
[( ) ]<br />
∞<br />
∫ 1 2<br />
0<br />
J = x − x + ru dt
Applicazione ai sistemi tempo-continui<br />
( ) = ( s − ) = [ − ] ⎢ ⎥ ⎢ ⎤ [ ] [ ]<br />
⎦ ⎥ = − ⎢ ⎥ ⎡ ⎣ ⎢ ⎤ −<br />
c I A b 1 1<br />
⎦ ⎥ = −<br />
G s<br />
−<br />
⎡s<br />
− 1⎤<br />
1<br />
⎡0<br />
1<br />
⎣0<br />
s ⎦ ⎣1<br />
Otteniamo il seguente luogo simmetrico delle radici:<br />
( )( )<br />
1 1 1 − s 1 + s<br />
1 1 s −<br />
+<br />
1 s + 1<br />
2 2 = −<br />
4<br />
= 0<br />
r s s r s<br />
⎡s<br />
⎤<br />
⎡ s<br />
1 1 1 1 0<br />
s ⎣ s⎦<br />
s<br />
⎢ ⎤ ⎣s⎦ ⎥ =<br />
−<br />
2<br />
1 1 1 1 1<br />
2 2<br />
0 1<br />
s<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
Calcoliamo le coordinate dei due punti doppi:<br />
4 1 1<br />
s = s 1<br />
+ − s + 1<br />
⇒ s 2 = 2 ⇒ s = ± 2<br />
Se r viene spinto all’infinito otteniamo un doppio integratore.<br />
5.10<br />
10.5<br />
Sistema instabile a ciclo aperto<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
G( s)<br />
=<br />
1<br />
s( s − 2)<br />
Il luogo simmetrico delle radici è il seguente:<br />
1+<br />
1 1 2<br />
r s ( s − 2)( s + 2)<br />
= 0<br />
59
Ottimizzazione<br />
3<br />
2<br />
asse immaginario<br />
1<br />
0<br />
-1<br />
-2<br />
-3<br />
-4 -3 -2 -1 0 1 2 3 4<br />
asse reale<br />
Al limite si ottiene un filtro di Butterworth.<br />
5.10<br />
10.6<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
s + 1<br />
G( s)<br />
= −<br />
s( s − 1)<br />
Si ottiene il seguente luogo simmetrico delle radici:<br />
1 1 1 s + 1 s − 1<br />
−<br />
2<br />
0<br />
r s s − 1 s + 1<br />
=<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
I due poli e zeri in ± 2 si cancellano. Ci interessa solo il ramo del luogo delle radici che giace<br />
sul semiasse reale negativo (l’altro ramo è relativo alla dinamica delle p ).<br />
Otteniamo un controllo a banda larghissima (dipende da r ).<br />
60
Applicazione ai sistemi tempo-continui<br />
5.10<br />
10.7<br />
Approssimazione di un ritardo<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
s − 1<br />
G( s)<br />
= −<br />
s( s + 1)<br />
Otteniamo lo stesso luogo delle radici relativo all’esempio precedente:<br />
5.10<br />
10.8<br />
1 1 1 s + 1 s − 1<br />
−<br />
2<br />
0<br />
r s s − 1 s + 1<br />
=<br />
Si abbia un sistema con un polo nell’origine, due poli immaginari puri in ± j ed un polo in<br />
− 1:<br />
G( s)<br />
=<br />
s + 1<br />
2<br />
( + 1)<br />
s s<br />
Si ottiene il seguente luogo simmetrico delle radici:<br />
1 1 ( s + 1 )( s − 1 )<br />
+<br />
2 2 2<br />
r s s + 1<br />
( )<br />
= 0<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
5.11<br />
Metodo di Potter per ricavare la soluzione<br />
dell’equazione di Riccati<br />
Possiamo effettuare una decomposizione spettrale della matrice hamiltoniana separando gli<br />
autovalori a parte reale negativa da quelli a parte reale positiva:<br />
61
Ottimizzazione<br />
⎡X<br />
⎢<br />
⎣X<br />
−<br />
Y<br />
Y<br />
−<br />
+ +<br />
−1 T<br />
⎤⎡A BR B ⎤ ⎡S<br />
0 ⎤ X<br />
⎥⎢<br />
⎥ = ⎢<br />
⎦⎣Q<br />
− A ⎦ ⎣ − S<br />
⎥ ⎡ T<br />
0 ⎦⎣ ⎢ X<br />
⇓<br />
X A + Y Q = −SX<br />
+ + +<br />
−1 T T<br />
−<br />
+<br />
= −<br />
+<br />
X BR B Y A SY<br />
+<br />
⇓<br />
−<br />
Y 1 −<br />
X BR 1 T T −<br />
B − A = −Y 1 SY<br />
+<br />
+<br />
(5.5) − 1 T −1<br />
( )<br />
−<br />
Y<br />
Y<br />
−<br />
+ +<br />
T<br />
A − BR B Y X = Y SY<br />
+<br />
+ +<br />
T<br />
−T<br />
+ + +<br />
−<br />
dove A = ( A<br />
−<br />
)<br />
−1<br />
T<br />
autovalori a parte reale negativa. La matrice ( Y+<br />
X<br />
+ )<br />
−1 T<br />
−1<br />
in modo tale che A − BR B P avesse autovalori a parte reale negativa. Ma se ( Y+<br />
X )<br />
siccome P = P<br />
−1 T<br />
−1<br />
, allora ( Y+<br />
X<br />
+ ) = Y+<br />
X<br />
+<br />
.<br />
−1 Moltiplicando ambo i membri della (5.5) a sinistra per ( Y X<br />
T<br />
)<br />
−1<br />
= Y X<br />
T T 1<br />
. La matrice a primo membro è simile alla matrice S che contiene tutti gli<br />
dalla (5.5) otteniamo l’equazione di Riccati:<br />
−<br />
( + )<br />
⎤<br />
⎥<br />
⎦<br />
è uguale a P poiché avevamo scelto P<br />
+<br />
+ +<br />
−1 −1 −1 T 1<br />
T −T T −T<br />
Y X A − Y X BR B Y X = X Y Y SY =<br />
+<br />
+ +<br />
+<br />
+ + +<br />
+ +<br />
T −T T T −T T −T T T −T<br />
= X SY = −A X Y − QY Y = −A X Y − Q<br />
+ +<br />
+ +<br />
⇓<br />
−1<br />
T T<br />
− PBR B P + A P = −PA − Q (equazione di Riccati)<br />
perché S = S<br />
T e Q = Q<br />
T .<br />
Per risolvere il sistema di equazioni differenziali di Riccati basta calcolare X +<br />
ed Y +<br />
.<br />
T<br />
+ +<br />
+ +<br />
+<br />
T<br />
+<br />
=<br />
P ,<br />
e ricavando SX +<br />
5.12<br />
Scelta di R e Q<br />
Si abbia il seguente indice di qualità da minimizzare:<br />
T<br />
( u T<br />
Ru )<br />
J = ∫ x Qx +<br />
Possiamo scegliere R e Q diagonali. In genere all’inizio si pone Q = R = I e poi, se qualcosa<br />
nel controllo non va bene, ad esempio se un ingresso è troppo grande, vengono “aggiustate” le<br />
componenti di R .<br />
Nell’integrale otteniamo la seguente somma:<br />
2<br />
2 2 2<br />
q x + q x + K+ q x + r u + r u + K+<br />
r u<br />
11 1<br />
22 2<br />
dt<br />
2 2<br />
nn n 11 1 22 2 nn n<br />
Le varie variabili hanno in genere dimensioni diverse. Conviene dividere q ii<br />
per x iNOM<br />
ed r ii<br />
per u iNOM<br />
. In questo modo le variabili perdono le loro dimensioni.<br />
62
Applicazione ai sistemi tempo-continui<br />
5.13<br />
Controllo switching<br />
Si abbia il seguente sistema SISO:<br />
&x = Ax + bu<br />
con x( 0)<br />
x0<br />
A, b sia controllabile.<br />
Il nostro obiettivo è quello di passare da x 0<br />
ad x f<br />
(stato finale) nel minore tempo possibile.<br />
Per far questo possiamo introdurre un’ulteriore variabile x n+1<br />
tale che &x n+ 1<br />
= 1, con<br />
x n+<br />
( 0)<br />
= 0 . Occorre quindi minimizzare x ( t n+1 f ) . Otteniamo:<br />
1<br />
= . Il segnale di controllo abbia il vincolo u < 1 e la coppia ( )<br />
T<br />
( ) & ( )<br />
T<br />
H = p Ax + bu + p<br />
n<br />
x<br />
n<br />
= p Ax + bu + p n<br />
&p = − ∂H<br />
∂x<br />
= −A T<br />
p<br />
∂H<br />
&p<br />
n+<br />
1<br />
= − = 0<br />
∂x<br />
+ 1 + 1 + 1<br />
Dobbiamo risolvere un sistema di 2n + 2 equazioni (abbiamo n variabili in x , n variabili in<br />
p e inoltre x n+1<br />
e p n+1<br />
).<br />
Le condizioni iniziali e finali sulle x sono specificate quindi non bisogna porre delle<br />
condizioni sulle p .<br />
La u si ricava massimizzando l’hamiltoniano:<br />
T<br />
perchè p Ax<br />
max<br />
u<br />
non dipende da u e p n+<br />
=<br />
1<br />
cost .<br />
n+<br />
1<br />
T T<br />
T<br />
( p Ax + p bu + p ) = max( p bu)<br />
Se non abbiamo vincoli sulla u possiamo portarla all’infinito per massimizzare l’espressione di<br />
sopra. Ma deve essere u < 1, quindi:<br />
u<br />
ottima<br />
n+1<br />
T<br />
( t) = sgn[ p b]<br />
(p T b è uno scalare).<br />
Il controllo deve sempre essere mantenuto al massimo (in valore assoluto). Questo tipo di<br />
controllo viene detto controllo switching. Per un sistema del secondo ordine abbiamo il<br />
seguente andamento della u( t ) :<br />
u<br />
63
Ottimizzazione<br />
Se la matrice A è ad autovalori reali si dimostra che il numero di commutazioni nel periodo è<br />
pari all’ordine del sistema meno 1.<br />
Ad esempio, consideriamo un sistema che è un doppio integratore con controllo ± u : J&&θ = u .<br />
t 2<br />
0<br />
Scaliamo le variabili in modo che sia && θ = ±1. Otteniamo θ & = t e θ = + θ<br />
2<br />
θ & 2<br />
θ = + θ (otteniamo delle parabole):<br />
2<br />
0<br />
⇒<br />
Se && θ = −1 le parabole sono rivolte al contrario:<br />
Otteniamo una serie di commutazioni:<br />
Il tempo di percorrenza è dato da<br />
T<br />
∫<br />
dt =<br />
θf<br />
∫<br />
0 θ0<br />
dθ<br />
θ&<br />
perché & θ<br />
θ<br />
= d dt<br />
e dt<br />
d<br />
= θ θ & .<br />
64
Applicazione ai sistemi tempo-continui<br />
Nel caso di una sola commutazione il valor medio di & θ è maggiore e quindi è minore il valor<br />
medio di 1 & θ<br />
:<br />
Quindi, il tempo di percorrenza è minore con numero minore di commutazioni.<br />
Per realizzare un controllo di questo tipo occorre possedere un meccanismo di commutazione<br />
molto accurato. Per ovviare a questo problema si può effettuare un controllo in<br />
controreazione: leggendo i valori di θ e & θ si può sapere se si è sui due rami di parabola della<br />
figura seguente e commutare:<br />
La curva di sopra divide il piano θ − θ & in due regioni. Se si commuta dopo aver superato la<br />
curva si può recuperare l’errore:<br />
65
Ottimizzazione<br />
L’unico problema è conoscere la curva di commutazione (in genere nello spazio si ha<br />
un’ipersuperficie di commutazione).<br />
Possiamo sostituire la curva di commutazione con una retta, ma non avremo un sistema che<br />
funziona in modo ottimale:<br />
Ci si può fermare quando si ha un errore minore di un certo valore prefissato.<br />
Se un sistema ha due poli reali distinti si ha un comportamento del seguente tipo:<br />
Se il sistema risponde velocemente alla commutazione si ha il chattering: non appena la retta<br />
viene oltrepassata si ha una commutazione (praticamente il sistema si “inchioda” sulla retta).<br />
Quando il sistema si “inchioda” sulla retta la sua evoluzione è data da θ & + cθ<br />
= 0 , cioè<br />
66
Applicazione ai sistemi tempo-continui<br />
θ = e −ct<br />
ma il valore di c può essere scelto dal progettista. Quindi, il sistema si comporta come<br />
se fosse del primo ordine e come se i suoi parametri fossero quelli imposti.<br />
La linea di commutazione può anche non essere una retta:<br />
In questo modo non viene mai superato il valore massimo della velocità & θ . Quindi, in questo<br />
modo possono essere anche risolti i problemi di robustezza.<br />
La tecnica di controllo illustrata in questo capitolo è detta a struttura variabile (Variable<br />
Structure Systems o VS Control).<br />
5.14<br />
Gramiano di controllabilità<br />
Si abbia il seguente sistema:<br />
&x = Ax + Bu<br />
con x( ) = x e x( T)<br />
= x . L’indice di qualità sia tale da minimizzare la spesa per il controllo:<br />
0<br />
0<br />
f<br />
J<br />
T<br />
1<br />
T<br />
= ∫ u Rudτ<br />
2 0<br />
Otteniamo:<br />
T T<br />
1<br />
T<br />
H = p Ax + p Bu − u Ru<br />
2<br />
&p = −A T p<br />
−1 T<br />
$u ( t) = R B p( t)<br />
La soluzione di &p = −A T p è p( t)<br />
T t<br />
A<br />
= e<br />
− p<br />
0<br />
ma non conosciamo p = p ( ) . Otteniamo:<br />
0<br />
0<br />
−1<br />
− A<br />
$u = R B T T<br />
e p<br />
0<br />
p 0<br />
è un vettore di parametri che bisogna imporre in modo tale che il sistema all’istante t f<br />
vada nello stato x f<br />
:<br />
T<br />
T<br />
A A A<br />
0 ∫<br />
0<br />
A<br />
∫<br />
A T<br />
0<br />
0<br />
t<br />
( t ) ( )<br />
( ) = + ( ) = +<br />
−τ t t−τ −1<br />
T − τ<br />
x t e x e Bu τ dτ e x e BR B e p dτ<br />
0<br />
67
Ottimizzazione<br />
( )<br />
AT<br />
AT<br />
−Aτ<br />
−1<br />
T −A<br />
τ<br />
x = x T = e x + e e BR B e dτ<br />
⋅p<br />
f<br />
0<br />
T<br />
∫<br />
0<br />
−<br />
e A T<br />
− − T − − T T −<br />
− = e A τ 1<br />
e A τ<br />
d ⋅ = e A τ<br />
x x BR B p BMM B e A τ<br />
τ<br />
dτ<br />
⋅p<br />
f<br />
0<br />
T<br />
∫<br />
0<br />
0 0<br />
T<br />
−1 dove R = MM<br />
T ( R è una matrice simmetrica d.p.). La matrice sotto il segno di integrale è<br />
almeno s.d.p. se la coppia ( A, B)<br />
è completamente controllabile: integrando otteniamo una<br />
matrice sicuramente d.p..<br />
La matrice G ( )<br />
c<br />
t<br />
∫<br />
0<br />
T<br />
−Aτ<br />
T T −A<br />
τ<br />
t = e BMM B e dτ<br />
è il gramiano di controllabilità. Si ottiene:<br />
AT<br />
1<br />
( T)[ e ] ( )<br />
1<br />
p = G x − x = G<br />
0<br />
− − −<br />
c<br />
f 0 c<br />
T<br />
−1 T −A<br />
t −1<br />
( t) = e ( T)<br />
$u R B G<br />
In questo modo possiamo ricavare p 0<br />
e quindi $u .<br />
Se x f<br />
= 0 otteniamo:<br />
Il J ottimale è dato da:<br />
T<br />
T A t<br />
( t) = − − e − ( T)<br />
$u R B G x<br />
c<br />
T<br />
∫<br />
ξ<br />
1<br />
c 0<br />
T<br />
T<br />
1<br />
T<br />
⎡<br />
T ⎤<br />
T −1 −At −1 −1 T −A t −1<br />
1<br />
T −1 −At −1<br />
T −A<br />
t −1<br />
J = ξ ∫ G<br />
c<br />
( T) e BR RR B e G<br />
c<br />
( T) dt ⋅ ξ = ξ G<br />
c<br />
( T) ⎢∫<br />
e BR B e dt⎥ G<br />
c<br />
( T)<br />
ξ =<br />
2<br />
2<br />
0<br />
⎣ 0<br />
⎦<br />
1<br />
T −1 −1 1<br />
T −1<br />
= ξ G<br />
c<br />
( T) G<br />
c( T) G<br />
c<br />
( T) ξ = ξ G<br />
c<br />
( T)<br />
ξ<br />
2<br />
2<br />
T<br />
T ξ<br />
0<br />
T<br />
0<br />
1<br />
T −<br />
Se x f<br />
= 0, otteniamo J = x G ( T)<br />
x . Se gli autovalori di ( )<br />
1<br />
c<br />
2 0<br />
0<br />
G c<br />
T sono grandi la spesa per il<br />
controllo sarà piccola.<br />
−1<br />
G ( ) P( )<br />
c<br />
t = t è la soluzione dell’equazione di Riccati. Infatti, se Q = 0 , l’equazione di Riccati è<br />
data da:<br />
T<br />
−1<br />
T<br />
− &P = A P + PA − PRR B P<br />
⇓<br />
−1 −1 −1 −1 −1<br />
− P PP = P A + AP − RR B<br />
⇓<br />
−1<br />
d( P )<br />
−1 T −1 −1<br />
T<br />
= P A + AP − BR B<br />
dt<br />
⇓<br />
T<br />
−1<br />
T<br />
&X = XA + AX − BR B<br />
& T T<br />
che ha soluzione data da X = G ( t ) ⇒ P(<br />
t)<br />
G −1<br />
( t)<br />
c<br />
= .<br />
c<br />
68
Applicazione ai sistemi tempo-continui<br />
Supponendo che sia x f<br />
= 0, possiamo ricavare il controllo in controreazione (all’istante t = 0 )<br />
che porta il sistema a 0 in un tempo T :<br />
−1 T −1<br />
T<br />
u( 0) = − R B G ( T) x( 0) = −k ( 0) x( 0)<br />
c<br />
Si potrebbe utilizzare sempre k( 0 ) ottenendo il controllo u( t) = −k T ( 0 ) x( t)<br />
. La soluzione<br />
ottenuta in questo modo, che non è ottima, è detta legge di controllo ad orizzonte sfuggente o<br />
recessivo (receding horizon) perché si utilizza sempre la matrice k( 0 ) che porta a 0 il sistema<br />
(all’istante t = 0 ): è come se si traslasse l’orizzonte di controllo. In questo modo non c’è più la<br />
garanzia che dopo un certo tempo si raggiunge la posizione desiderata. La matrice k( 0 ) ,<br />
inoltre, potrebbe anche destabilizzare il sistema.<br />
−1 T −1<br />
La matrice a ciclo chiuso A A BR B G ( )<br />
c<br />
= −<br />
c<br />
T ha gli autovalori a parte reale negativa. Per<br />
dimostrare questo basta dimostrare che l’equazione di Lyapunov è soddisfatta, tenendo conto<br />
−1<br />
del fatto che G ( ) P( )<br />
c<br />
t = t :<br />
T<br />
A P + PA = −Q<br />
c<br />
⇓<br />
T −1 T −1 T T −1<br />
T<br />
A P − PBR B P + PA − PBR B P = A P + PA − 2PBR B P =<br />
T<br />
~ −1<br />
T<br />
= A P + PA − PBR B P = −Q<br />
dove R<br />
~ = 2 R .<br />
Variando il valore di T cambia il gramiano e, se T aumenta, aumenta (in norma) anche il<br />
gramiano (è un integrale di matrici d.p.). Se la norma di G c<br />
( T ) cresce al crescere di T , quella<br />
−1<br />
di G c<br />
( T)<br />
(e quindi quella di u ) decresce al crescere di T .<br />
Se una componente di u è troppo elevata per il controllo possiamo modificare la matrice R<br />
“giostrando” lo sforzo sui vari canali oppure possiamo aumentare il tempo T .<br />
c<br />
69
Applicazione ai sistemi tempo-discreti<br />
6. APPLICAZIONE AI SISTEMI TEMPO-<br />
DISCRETI<br />
6.1 Equazione di Riccati<br />
Consideriamo un sistema lineare tempo-discreto:<br />
x<br />
+ 1<br />
= Ax + Bu<br />
k k k<br />
con x( ) = x e cerchiamo una legge di controllo che minimizzi il seguente indice di qualità:<br />
0<br />
0<br />
N−1<br />
1<br />
T<br />
1<br />
J = x<br />
NFx N<br />
+ x Qx + u Ru<br />
2 2 0<br />
T<br />
T<br />
∑ ( i i i i )<br />
con F , Q ed R simmetriche almeno s.d.p. ( R sia d.p.). Supponiamo che la coppia ( A B)<br />
completamente controllabile.<br />
Applichiamo i moltiplicatori di Lagrange all’indice di sopra:<br />
i=<br />
N−1<br />
∑[ i<br />
( )]<br />
T<br />
T<br />
i i i<br />
2<br />
i+ 1 i i i+<br />
1<br />
1<br />
T<br />
1<br />
J = x<br />
NFx N<br />
+ x Qx + u Ru + p Ax + Bu − x<br />
2 2<br />
i=<br />
0<br />
, sia<br />
Se siamo in corrispondenza della posizione ottimale, J è minimo e, se imponiamo una<br />
variazione di alcune variabili, deve essere dJ = 0:<br />
N−1<br />
T<br />
T<br />
T<br />
T<br />
T<br />
( N N ) N ∑( i i+<br />
1) i ∑( i<br />
i+<br />
1)<br />
i ∑<br />
T<br />
dJ = Fx − p dx + Ru + B p du + Qx + A p dx + p dx<br />
=<br />
i=<br />
0<br />
N−1<br />
T<br />
T<br />
T<br />
T<br />
( N N ) N ∑ ( i i+<br />
1) i ∑ ( i<br />
i+<br />
1 i )<br />
= Fx − p dx + Ru + B p du + Qx + A p − p dx<br />
= 0<br />
i=<br />
0<br />
N−2<br />
N−1<br />
N−1<br />
N−1<br />
∑ i+ 1 i+<br />
1 ∑ j j ∑ i i ∑<br />
i=<br />
0<br />
j=<br />
1<br />
i=<br />
1<br />
i=<br />
0<br />
T<br />
T<br />
T<br />
T<br />
perché p dx = p dx = p dx = p dx<br />
i<br />
N−1<br />
i=<br />
0<br />
i<br />
N−1<br />
scegliere le u i<br />
e le p i<br />
opportunamente in modo che sia dJ ≡ 0.<br />
Annulliamo tutti i termini:<br />
p<br />
N<br />
= Fx<br />
N<br />
T<br />
i=<br />
0<br />
$u<br />
i<br />
= −R − 1<br />
B p<br />
i+<br />
1<br />
T<br />
p<br />
i<br />
= Qx<br />
i<br />
+ A pi+1<br />
N−2<br />
i=<br />
0<br />
T<br />
i<br />
i+ 1 i+<br />
1<br />
( dx 0<br />
= 0: x 0<br />
è fissato). Possiamo<br />
71
Ottimizzazione<br />
Quindi:<br />
72<br />
−1<br />
T<br />
x = Ax − BR B p<br />
i+<br />
1<br />
i<br />
Per poter trovare la soluzione ottima abbiamo dovuto aggiungere altre variabili p .<br />
Abbiamo il problema di dover integrare parte delle equazioni in avanti e parte all’indietro. Ma<br />
A è in genere invertibile perché spesso i sistemi tempo-discreti sono ottenuti da<br />
H<br />
discretizzazioni di sistemi tempo-continui ( A = e T , dove H è la matrice dinamica del<br />
sistema tempo-continuo). Quindi:<br />
i+<br />
1<br />
−T<br />
−T<br />
p = − A Qx + A p<br />
i+<br />
1<br />
T<br />
T<br />
T T<br />
( ) ( )<br />
−1 T − − −1 − −1<br />
T −T<br />
x = Ax − BR B − A Qx + A p = A + BR B A Q x − BR B A p<br />
i+<br />
1<br />
i<br />
i<br />
Se conosciamo p 0<br />
quest’equazione può essere integrata in avanti. Otteniamo:<br />
⎛x<br />
⎜<br />
⎝p<br />
k<br />
k<br />
⎞<br />
⎟ = ⎡ ⎠ ⎣ ⎢<br />
Φ<br />
Φ<br />
i<br />
i<br />
( k, h) Φ ( k,<br />
h)<br />
( k, h) Φ ( k,<br />
h)<br />
11 12<br />
21 22<br />
i<br />
⎤ x<br />
h<br />
⎥ ⎛ ⎦⎝ ⎜ ⎞<br />
⎟<br />
p<br />
h⎠<br />
La trattazione è del tutto generale (è valida anche per sistemi tempovarianti), per questo le<br />
Φ ij<br />
( k, h)<br />
sono funzioni di due istanti di tempo.<br />
La matrice dinamica è la seguente:<br />
Otteniamo:<br />
1 1<br />
⎡A + BR B A Q − BR B A<br />
⎢<br />
T<br />
−T<br />
⎣ − A Q<br />
A<br />
− T −T − T −T<br />
( N, i) Φ ( N,<br />
i)<br />
Φ ( N, i) Φ ( N,<br />
i)<br />
⎤<br />
⎥ ∈R<br />
⎦<br />
p = Φ x + p = Fx<br />
N 21 i 22 i N<br />
x = x + p<br />
N 11 i 12 i<br />
2n×<br />
2n<br />
⇓<br />
FΦ N, i − Φ N, i x = Φ N, i − FΦ<br />
N,<br />
i p<br />
[ 11( )<br />
21( )] i 22<br />
( )<br />
12<br />
( )<br />
⇓<br />
[ ]<br />
−1<br />
[ Φ22 ( N, i) Φ12<br />
( N, i)<br />
] Φ11( N, i) Φ21( N,<br />
i)<br />
[ ]<br />
p = − F ⋅ F − x<br />
i<br />
Le p i<br />
possono scriversi in funzione delle x i<br />
tramite una matrice di dimensione n × n (in<br />
generale dipendente dal tempo). Nel caso dei sistemi tempo-continui era p( t) = P( t) x( t)<br />
con<br />
P( t ) soluzione dell’equazione di Riccati. Nel caso dei sistemi tempo-discreti possiamo quindi<br />
scrivere:<br />
p<br />
= P x con P F<br />
i i i<br />
Le matrici P i<br />
vengono chiamate matrici o trasformazioni di Riccati. P i<br />
in genere è<br />
tempovariante e può essere calcolata in modo esplicito perché le matrici ( k h)<br />
conosciute.<br />
N =<br />
i<br />
i<br />
i<br />
Φ ij<br />
i<br />
, sono
Applicazione ai sistemi tempo-discreti<br />
Otteniamo:<br />
T<br />
p<br />
i<br />
= Qx<br />
i<br />
+ A p ⇒ P x Qx A T<br />
P x<br />
i+1 i i<br />
=<br />
i<br />
+<br />
i+ 1 i+<br />
1<br />
−1<br />
T<br />
−1<br />
T<br />
x = Ax − BR B p ⇒ x = Ax − BR B P x<br />
i+<br />
1<br />
i<br />
i+<br />
1<br />
i+<br />
1<br />
( + − 1 T<br />
+ 1)<br />
+ 1<br />
=<br />
T<br />
−1<br />
T<br />
i 1( i 1)<br />
I BR B P x Ax<br />
i i i<br />
P x = Qx + A P I + BR B P Ax<br />
i i i<br />
+<br />
⇓<br />
+<br />
−1<br />
−1<br />
T<br />
( i 1)<br />
T<br />
P = Q + A P I + BR B P A<br />
i<br />
i+<br />
1<br />
Se è nota P i+1<br />
si calcola P i<br />
partendo dalla condizione P<br />
n × n .<br />
Si può dimostrare che:<br />
N =<br />
+<br />
i<br />
i<br />
−1<br />
vera ∀x i<br />
T<br />
−1<br />
T<br />
[ i+ 1 i+ 1 ( i+<br />
1 ) i+<br />
1]<br />
T<br />
P = Q + A P − P B R + B P B B P A<br />
i<br />
(equazione di Riccati per i sistemi tempo-discreti). Infatti:<br />
−1<br />
T<br />
−1<br />
T<br />
T<br />
( + ) = − ( + )<br />
i+ 1 i+<br />
1<br />
F . P i<br />
è una matrice di dimensione<br />
−1<br />
T<br />
[ i+ 1 i+ 1 i+<br />
1<br />
i+<br />
1]<br />
T<br />
A P I BR B P A A P P B R B P B B P A<br />
i+<br />
1<br />
i+<br />
1<br />
−1<br />
T<br />
−1<br />
T<br />
−1<br />
T<br />
Pi+<br />
1( I + BR B Pi+<br />
1) = Pi + 1<br />
− Pi+ 1B( R + B Pi+<br />
1B)<br />
B Pi+<br />
1<br />
( I + BR 1 T<br />
−1<br />
T<br />
−1<br />
T<br />
B Pi<br />
+ 1) = I − B( R + B Pi+<br />
1B)<br />
B Pi<br />
+ 1<br />
( + 1 T<br />
−1<br />
T<br />
−1<br />
−1<br />
T<br />
T<br />
−<br />
i+<br />
1)( +<br />
i+<br />
1) = ( +<br />
i+ 1) − ( +<br />
i+<br />
1 )<br />
= −<br />
T<br />
−1<br />
T<br />
−1<br />
T<br />
−1<br />
T<br />
T<br />
( +<br />
i+<br />
1 ) i+<br />
1<br />
+<br />
i+<br />
1<br />
−<br />
i+ 1 ( +<br />
i+<br />
1 )<br />
(<br />
T<br />
−1<br />
T<br />
−1<br />
T<br />
−1<br />
T<br />
T<br />
−1<br />
i+<br />
1 ) i+<br />
1<br />
i+<br />
1<br />
i+ 1 ( i+<br />
1 )<br />
T<br />
T<br />
−1<br />
−1 −1<br />
T<br />
T<br />
−1<br />
− ( R + B Pi<br />
1B) + R − R B Pi<br />
1B( R + B Pi<br />
1B)<br />
= 0<br />
⇓<br />
1<br />
T<br />
[ i+<br />
1]<br />
I BR B P I BR B P I BR B P I B R B P B B P<br />
T<br />
I I B R B P B B P BR B P BR B P B R B P B B P<br />
− B R + B P B B P + BR B P − BR B P B R + B P B B P<br />
i +<br />
=<br />
+<br />
+ +<br />
−1<br />
T<br />
i+<br />
1<br />
0<br />
−1<br />
T<br />
− I + I + R B P B − R B P B =<br />
i+<br />
1<br />
T<br />
m×<br />
n<br />
In questo modo viene richiesta l’inversione della matrice R + B Pi+<br />
1<br />
B ∈R , dove m è il<br />
numero degli ingressi ed n è il numero delle variabili di stato. Di norma è m < n . Se m = 1<br />
abbiamo solo uno scalare da invertire.<br />
P risulta d.p. perché è somma di matrici simmetriche reali almeno s.d.p. (perché P = N<br />
F è<br />
reale simmetrica almeno s.d.p.) 1 .<br />
Se R = r I e r → ∞ significa che non si vuol spendere nulla per il controllo ( u ≡ 0 ). La<br />
soluzione che si ottiene è quella di lasciare il sistema in evoluzione libera:<br />
T<br />
Pi<br />
= Q + A Pi+1A<br />
−1<br />
i+<br />
1<br />
1<br />
0<br />
1 Per questioni di tipo numerico può darsi che durante i vari passi la matrice P i<br />
non risulti sempre d.p.. Esistono<br />
dei metodi che tendono a minimizzare questo inconveniente. Ad esempio, la matrice P i<br />
può essere scritta come<br />
T<br />
P = M M . Ad ogni passo deve essere calcolata la matrice M i<br />
invece della matrice P i<br />
.<br />
i i i<br />
73
Ottimizzazione<br />
+<br />
i<br />
→ 0. Portiamo il numero di passi all’infinito. Se il sistema è stabile gli<br />
autovalori di A sono in modulo minori di 1 e la matrice P i<br />
è convergente: Pi+ 1<br />
= Pi<br />
= P per<br />
i → ∞ . La soluzione di regime si ottiene risolvendo l’equazione:<br />
T<br />
perché ( R B P B)<br />
− 1<br />
P = Q + A T PA ⇒ P − A T PA = Q (equazione di Lyapunov per i sitemi tempodiscreti)<br />
In questo caso è:<br />
∞<br />
x Q x x P T<br />
T<br />
∑ i i<br />
= x<br />
2 2<br />
i=<br />
0<br />
0 0<br />
Infatti:<br />
Possiamo porre ( x )<br />
Quindi V( )<br />
∞<br />
∞<br />
∞<br />
∞<br />
∞<br />
∑ i i ∑ i i ∑ i<br />
i ∑ i i ∑<br />
i=<br />
0 i=<br />
0 i=<br />
0 i=<br />
0<br />
i=<br />
0<br />
i<br />
x T Qx x T Px x T T<br />
A PAx x T<br />
T<br />
T<br />
= − = Px − x Px = x Px<br />
V i i<br />
T<br />
= 1 x Pix<br />
2<br />
i<br />
i+ 1 i+<br />
1<br />
0 0<br />
ottenendo che ∆V < 0 se è soddisfatta l’equazione di Riccati.<br />
x è una soluzione dell’equazione di Lyapunov. Infatti:<br />
1<br />
T<br />
T<br />
1<br />
T T<br />
T<br />
1<br />
T<br />
∆V = V( x<br />
i+ 1) − V( x<br />
i ) = ( x<br />
i+ 1Pi+ 1xi+ 1<br />
− x<br />
i<br />
Pix i ) = ( x<br />
i<br />
A Pi+<br />
1Ax i<br />
− x<br />
i<br />
P1x i ) = − x<br />
i<br />
Qx<br />
2<br />
2<br />
2<br />
La legge di controllo ottenuta in questo modo assicura la stabilità.<br />
−T<br />
Poiché p<br />
+<br />
= A ( p − Qx )<br />
i 1 i i<br />
e p<br />
i<br />
Pix<br />
i<br />
= , la legge di controllo nel caso generale è data da:<br />
( )<br />
−1<br />
T −T<br />
u = −R B A P − Q x<br />
(controllo in controreazione).<br />
L’equazione di Riccati può anche essere scritta nel seguente modo:<br />
i<br />
T<br />
P = A G A + Q<br />
i<br />
T<br />
G<br />
i+ 1<br />
Pi+ 1<br />
Pi+ 1B R B Pi<br />
+ 1B B Pi+<br />
1<br />
. Se<br />
A è stabile, l’orizzonte di controllo tende all’infinito e gli elementi di R tendono all’infinito,<br />
allora G i + 1<br />
tende a P i+1<br />
:<br />
T<br />
(in modo simile all’equazione di Lyapunov) dove = − ( + )<br />
i+1<br />
T<br />
P = A P A + Q<br />
La matrice G i+1<br />
è reale simmetrica d.p. anche se contiene una differenza.<br />
i<br />
i+1<br />
i<br />
i<br />
−1<br />
i<br />
6.2 Indice di qualità<br />
L’indice di qualità è dato da:<br />
74
Applicazione ai sistemi tempo-discreti<br />
J k<br />
N−1<br />
⎛ T<br />
T<br />
N ∑ ⎜ i i i<br />
2 ⎝<br />
i=<br />
k 2 2<br />
T<br />
⎞<br />
= x F N<br />
x + x Q x + u R u<br />
i ⎟<br />
⎠<br />
⇓<br />
J N<br />
= x F x = x P x<br />
N<br />
T<br />
T N<br />
2<br />
N N<br />
2<br />
N<br />
Il problema è quello di determinare il min<br />
u k<br />
J k<br />
.<br />
Cerchiamo una formula iterativa che leghi J N−1<br />
ad J N<br />
. J N−1<br />
è dato da:<br />
In questo caso bisogna calcolare il min<br />
tutta la sequenza u k<br />
.<br />
Poiché x<br />
N<br />
= Ax<br />
N<br />
+ Bu , allora:<br />
−1 N−1 J N −1<br />
=<br />
Q R x u u<br />
2 2 2<br />
T<br />
T<br />
T<br />
J N −1 = x F N<br />
x<br />
N<br />
+ x<br />
N−1 N−1 +<br />
N−1 N−1<br />
J N −<br />
u N −1<br />
T T T T<br />
( x A + u B ) P ( Ax + Bu )<br />
N−1 N−1 N N−1 N−1<br />
1 , cioè bisogna solo scegliere l’ingresso u N−1 e non<br />
Q R<br />
+ x x + u u<br />
2 2 2<br />
Deriviamo l’espressione a secondo membro rispetto ad u N−1<br />
:<br />
∂<br />
∂u<br />
Otteniamo:<br />
N−1<br />
⎡<br />
⎢<br />
⎣⎢<br />
T T T T<br />
( x A + u B ) P ( Ax + Bu )<br />
T<br />
T<br />
N−1 N−1 N−1 N−1<br />
N N N T<br />
Q R<br />
x<br />
N x u<br />
T<br />
+<br />
N<br />
+<br />
N u<br />
2 2 2<br />
N−1 N−1 −1 −1<br />
⇓<br />
T<br />
B P Ax<br />
T<br />
+ B P Bu + Ru =<br />
N<br />
N−1 N N−1 N−1 0<br />
⇓<br />
T<br />
( N )<br />
T<br />
$u = − R + B P B B P Ax<br />
N−1<br />
−1<br />
−1 −1 −1 N−1<br />
N<br />
N−1<br />
⎤<br />
⎥<br />
⎦⎥ = 0<br />
T T T T<br />
T<br />
T<br />
( x<br />
N−1A + u<br />
N−1B ) PN ( Ax<br />
N−1 + Bu<br />
N−1)<br />
+ x<br />
N−1Qx N−1 + u<br />
N−1Ru<br />
N−1<br />
=<br />
T<br />
T<br />
T<br />
T T<br />
T<br />
T<br />
( N ) N N ( N ) N<br />
2<br />
N N N N ( N )<br />
T T<br />
T<br />
−1<br />
T<br />
T T<br />
T<br />
−1<br />
T<br />
x<br />
N−1A PN<br />
B( R B PNB)<br />
B PNAx N−1 2 x<br />
N−1A PNB( R B PNB)<br />
B PN<br />
Ax<br />
N−1<br />
T<br />
T<br />
T<br />
T<br />
−1<br />
T<br />
T<br />
= x Q + A P A − A P B( R + B P B)<br />
B P A x = x P x<br />
T<br />
= x Q + A P A x + u R + B P B u + u B P Ax = x Q + A P A x +<br />
N−1 −1 −1 −1 −1 −1 −1 N−1<br />
+ + −<br />
N−1<br />
[ N<br />
N<br />
N<br />
]<br />
+ =<br />
N N−1 N−1 N−1 N−1<br />
Quindi:<br />
Si può dimostrare che in generale è:<br />
P<br />
2<br />
T N−1<br />
J N −1 = x N −1<br />
x<br />
N−1<br />
75
Ottimizzazione<br />
T i<br />
J i<br />
= x P i<br />
x<br />
2 i<br />
6.3 Proprietà della matrice hamiltoniana<br />
Abbiamo dimostrato che gli autovalori della matrice hamiltoniana di un sistema tempocontinuo<br />
sono simmetrici rispetto all’asse immaginario. Si può dimostrare che gli autovalori<br />
della matrice hamiltoniana di un sistema tempo-discreto sono speculari rispetto al cerchio<br />
unitario (se tale matrice ha un autovalore z ha anche l’autovalore 1 z ).<br />
Abbiamo dimostrato che valgono le seguenti relazioni:<br />
Se le condizioni iniziali sono nulle si ottiene:<br />
−1<br />
T<br />
⎧x i+<br />
1<br />
= Ax<br />
i<br />
− BR B p<br />
⎨<br />
T<br />
⎩p i<br />
= Qx<br />
i<br />
+ A p<br />
i+<br />
1<br />
i+<br />
1<br />
−1 T<br />
⎧zX( z) = AX( z) − BR B zP( z)<br />
⎨<br />
T<br />
⎩ P( z) = QX( z) + A zP( z)<br />
⇓<br />
−1<br />
T<br />
⎡zI − A − BR B ⎤ X( z)<br />
⎢<br />
T ⎥ ⎛<br />
⎣ Q z I − A ⎦⎝ ⎜ ⎞<br />
−<br />
⎟ =<br />
zP( z)<br />
⎠<br />
1<br />
0<br />
dove X( z ) è la z-trasformata di x i<br />
e P( z ) è la z-trasformata di p i<br />
.<br />
Supponiamo che [ u<br />
i<br />
v<br />
i ]<br />
l’autovalore associato:<br />
T<br />
sia un autovettore della matrice hamiltoniana e che z sia<br />
−1<br />
T<br />
⎡zI − A − BR B ⎤ u<br />
i<br />
u<br />
i<br />
⎢<br />
T ⎥ ⎡ z<br />
⎣ Q z I − A ⎦⎣ ⎢<br />
⎤<br />
v<br />
⎥ = ⎡<br />
i ⎦ ⎣ ⎢ ⎤<br />
−1<br />
v<br />
⎥<br />
i ⎦<br />
⇓<br />
−1<br />
T<br />
⎧zu i<br />
− Au<br />
i<br />
− BR B v<br />
i<br />
= zu<br />
i<br />
⎨<br />
−1<br />
T<br />
⎩Qui<br />
+ z v<br />
i<br />
− A v<br />
i<br />
= zv<br />
i<br />
Se esiste un autovalore z con autovettore destro associato [ u<br />
i<br />
v<br />
i ]<br />
z −1 T<br />
con autovettore sinistro associato [ v<br />
i<br />
u<br />
T i ]:<br />
−1<br />
⎡zI − A − BR B<br />
T T<br />
−1<br />
T T<br />
[ v<br />
i<br />
u<br />
i ] ⎢<br />
−1<br />
T ⎥ = z [ v<br />
i<br />
u<br />
i ]<br />
⎣ Q z I − A ⎦<br />
⇓<br />
T T T −1<br />
T<br />
⎧v i<br />
z − v<br />
i<br />
A + u<br />
i<br />
Q = z v<br />
i<br />
⎨ T −1 T T −1 T T −1<br />
⎩− v<br />
i<br />
BR B + ui<br />
z − u<br />
i<br />
A = z u<br />
T<br />
⎤<br />
T<br />
i<br />
T<br />
esiste anche l’autovalore<br />
76
Applicazione ai sistemi tempo-discreti<br />
Quindi, z −1 è autovalore della matrice hamiltoniana.<br />
6.4 Luogo reciproco delle radici<br />
T<br />
Se abbiamo un sistema SISO, u Ru = ru<br />
L’indice di qualità può essere scritto come:<br />
2<br />
(scalare) e Q<br />
= c T c , dove c è un vettore riga.<br />
J =<br />
dove v = cx , v ∈R .<br />
La matrice hamiltoniana diventa la seguente:<br />
∞<br />
∫<br />
0<br />
T T<br />
2<br />
x c cx + Ru 1 dt = ∫ ( v<br />
2<br />
+ ru<br />
2<br />
) dt<br />
2 2<br />
∞<br />
0<br />
⎡<br />
⎢ A<br />
⎢ T<br />
⎣c c<br />
bb<br />
r<br />
− A<br />
T<br />
T<br />
⎤<br />
⎥<br />
⎥<br />
⎦<br />
che ha polinomio caratteristico dato da:<br />
Otteniamo:<br />
⎧<br />
⎪⎡<br />
= det⎨⎢<br />
⎣⎢<br />
⎩<br />
⎪<br />
a<br />
a<br />
c<br />
( zI<br />
− A)<br />
0<br />
( z) a (<br />
1<br />
c z)<br />
( z) a (<br />
1<br />
)<br />
0 0<br />
−1<br />
z<br />
0<br />
−1<br />
T<br />
( z I − A )<br />
T<br />
⎡<br />
det s bb<br />
⎢ I − A −<br />
⎢<br />
r<br />
T<br />
⎣ − c c sI + A<br />
⎧<br />
⎪⎡<br />
= det⎨⎢<br />
⎣<br />
⎩<br />
⎪<br />
( zI<br />
− A)<br />
−1<br />
⎡<br />
−1<br />
⎢I − ( zI − A)<br />
bb<br />
= det⎢<br />
⎢0<br />
⎣⎢<br />
0<br />
−1<br />
T<br />
⎤⎡<br />
bb<br />
z<br />
⎥⎢<br />
I − A −<br />
r<br />
T<br />
1<br />
⎦⎥<br />
⎢<br />
−<br />
⎣ c c z I − A<br />
T<br />
T<br />
0⎤⎡I<br />
⎥⎢<br />
I⎦⎣0<br />
⎤<br />
⎥ a ( s) a ( s)<br />
c c<br />
⎥ = − = 0<br />
⎦<br />
−1<br />
T<br />
( z I − A )<br />
T<br />
0<br />
−1<br />
⎤⎫<br />
⎡<br />
⎥⎪<br />
⎬ = det<br />
⎢<br />
⎥ ⎢<br />
⎦⎭<br />
⎪<br />
⎣⎢<br />
z<br />
T<br />
⎤<br />
⎡<br />
bb<br />
z<br />
⎥<br />
⎢ I − A −<br />
r<br />
⎦⎢<br />
T −1<br />
⎣ c c z I − A<br />
T<br />
⎤⎫<br />
⎥⎪<br />
⎬ =<br />
⎥<br />
⎦⎭<br />
⎪<br />
I<br />
−1<br />
− ( zI − A)<br />
bb<br />
r<br />
T<br />
−1<br />
T<br />
I − A c c I<br />
−1<br />
( )<br />
r<br />
T T<br />
T<br />
( z ) ( z )<br />
T T<br />
r<br />
I ( z I A ) c c( zI A)<br />
bb I I A c c I A bb<br />
−1<br />
−1 −1<br />
⎥ = det⎢<br />
+ − −<br />
−1<br />
−1 −1<br />
+ − − ⎥ ⎣<br />
⎡<br />
= ⎢ + − −<br />
⎣<br />
r<br />
T<br />
⎤ ⎡<br />
− − −<br />
⎥ = +<br />
r<br />
⎢ A bb T<br />
1<br />
I A c<br />
⎦ ⎣<br />
r<br />
−1<br />
= 1+<br />
1 ( ) ( )<br />
r G z G z<br />
T T<br />
I ( z I A ) c c( zI A)<br />
bb −1<br />
−1 −1<br />
1 1 T<br />
det det I c( zI<br />
− ) ( z − )<br />
⎤<br />
⎥<br />
⎦⎥<br />
⎡<br />
T<br />
T<br />
⎤<br />
⎥ =<br />
⎦<br />
⎤<br />
⎥ =<br />
⎦<br />
T<br />
⎤<br />
⎥<br />
⎥<br />
=<br />
⎦⎥<br />
dove a 0<br />
è il polinomio caratteristico a ciclo aperto e det( I + MN) = det( I + NM)<br />
.<br />
77
Ottimizzazione<br />
Gli autovalori relativi alle x i<br />
sono quelli interni al cerchio unitario, mentre quelli relativi alle<br />
p i<br />
sono quelli esterni al cerchio unitario.<br />
6.5 Esempi<br />
Negli esempi che seguono si vedrà che il luogo reciproco delle radici non porta tutti i poli<br />
nell’origine. Quindi i filtri FIR (che hanno la proprietà di avere tutti i poli nell’origine) non<br />
sono ottimi.<br />
6.5.1<br />
.1<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
G( z)<br />
1<br />
=<br />
z − 1<br />
Otteniamo il seguente luogo reciproco delle radici:<br />
1 1 1 1<br />
+<br />
1 1 − 1 − 1<br />
= − z<br />
−<br />
r z z r ( z − 1)<br />
1 2<br />
= 0<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
Il ramo relativo alla x è quello compreso tra l’origine ed il punto 1.<br />
Se il valore di k<br />
= − 1 fosse positivo si otterrebbe il seguente luogo delle radici:<br />
r<br />
78
Applicazione ai sistemi tempo-discreti<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
In questo caso si avrebbe stabilità solo per un valore di r maggiore di un valore r c<br />
. Ma il<br />
sistema deve essere sempre stabile a prescindere dal valore di r .<br />
6.5.2<br />
.2<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
G( z)<br />
= 1 1<br />
z − 1 z − 2<br />
Otteniamo il seguente luogo reciproco delle radici:<br />
1 1 1 z z<br />
1+<br />
= 0<br />
2r z − 1 z − 2 z − 1 z − 1 2<br />
2<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2<br />
-3 -2 -1 0 1 2 3<br />
asse reale<br />
I due rami vicini all’origine sono quelli relativi alla x .<br />
79
Ottimizzazione<br />
6.5.3<br />
.3<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
G( z)<br />
=<br />
z − 2<br />
z( z −1)<br />
Otteniamo il seguente luogo reciproco delle radici:<br />
( )<br />
( )<br />
( )( )<br />
( ) ( )<br />
1 1 2 −1<br />
2<br />
1 1 2 1 2 1 2 2 1<br />
z<br />
2<br />
+<br />
( 1)<br />
1 1 2<br />
−− ⋅ z −<br />
z − z − z z − z −<br />
= +<br />
= +<br />
− −<br />
r z z z z − 1 r z( z − 1)( 1−<br />
z)<br />
r ( z − 1)<br />
= 0<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
6.5.4<br />
.4<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
G( z)<br />
=<br />
z − 2<br />
( z − )( z − )<br />
1 1 2<br />
z − p<br />
Termini del tipo introducono solo uno sfasamento.<br />
⎛⎜<br />
⎝z<br />
− 1 ⎞⎟<br />
p ⎠<br />
Otteniamo il seguente luogo reciproco delle radici:<br />
( )<br />
1 1 2<br />
−1<br />
z −<br />
z − 2<br />
1 1 z − 2 z 1−<br />
2z<br />
+<br />
⋅<br />
r 1 1 2<br />
1 1 2<br />
1 1 2<br />
1−<br />
z 1−<br />
1 2<br />
z<br />
⋅<br />
= +<br />
−1 −1<br />
( z − )( z − ) ( z − )( z − )<br />
r ( z − )( z − )<br />
( )<br />
1 4 ( )( 2<br />
1<br />
z − z z − 2<br />
z<br />
= −<br />
⋅<br />
= −<br />
r z − 1 z − 1 2 )<br />
z − 1 z − 2 r z −<br />
1 4 ( )( ) ( 1)<br />
( )( )<br />
2<br />
= 0<br />
=<br />
80
Applicazione ai sistemi tempo-discreti<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
6.5.5<br />
Si abbia un sistema caratterizzato dalla seguente f.d.t.:<br />
z − 1<br />
G( z)<br />
2<br />
=<br />
( z − 1)( z − 2)<br />
Otteniamo il seguente luogo reciproco delle radici:<br />
1 z − 1<br />
1−<br />
2<br />
⋅<br />
4r<br />
( z − 1)( z − 2)<br />
z( z − 2)<br />
1 z<br />
= 1−<br />
z − 1 z − 1 4r<br />
z − 1<br />
2<br />
( )( ) ( )<br />
2<br />
= 0<br />
1.5<br />
1<br />
asse immaginario<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
asse reale<br />
81
Ottimizzazione<br />
6.6 Filtro di Kalman<br />
Il filtro di Kalman (che in realtà è un algoritmo) può essere utilizzato per stimare i parametri<br />
di un sistema lineare (anche non stazionario) che può presentare del rumore (incertezze) sia<br />
sulle variabili di stato che sull’uscita.<br />
Si abbia un modello del seguente tipo:<br />
⎧x + 1<br />
= Φ x + w<br />
⎨<br />
⎩zk = H<br />
kx k<br />
+ v<br />
k<br />
k k k k<br />
n<br />
m<br />
con w k<br />
∈R e v k<br />
∈R rumori bianchi. La matrice Φ k<br />
può essere tempovariante. Il modello<br />
è stocastico perché presenta dei rumori bianchi.<br />
Otteniamo:<br />
E[ w<br />
kw<br />
T<br />
i ]<br />
E[ v<br />
kv<br />
T<br />
i ]<br />
⎧0 se k ≠ i<br />
= ⎨<br />
⎩Q<br />
k<br />
se k = i<br />
⎧0 se k ≠ i<br />
= ⎨<br />
⎩R<br />
k<br />
se k = i<br />
dove Q k<br />
ed R k<br />
sono matrici di correlazione. Supponiamo che non ci sia correlazione tra w k<br />
e v k<br />
(le cause che originano i rumori w k<br />
e v k<br />
siano diverse):<br />
T<br />
E[ w k<br />
v i ] = 0 ∀k , ∀i<br />
Se abbiamo una stima $x k − della x basata sui valori precedenti a t k<br />
(abbiamo il simbolo ‘-’) 2<br />
possiamo valutare l’errore di stima, dato da:<br />
−<br />
e = x − x$<br />
−<br />
k k k<br />
Possiamo calcolare la matrice di covarianza dell’errore di stima:<br />
T<br />
T<br />
T<br />
[ $ $ ] [ k k ] [ $<br />
k k ] [ $<br />
k k ] [ $ $<br />
k k ]<br />
T<br />
T<br />
T T<br />
[ ] ( k k )( k k )<br />
P = E e e = E x − x x − x = E x x − E x x − E x x + E x x<br />
− − − − − − − − −<br />
k k k<br />
Conoscendo z k<br />
possiamo stimare x k<br />
:<br />
−<br />
( )<br />
−<br />
x$ = x$ + K z − H x$<br />
k k k k k k<br />
dove K k<br />
è una matrice di correzione (detta guadagno di Kalman) e z<br />
−<br />
− H x$ è detta<br />
k k k<br />
−<br />
innovazione. Lo scostamento tra $x k<br />
e $x k<br />
può essere esclusivamente dovuto al rumore v k<br />
sulla misura ma in genere non è così.<br />
Il problema è quello di calcolare K k<br />
in modo che la nostra previsione si discosti di poco dalla<br />
misura.<br />
2<br />
Il simbolo ‘^’ indica che si tratta di una stima.<br />
82
Applicazione ai sistemi tempo-discreti<br />
Se definiamo e<br />
k<br />
= x<br />
k<br />
− x$ k<br />
possiamo calcolare la matrice di covarianza dell’errore dopo la<br />
stima:<br />
T<br />
T T<br />
Pk = E[ e<br />
ke k ] = E[ ( x<br />
k<br />
− x$ k )( x<br />
k<br />
− x$<br />
k )]<br />
=<br />
− − − −<br />
[ x x$ K ( z H x$ )][ x x$ k k k k k k k k<br />
K<br />
k ( zk H<br />
kx$<br />
k )]<br />
T T T T<br />
T<br />
( )( k k ) k<br />
E<br />
k k k k k<br />
− T − T T T<br />
+ E K<br />
k ( zk − H<br />
kx$ k )( zk<br />
− x$<br />
k<br />
H<br />
k ) K<br />
k<br />
T<br />
{ }<br />
T<br />
E[ $ $ ] [ ( $ )( $<br />
k )]<br />
[ ]<br />
= E − − − − − − =<br />
− − − − −<br />
= P − x − x z − x H K − K z − H x x − x +<br />
k k k k<br />
T T T T T<br />
T T<br />
{( $ )[( $<br />
k ) k k ] k } E [ ( $ ) ]( $<br />
k k k k k k k )<br />
−<br />
T − T T T T<br />
+ E K<br />
k[ H<br />
k ( x<br />
k<br />
− x$ k ) + v<br />
k ] ( x<br />
k<br />
− x$<br />
k ) H<br />
k<br />
+ v<br />
k<br />
K<br />
k<br />
=<br />
{ }<br />
[ ]<br />
− − − − −<br />
P = P − E x − x x − x H + v K − K H x − x + v x − x +<br />
k k k k k<br />
{ }<br />
− − T T<br />
− − T T<br />
T<br />
= P − P H K − K H P + K H P H K + K R K =<br />
k k k<br />
k<br />
T<br />
= K R K + I − K<br />
k k k<br />
k k k k k k k<br />
−<br />
( H ) P ( I − K H )<br />
k k k k k<br />
k<br />
T<br />
k k k<br />
perché v k<br />
è scorrelato sia da x k<br />
che da $x k − . Data la matrice di covarianza dell’errore prima<br />
della stima è così possibile ottenere la matrice di covarianza dell’errore dopo la stima.<br />
Per derivare le formule di sopra abbiamo supposto di avere la matrice K k<br />
. Tale matrice deve<br />
essere scelta in modo che la matrice P k<br />
sia la più piccola possibile in norma. Siccome la<br />
matrice P k<br />
è ottenuta come somma di matrici del tipo MM T , si può mandare a zero la sua<br />
traccia (questo implica il fatto che la sua norma viene mandata a zero).<br />
Se p è uno scalare ed A è una matrice, allora:<br />
⎡ ∂p<br />
⎢∂a<br />
⎢<br />
dp p<br />
dA = ⎢<br />
∂<br />
⎢∂a<br />
⎢ M<br />
⎢<br />
⎣<br />
∂p<br />
∂a<br />
11 12<br />
21<br />
O<br />
⎤<br />
L⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
Si può dimostrare che:<br />
d d<br />
T<br />
( ) ( )<br />
dA tr AC = dA tr AC = C<br />
d<br />
T<br />
( ACA ) AC<br />
dA tr = 2<br />
Quindi, la matrice K k<br />
che minimizza trP k<br />
è data da:<br />
d<br />
T<br />
T<br />
( ) k ( k k k )<br />
K tr P = − H P −<br />
+ K H P −<br />
2 2 H + R = k<br />
0<br />
d k<br />
k k k<br />
⇓<br />
T<br />
83
Ottimizzazione<br />
− T<br />
[ k ]<br />
− T<br />
K = P H H P H + R<br />
k k k k k k<br />
Sostituendo il valore di K k<br />
così ottenuto nell’espressione di P k<br />
otteniamo:<br />
T<br />
( k k k )<br />
− − T −<br />
P = P − P H H P H + R H P<br />
k k k k<br />
Abbiamo riottenuto l’equazione di Riccati, che in questo caso si può scrivere come:<br />
− T<br />
( k )<br />
−1<br />
−<br />
P = P − K H P H + R K<br />
k k k k k<br />
−1<br />
−1<br />
k<br />
T<br />
k<br />
−<br />
k<br />
oppure<br />
( )<br />
P = I − K H P<br />
−<br />
k k k k<br />
In questo caso l’equazione di Riccati è usata in un problema di osservabilità (precedentemente<br />
era stata usata in problemi di controllabilità).<br />
−<br />
Se abbiamo $x k<br />
possiamo calcolare x$ x$<br />
k + 1<br />
= Φ<br />
k k<br />
, che è la stima prima della nuova misura.<br />
Otteniamo:<br />
−<br />
e = x − x$<br />
−<br />
k+<br />
1 k+ 1 k+<br />
1<br />
−<br />
− T<br />
−<br />
−<br />
T<br />
Pk+<br />
= E[ e<br />
k+ e<br />
k+<br />
] = E[ ( x<br />
k+ − x$ k+<br />
)( x<br />
k+ − x$<br />
1 1 1 1 1 1 k+<br />
1)<br />
] =<br />
T<br />
T<br />
[( $<br />
k k k k k )( $<br />
k k k k k ) ] E[ ( k k k )( k k k ) ]<br />
T<br />
= E Φ x + w − Φ x Φ x + w − Φ x = Φ e + w Φ e + w = Φ P Φ + Q<br />
k k k<br />
k<br />
perché e k<br />
e w k<br />
sono scorrelati.<br />
In definitiva, l’algoritmo del filtro di Kalman è il seguente:<br />
−<br />
1) K P H T − T<br />
k<br />
=<br />
k k [ H<br />
kPk H<br />
k<br />
+ R<br />
k ]<br />
−<br />
−<br />
2) x$ x$ K ( z H x$<br />
k<br />
=<br />
k<br />
+<br />
k k<br />
−<br />
k k )<br />
−<br />
3) P = ( I − K H ) P<br />
k k k k<br />
−<br />
k + 1<br />
= Φkx<br />
k<br />
−<br />
T<br />
k+<br />
1<br />
= Φk kΦk<br />
+<br />
k<br />
4) x$ $<br />
5) P P Q<br />
6) torna al punto 1)<br />
Nel caso di rumore bianco il filtro di Kalman è ottimo.<br />
Se nel sistema non abbiamo un rumore bianco ma un altro tipo di rumore possiamo pensare<br />
che esso provenga da un rumore bianco che passa attraverso un filtro (detto filtro sbiancante).<br />
Possiamo applicare il filtro di Kalman al sistema complessivo costituito dal filtro sbiancante e<br />
dal sistema iniziale per ricondurci al caso di rumore bianco.<br />
−1<br />
84
PARTE<br />
II<br />
MODELLISTICA ED<br />
IDENTIFICAZIONE
<strong>Modellistica</strong><br />
7. MODELLISTICA<br />
Il problema che ci poniamo in questo capitolo e nel successivo è quello di individuare una<br />
serie di metodi operativi per determinare il modello ed i parametri di un sistema SISO lineare<br />
tempo-invariante con un disturbo addizionale ν( t ) sull’uscita:<br />
La relazione ingresso-uscita che regola questo sistema è la seguente:<br />
dove ( )<br />
y( t) = G( q) u( t) + ν( t)<br />
G q è la funzione di trasferimento dall’ingresso u( t ) all’uscita ( ) G q è un<br />
polinomio in q , che è l’operatore di shift ( qu( t) = u( t + 1 ) ) per cui l’equazione di sopra deve<br />
essere interpretata come:<br />
k<br />
y( t) = ⎛ +∞<br />
+∞<br />
g q u( t) ( t) g u( t k) ( t)<br />
k<br />
k<br />
⎝ ⎜ −<br />
⎞<br />
∑ ⎟ + ν = ∑ − + ν<br />
⎠<br />
k=<br />
0 k=<br />
0<br />
y t . ( )<br />
Abbiamo scelto di rappresentare il sistema in tempo discreto perché i dati osservati sono<br />
sempre raccolti come campioni.<br />
Nell’equazione di sopra abbiamo assunto che il tempo di campionamento fosse uguale ad un<br />
secondo. Questo non è essenziale ma rende la notazione molto più semplice.<br />
La densità di probabilità di ν( t ) non è nota in generale. Facciamo l’ipotesi che il disturbo ν( t)<br />
sia ottenuto filtrando un rumore bianco ( )<br />
H q :<br />
con H( q)<br />
= 1+<br />
+∞<br />
∑<br />
k=<br />
1<br />
h q k<br />
−k<br />
e t mediante un filtro lineare ( )<br />
+∞<br />
( ) = ( ) ( ) = ∑ ( ) ( − )<br />
ν t H q e t h k e t k<br />
k=<br />
0<br />
indipendenti e aventi identica densità di probabilità:<br />
Si ha:<br />
( h 0<br />
= 1). Quindi e( t ) è una sequenza di variabili aleatorie<br />
f[ e( t)<br />
] = f e( t − 1)<br />
= K= f e t − k<br />
[ ] [ ( )]<br />
E{ e( t )}<br />
= 0<br />
87
<strong>Modellistica</strong> ed Identificazione<br />
dove λ è la varianza di e( t ) .<br />
Calcoliamo il valor medio di ν( t ) :<br />
{ }<br />
perché E e( t − k)<br />
= 0 .<br />
Calcoliamo ora la covarianza di ν( t ) :<br />
⎧0 se τ ≠ 0<br />
E{ e( t) e( t − τ)<br />
} = λδ( τ)<br />
= ⎨<br />
⎩λ<br />
se τ = 0<br />
+∞<br />
E{ ν ( t)<br />
} = ∑ h( k) E{ e( t − k)<br />
} = 0<br />
+∞<br />
k=<br />
0<br />
+∞<br />
E{ ν( t) ν( t − τ)<br />
} = h( k) h( s) E{ e( t − k) e( t − τ − s)<br />
} =<br />
+∞<br />
+∞<br />
∑∑<br />
∑∑<br />
k=<br />
0 s=<br />
0<br />
= h( k) h( s) λδ( k − τ − s) = λ h( k) h( k − τ) = R ( τ)<br />
+∞<br />
∑<br />
k=<br />
0 s=<br />
0<br />
k=<br />
0<br />
Il disturbo ν( t ) in generale può essere caratterizzato dal suo spettro, che dà una descrizione<br />
del suo contenuto frequenziale:<br />
+∞<br />
ωτ<br />
Φ ν ν<br />
∑ R e H e<br />
ω<br />
( ω) = ( τ) − j<br />
j<br />
= λ ( )<br />
τ=−∞<br />
Quindi, il nostro problema può essere descritto nel seguente modo:<br />
y( t) = G( q) u( t) + H( q) e( t)<br />
Siccome le funzioni di trasferimento G ed H non sono note possiamo introdurre un<br />
parametro θ nella loro descrizione che riflette la nostra carenza di informazioni. In questo<br />
modo il modello parametrizzato risultante è il seguente:<br />
(7.1) y( t) = G( q, θ) u( t) + H( q,<br />
θ) e( t)<br />
Il parametro θ può essere stimato utilizzando uno dei metodi per l’identificazione descritti nel<br />
capitolo successivo.<br />
Data la descrizione del sistema illustrata sopra e un insieme di dati di ingresso ( u( s ) ) ed uscita<br />
( y( s ) ) fino all’istante t − 1 ( s ≤ t −1), come possiamo predire l’uscita all’istante y( t ) ?<br />
Dividiamo ambo i membri dell’equazione (7.1) per H( q,θ ) :<br />
Ma:<br />
−<br />
( , θ) ( ) = ( , θ) ( , θ) ( ) + ( )<br />
−<br />
H 1 q y t H 1 q G q u t e t<br />
(7.2) ( ) 1<br />
−<br />
( )<br />
⇓<br />
1 −1<br />
[ , θ ] ( ) ( , θ) ( , θ) ( ) ( )<br />
y t = − H q y t + H q G q u t + e t<br />
2<br />
ν<br />
88
<strong>Modellistica</strong><br />
( q,<br />
θ)<br />
−1<br />
1− H =<br />
+∞<br />
( , θ)<br />
− 1 1 =<br />
( ) ( )<br />
∑<br />
H q, θ H q,<br />
θ k=<br />
1<br />
H q<br />
h q k<br />
−k<br />
[ H q ] y ( t )<br />
,θ contiene solo i valori di y( s ) per s ≤ t −1. Il secondo<br />
membro della (7.2) è conosciuto all’istante t − 1 con l’eccezione di e( t ) . La predizione di y( t)<br />
è ottenuta dalla (7.2) cancellando e( t ) :<br />
Quindi l’espressione 1 − −1<br />
( )<br />
(7.3) ( ) 1<br />
−<br />
( )<br />
1 −1<br />
[ ] ( ) ( ) ( ) ( )<br />
y$ t, θ = − H q, θ y t + H q, θ G q,<br />
θ u t<br />
Per caratterizzare completamente il nostro modello di sistema dobbiamo conoscere anche la<br />
densità di probabilità della variabile e( t ) . Non tutti i metodi che vedremo riusciranno a<br />
caratterizzare f e<br />
.<br />
Un modello di predizione permette solo l’identificazione dei parametri del vettore θ , mentre<br />
un modello probabilistico permette anche l’identificazione della densità di probabilità f e<br />
.<br />
Nei prossimi paragrafi vedremo alcune forme particolari dei polinomi G ed H .<br />
7.1 Modello ad equazione d’errore (ARX)<br />
Con questo modello vale la seguente relazione tra ingresso ed uscita:<br />
( ) + ( − ) + + ( − ) = ( − ) + + n a n ( −<br />
1<br />
1 K<br />
1<br />
1 K<br />
b )<br />
y t a y t a y t n b u t b u t n<br />
a<br />
⇓<br />
A q, θ y t = B q,<br />
θ u t + e t<br />
( ) ( ) ( ) ( ) ( )<br />
b<br />
con:<br />
( 1<br />
K<br />
n<br />
n )<br />
a 1<br />
K<br />
b<br />
θ = a a b b<br />
( )<br />
( )<br />
1<br />
2<br />
A q,θ = + a q + a q + K+<br />
a q<br />
1<br />
1<br />
− − −na<br />
2<br />
na<br />
1<br />
2<br />
B q,θ = b q + b q + K+<br />
b q<br />
1<br />
− − −nb<br />
2<br />
nb<br />
T<br />
Il termine noto di B è nullo ad indicare che l’uscita non dipende dall’ingresso corrente.<br />
Questo modello corrisponde alla seguente scelta in termini di G ed H :<br />
G<br />
= B e H = 1<br />
A<br />
A<br />
Il disturbo passa attraverso un filtro che ha i poli del sistema:<br />
89
<strong>Modellistica</strong> ed Identificazione<br />
L’espressione A( q ) y( t)<br />
,θ è una autoregressione dell’uscita:<br />
( ,θ) ( ) = ( ) + ( − 1) + ( − 2) + K+ ( − )<br />
A q y t y t a y t a y t a y t n<br />
1 2<br />
L’ingresso esterno sul sistema viene chiamato ingresso esogeno. Quindi, il modello ad<br />
equazione d’errore è anche detto ARX (AutoRegressive eXogenous).<br />
Dalla (7.3) ricaviamo la funzione di predizione:<br />
( , θ) ( ) ( , θ)<br />
na<br />
( , θ)<br />
( , θ)<br />
B q<br />
−1 −1<br />
y$ ( t, θ) = H ( q, θ) G( q, θ) u( t) + [ 1− H ( q, θ)<br />
] y( t) = A( q,<br />
θ)<br />
u( t) + [ 1− A( q,<br />
θ)<br />
] y( t)<br />
=<br />
A q<br />
Quindi $ ( , )<br />
−1<br />
−nb<br />
−1<br />
−na<br />
[ 1 ] ( ) ( 1<br />
K<br />
n ) ( ) ( 1<br />
K<br />
n ) ( )<br />
= B q u t + − A q y t = b q + b q u t − a q + a q y t<br />
y t θ è legata agli ingressi ed alle uscite passati.<br />
Definendo il seguente vettore (vettore di regressione):<br />
otteniamo l’equazione di regressione:<br />
Fissati n a<br />
ed n b<br />
otteniamo:<br />
⎛ − y( t − 1)<br />
⎞<br />
⎜ ⎟<br />
⎜ M ⎟<br />
⎜−<br />
y( t − na<br />
) ⎟<br />
ϕ( t)<br />
= ⎜ ⎟<br />
⎜ u( t −1)<br />
⎟<br />
⎜ M ⎟<br />
⎜<br />
⎝ u t<br />
⎟<br />
⎠<br />
b<br />
( − n )<br />
b<br />
T<br />
( ) = ϕ ( t)<br />
y t,θ θ<br />
T<br />
⎛ y( t)<br />
⎞ ⎛ ϕ ( t)<br />
⎞<br />
⎜ ⎟ ⎜ ⎟<br />
T<br />
⎜ y( t + 1)<br />
⎟ ⎜ ϕ ( t + 1)<br />
⎟<br />
⎜ ⎟<br />
= ⎜ ⎟ ⋅θ = Φθ<br />
M<br />
M<br />
⎜ ⎟ ⎜ ⎟<br />
T<br />
⎝ y( t + d)<br />
⎠ ⎝ϕ<br />
( t + d)<br />
⎠<br />
( 1) ( 2) L ( ) ( ) ( )<br />
a<br />
1 2 L ( b )<br />
y( t) y( t 1) L y( t n ) u( t) u( t )<br />
a<br />
1 1 L u( t n<br />
b<br />
1)<br />
⎡− y t − − y t − − y t − n u t − u t − u t − n<br />
⎢<br />
Φ = ⎢ − − − − − + − − +<br />
⎢<br />
⎣<br />
O O O O O O O<br />
dove Φ è detta matrice di regressione. Abbiamo ottenuto un sistema di equazioni lineari che<br />
deve essere risolto con la tecnica dei minimi quadrati (in generale Φ non è quadrata):<br />
y = Φθ<br />
T<br />
Φθ ⇒ = ( )<br />
−1<br />
θ Φ Φ Φ<br />
T<br />
y<br />
a<br />
a<br />
⎤<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
90
<strong>Modellistica</strong><br />
T<br />
dove ( Φ Φ)<br />
−1<br />
Φ<br />
T<br />
è la pseudoinversa di Φ : Φ T Φ<br />
deve essere invertibile e quindi Φ deve<br />
avere rango pieno. La matrice Φ è a bande ma può anche non avere rango pieno se stiamo<br />
campionando molto velocemente un processo lento (possiamo ottenere due righe uguali o<br />
simili). Infatti, gli algoritmi di identificazione vengono eseguiti su calcolatori elettronici, che<br />
hanno una precisione limitata.<br />
Abbiamo ottenuto una soluzione semplice (il modello ARX consente una facile identificazione)<br />
che però può presentare dei problemi di calcolo.<br />
7.2 Modello ARMAX<br />
In questo caso la relazione che lega l’ingresso con l’uscita è la seguente:<br />
( , θ) ( ) = ( , θ) ( ) + ( , θ) ( )<br />
A q y t B q u t C q e t<br />
con:<br />
( 1<br />
L<br />
n n n )<br />
a 1<br />
L<br />
b 1<br />
L<br />
c<br />
θ = a a b b c c<br />
( )<br />
( )<br />
( )<br />
1<br />
2<br />
A q,θ = + a q + a q + K+<br />
a q<br />
1<br />
1<br />
− − −na<br />
2<br />
na<br />
1<br />
2<br />
B q,θ = b q + b q + K+<br />
b q<br />
1<br />
− − −nb<br />
2<br />
nb<br />
1 2<br />
C q,θ = + c q + c q + K+<br />
c q<br />
1<br />
1<br />
− − − nc<br />
2<br />
nc<br />
T<br />
In questo caso abbiamo più parametri da identificare rispetto al modello ARX.<br />
Il termine noto di B è nullo ad indicare che l’uscita non dipende dall’ingresso corrente.<br />
Questo modello corrisponde alla seguente scelta in termini di G ed H :<br />
G<br />
= B e H =<br />
C A<br />
A<br />
Anche in questo caso il rumore passa attraverso un filtro che ha gli stessi poli del sistema:<br />
Il polinomio C impone una regressione su ( ) e t che in questo caso viene chiamata media<br />
mobile. Questo modello è dunque detto ARMAX (AutoRegressive Moving Average eXogenous).<br />
Dalla (7.3) ricaviamo la funzione di predizione:<br />
91
<strong>Modellistica</strong> ed Identificazione<br />
( , θ)<br />
( , θ)<br />
A( q,<br />
θ)<br />
C( q,<br />
θ)<br />
( , θ)<br />
⎤<br />
⎥<br />
( , θ)<br />
( , θ)<br />
( , θ)<br />
B q ⎡ A q<br />
−1 −1<br />
y$ ( t, θ) = H ( q, θ) G( q, θ) u( t) + [ 1− H ( q,<br />
θ)<br />
] y( t)<br />
= u( t)<br />
+ ⎢1<br />
−<br />
A q ⎣⎢<br />
C q<br />
B q ⎡ A q<br />
= u( t)<br />
+ ⎢1<br />
−<br />
C q ⎣⎢<br />
C q<br />
⇓<br />
( )<br />
y t<br />
⎦⎥<br />
[ ] ( )<br />
( , θ) $ ( , θ) = ( , θ) ( ) + ( , θ) − ( , θ)<br />
C q y t B q u t C q A q y t<br />
⇓<br />
( , θ)<br />
( , θ)<br />
−1<br />
−nc<br />
−1<br />
− nb<br />
−1<br />
− nc<br />
−1<br />
− na<br />
( c1q + Kc q ) y$ n<br />
( t,θ) = ( b q b<br />
n<br />
q ) u( t) ( c q c<br />
n<br />
q ) y( t) ( a q a<br />
n<br />
q ) y( t)<br />
c<br />
1<br />
+ K +<br />
b<br />
1<br />
+ K −<br />
c<br />
1<br />
+ K<br />
a<br />
⇓<br />
⎤<br />
⎥y t<br />
⎦⎥<br />
nb<br />
nc<br />
na<br />
( θ) = ( n ) ( ) ( n )[ ( ) ( )] ( n ) − 1<br />
+ − + − 1<br />
+ − − θ − − 1<br />
+<br />
−<br />
1<br />
K<br />
1<br />
K<br />
1<br />
K ( )<br />
y$ t, b q b q u t c q c q y t y$ t,<br />
a q a q y t<br />
b<br />
Quindi y$ ( t,<br />
θ ) è legata agli ingressi, alle uscite e alle stime passati.<br />
c<br />
a<br />
( )<br />
=<br />
7.3 Differenza tra autoregressione e media mobile<br />
Consideriamo la seguente relazione:<br />
con R( q ) rapporto di polinomi in q :<br />
( )<br />
( )<br />
( ) ( ) ( )<br />
ν t<br />
= R q e t<br />
( )<br />
R q<br />
( )<br />
( )<br />
C q<br />
=<br />
A q<br />
C q = + c q − 1<br />
+ K+<br />
c q<br />
1<br />
1<br />
nc<br />
A q = + a q − 1<br />
+ K+<br />
a q<br />
1<br />
1<br />
na<br />
−nc<br />
−na<br />
Si ha:<br />
( t) + a ( t − 1) + a ( t − 2) + K + a ( t − n ) = e( t) + c e( t − 1) + K + c e( t − n )<br />
ν ν ν ν<br />
1 2 na<br />
a 1<br />
nc<br />
c<br />
Se consideriamo ν( t ) come uscita e C( q ) = 1 allora:<br />
( t) = −a ( t − 1) − a ( t − 2) −K−a ( t − n ) + e( t)<br />
ν ν ν ν<br />
1 2<br />
Questa formula viene chiamata autoregressione di ν ( ν all’istante t dipende da una<br />
combinazione lineare dei valori assunti nel suo passato).<br />
Se consideriamo ( )<br />
A q = 1 allora:<br />
ν t come uscita ed ( )<br />
na<br />
a<br />
92
<strong>Modellistica</strong><br />
( ) = ( ) + ( − ) + + ( − )<br />
ν t e t c1e t 1 K c<br />
n<br />
e t n<br />
ν( t ) è funzione solo di e( t ) : questa formula è una regressione su e( t ) (non una<br />
autoregressione) e viene chiamata media mobile (moving average).<br />
Se consideriamo e( t ) come uscita e ν( t ) come ingresso la seconda equazione diventa una<br />
autoregressione, mentre la prima diventa una media mobile.<br />
c<br />
c<br />
7.4 Altri modelli<br />
Un modello generale è esprimibile con la seguente relazione che lega l’uscita all’ingresso:<br />
( , θ)<br />
( , θ)<br />
( )<br />
e<br />
( ) ( t )<br />
A ( q ) y ( t B q C q,<br />
θ<br />
, θ ) = u( t)<br />
+<br />
F q D q,<br />
θ<br />
con A , B , C , D , F anche non tutti presenti.<br />
Possiamo costruire la seguente tabella:<br />
polinomi usati<br />
B<br />
A , B<br />
A , B , C<br />
A , C<br />
B , F<br />
B , C , D , F<br />
nome del modello<br />
FIR<br />
ARX<br />
ARMAX<br />
ARMA<br />
modello ad errore d’uscita<br />
Box-Jenkins<br />
Se un modello ha il polinomio A presenta un termine autoregressivo, se ha il polinomio C<br />
presenta una media mobile su ( ) e t .<br />
93
<strong>Modellistica</strong> ed Identificazione<br />
7.5 Criteri nella scelta del modello<br />
Non esistono dei criteri generali per scegliere un modello. In genere si segue una procedura “a<br />
tentativi”: si sceglie un modello e, se non si ottengono dei buoni risultati, si cambia modello.<br />
Tuttavia, nella procedura conviene essere guidati dall’intuito e da qualche conoscenza<br />
sull’impianto.<br />
Se il sistema è deterministico, non abbiamo errori sull’uscita ( e( t ) è trascurabile) ed abbiamo<br />
solo i polinomi A , B ed F: possiamo utilizzare il modello ARX o il modello ad errore d’uscita.<br />
Se, invece, il disturbo sull’uscita è molto alto rispetto al valore dell’uscita dovuto al solo<br />
ingresso conviene usare i modelli ARMA o ARMAX o Box-Jenkins. Nel modello Box-Jenkins la<br />
parte di disturbo è completamente disaccoppiata dal sistema (non è presente il termine<br />
1<br />
( )<br />
A e t ).<br />
Se ci sono ingressi non manipolabili il modello ARMAX è il migliore.<br />
Inoltre, il successo di una procedura di identificazione è spesso determinato dagli ingressi che<br />
forniamo al sistema. Se possiamo scegliere gli ingressi (se cioè stiamo effettuando<br />
un’identificazione off-line) conviene che essi siano tali che la matrice Φ T Φ sia invertibile.<br />
94
Identificazione<br />
8. IDENTIFICAZIONE<br />
Data una struttura di modello M , M ( θ ) è uno specifico modello corrispondente ai parametri<br />
contenuti in un vettore θ ∈D<br />
⊂ R<br />
d , dove d è la dimensione di θ che dipende dalla struttura<br />
del modello.<br />
Definiamo il seguente vettore:<br />
Z N<br />
= [ y( 1) u( 1) y( 2) u( 2) K y( N) u( N)<br />
]<br />
Data una struttura di modello, un metodo di identificazione è una qualsiasi funzione con<br />
dominio nell’insieme degli Z N<br />
e a valori in D .<br />
Questa schematizzazione permette di distinguere tra modellistica, che è la scelta della<br />
struttura di modello per un sistema, e identificazione, che è la scelta dei parametri per quel<br />
modello. Quest’ultima scelta dipende da Z N<br />
e cioè dagli ingressi del sistema.<br />
8.1 Metodo di identificazione ad errore di predizione<br />
Dai dati osservati e dalla predizione y$ ( t,<br />
θ ) si può formare la sequenza di errori di predizione<br />
ε( t, θ) = y( t) − y$ ( t,<br />
θ)<br />
, con t = 1, 2,K N . L’errore di predizione può essere filtrato attraverso un<br />
filtro lineare L( q ) , ottenendo:<br />
( , θ) = ( ) ε( , θ)<br />
ε t L q t<br />
F<br />
per esaltare o ridurre bande interessanti o non importanti di frequenza nei segnali.<br />
Scelta una funzione norma l:R → R +<br />
per misurare l’errore di predizione, il metodo consiste<br />
nel calcolare:<br />
( Z ) ( Z )<br />
θ$ = θ$ = arg min θ,<br />
N N N<br />
N<br />
1<br />
dove VN ( θ, Z<br />
N ) = ∑ l( ε<br />
F( t,<br />
θ)<br />
) .<br />
N t=<br />
1<br />
La scelta naturale sulla norma è la seguente:<br />
V N N<br />
θ∈D<br />
1<br />
l( ε ) = l<br />
2( ε ) = ε<br />
2<br />
2<br />
F F F<br />
(norma euclidea)<br />
o, in generale:<br />
95
<strong>Modellistica</strong> ed Identificazione<br />
( ε ) = ( ε + ε + )<br />
1<br />
p p p<br />
l p F 1 2<br />
K (norma l p<br />
)<br />
Se si devono identificare i parametri di un modello utilizzando una macchina di acquisizione<br />
dati possiamo ottenere dei valori distribuiti più o meno uniformemente e dei valori, detti<br />
outlier, che si allontanano dalla regione in cui sono compresi tutti gli altri:<br />
Gli outlier sono molto frequenti: possono dipendere, ad esempio, da un malfunzionamento<br />
temporaneo della macchina che acquisisce i dati. Per questo possiamo voler pesare di più<br />
~<br />
alcuni dati rispetto ad altri, utilizzando una norma del tipo l( ε) = β( t) l ( ε)<br />
.<br />
Nel caso di un modello lineare si ha:<br />
[ ] ( )<br />
−1 −1<br />
( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 ( )<br />
ε t, θ = y t, θ − y$ t, θ = y t, θ − H q, θ G q, θ u t − − H q, θ y t,<br />
θ =<br />
[ ]<br />
−1<br />
= H ( t, θ) y( t, θ) − G( q,<br />
θ) u( t)<br />
−1<br />
( , θ)<br />
⎤<br />
( , θ) ( ) ε( , θ)<br />
⎢ ⎥ y( t) − G( q,<br />
θ) u( t)<br />
L( q)<br />
ε t L q t H q<br />
F<br />
= = ⎡ ⎣⎢<br />
⎦⎥<br />
[ ]<br />
Calcoliamo la trasformata discreta di Fourier di ( θ,Z ) nel caso in cui ( )<br />
norma euclidea.<br />
Siano s( t ) e ( )<br />
V N<br />
N<br />
L q = 1 ed l è la<br />
w t due successioni di lunghezza N legate da un filtro lineare ( )<br />
( ) ( ) ( )<br />
s t = K q w t , con w( t)<br />
otteniamo:<br />
dove R N<br />
( ω ) è il resto. Si ha che R<br />
w( t ) è periodica di periodo N .<br />
Se s( t, θ) y( t) G( q,<br />
θ) u( t)<br />
K q :<br />
≤ C w<br />
∀t (successione d’ingresso limitata). Passando in frequenza<br />
jω<br />
(8.1) S ( ω) = K( e ) W ( ω) + R ( ω)<br />
= − applicando la (8.1) otteniamo:<br />
N<br />
N<br />
N<br />
N<br />
∝ 1 ( R<br />
N<br />
N<br />
→ 0 per N → ∞ ) ed R N<br />
( ω ) = 0 solo se<br />
jω<br />
( ω, θ) = ( ω) − ( , θ) ( ω) + ( ω)<br />
S Y G e U R<br />
N<br />
N<br />
N<br />
N<br />
96
Identificazione<br />
−1<br />
Siccome ε( t, θ) = H ( q, θ) s( t,<br />
θ)<br />
, riapplicando la (8.1) otteniamo:<br />
[ N<br />
N ] ( )<br />
−1 j<br />
( ) ( ω<br />
jω<br />
, θ) ( ) ( , θ) ( )<br />
E ω = H e Y ω − G e U ω + R ω<br />
N<br />
2<br />
∑ ∑<br />
2<br />
, con ω<br />
k= 1<br />
i=<br />
1<br />
N<br />
N<br />
⎛ 2πk⎞<br />
Applichiamo la relazione di Parseval U⎜<br />
⎟ = u( t)<br />
⎝ N ⎠<br />
V<br />
N<br />
1<br />
2N<br />
N<br />
π<br />
= 2 k<br />
N :<br />
−2 2<br />
jω<br />
jω<br />
( θ, Z<br />
N ) = ∑ H( e , θ) YN<br />
( ω) − G( e , θ) U<br />
N<br />
( ω) + R( ω)<br />
V<br />
N<br />
( θ Z )<br />
k=<br />
1<br />
( ω)<br />
( ω)<br />
⇓<br />
( ω)<br />
2 2<br />
N<br />
1 Y<br />
U<br />
N<br />
jω<br />
N ~<br />
,<br />
N<br />
= ∑ − G( e , θ)<br />
⋅<br />
2<br />
+ R<br />
2N<br />
k=<br />
1 U<br />
N<br />
H<br />
2<br />
U ( )<br />
N<br />
ω<br />
Il termine<br />
2<br />
è il rapporto segnale-rumore (SNR), che è un termine di peso: pesa di più<br />
H ( )<br />
N<br />
ω<br />
Y ( )<br />
N<br />
ω<br />
quando il disturbo è basso rispetto all’ingresso. Il termine è detto Empirical Transfer<br />
U ( )<br />
N<br />
ω<br />
Function Estimate (ETFE).<br />
In pratica V N ( N )<br />
θ,Z tiene conto della distanza tra la funzione di trasferimento reale e quella<br />
stimata, pesata con un rapporto che tiene conto del segnale d’ingresso e del rumore.<br />
N<br />
( ω)<br />
~<br />
( ω)<br />
8.2 Stima a massima verosimiglianza<br />
Consideriamo una successione di variabili aleatorie y( t ) :<br />
N<br />
Y N<br />
= [ y( 1) y( 2) L y( N)<br />
] , Y N<br />
∈R<br />
Anche Y N<br />
è una variabile aleatoria con d.d.p. data da:<br />
Otteniamo:<br />
( θ, Y ) = ( θ, ( 1) , ( 2) , K ( ))<br />
f f y y y N<br />
Y N Y<br />
N<br />
( N<br />
∈ ⊂ R ) = ∫ f ( θ )<br />
Pr Y A , Y dY<br />
N<br />
R<br />
Y N N<br />
Uno stimatore è una funzione θ $ θ $ ( )<br />
non contiene l’ingresso. Se è nota la funzione θ $ θ $ ( )<br />
Sia data la misura Y N<br />
. La probabilità Pr( Y N ) è proporzionale a f Y ( N )<br />
= Y N<br />
e, a differenza di una funzione di identificazione,<br />
= Y N<br />
, da Y N<br />
possiamo ricavare $ θ .<br />
θ, Y , che ora è una<br />
funzione deterministica della sola θ ed è detta funzione di verosimiglianza (likelihood).<br />
97
<strong>Modellistica</strong> ed Identificazione<br />
Il metodo della stima a massima verosimiglianza consiste nel calcolare:<br />
( Y ) = ( θ Y )<br />
θ $ arg max ,<br />
N<br />
f Y N<br />
θ∈D<br />
Questo metodo richiede delle informazioni (di tipo probabilistico) in più rispetto al metodo ad<br />
errore di predizione anche se spesso si fanno delle ipotesi sulle d.d.p. delle y( t ) .<br />
Ad esempio, supponiamo che le y( t ) siano gaussiane:<br />
con λ( t ) nota e θ ignoto.<br />
La d.d.p. congiunta f Y ( N )<br />
indipendenti:<br />
1 ⎧<br />
⎪<br />
f[ y( t)<br />
] = exp⎨−<br />
2πλ( t)<br />
⎩⎪<br />
[ y( t)<br />
− θ]<br />
λ( t)<br />
θ, Y è data dal prodotto delle f y( t ) perché le y( t ) sono tutte<br />
N<br />
N<br />
1 ⎧⎪<br />
fY<br />
( θ, YN<br />
) = ∏ f[ y( t)<br />
] = ∏ exp⎨−<br />
t= 1<br />
t=<br />
1 2πλ( t)<br />
⎩⎪<br />
2<br />
⎫<br />
⎪<br />
⎬<br />
⎭⎪<br />
[ ]<br />
[ y( t)<br />
− θ]<br />
λ( t)<br />
Calcoliamo θ utilizzando il metodo della stima a massima verosimiglianza:<br />
( θ Y ) f ( θ Y )<br />
arg max f , = arg max log , =<br />
θ<br />
Y N Y N<br />
θ<br />
[ y( t)<br />
− θ]<br />
λ( t)<br />
[ y( t)<br />
− θ]<br />
λ( t)<br />
2<br />
⎫⎪<br />
⎬<br />
⎭⎪<br />
[ y( t)<br />
θ]<br />
λ( t)<br />
2<br />
⎧<br />
N<br />
N<br />
N<br />
⎪ N 1 1<br />
⎫⎪<br />
= arg max⎨− log − log[ ( t)<br />
] −<br />
⎬ arg max<br />
θ<br />
θ<br />
t<br />
t<br />
t<br />
⎩⎪<br />
⎭⎪ = ⎧⎪<br />
− 1 −<br />
2π<br />
∑ λ ∑ ⎨ ∑<br />
2<br />
= 1 2 2 = 1<br />
2 = 1<br />
⎩⎪<br />
Otteniamo:<br />
θ<br />
N<br />
∑<br />
d<br />
dθ<br />
1<br />
2<br />
⎧⎪<br />
1<br />
= arg min⎨<br />
θ 2<br />
⎩⎪<br />
N<br />
∑<br />
[ y( t)<br />
− θ]<br />
λ( t)<br />
N<br />
∑<br />
t=<br />
1<br />
N<br />
t= 1 t=<br />
1<br />
⇓<br />
N<br />
1 y( t)<br />
=<br />
λ( t)<br />
∑ ⇒<br />
λ( t)<br />
t= 1 t=<br />
1<br />
2<br />
= −<br />
∑<br />
2<br />
⎫⎪<br />
⎬<br />
⎭⎪<br />
[ y( t)<br />
− θ]<br />
= 0<br />
λ( t)<br />
1<br />
$θ =<br />
N<br />
⋅<br />
1<br />
∑<br />
λ( t)<br />
Quindi, θ $ è la somma dei campioni, ciascuno scalato per la sua varianza e normalizzato per la<br />
somma degli inversi delle varianze.<br />
Se λ( t ) = λ ∀t otteniamo:<br />
t = 1<br />
N<br />
N<br />
λ 1 1<br />
$θ = ⋅ ∑ y( t) = ∑ y( t)<br />
N λ N<br />
t = 1 t = 1<br />
N<br />
∑<br />
t = 1<br />
y( t)<br />
λ( t)<br />
2<br />
⎫⎪<br />
⎬<br />
⎭⎪ =<br />
98
Identificazione<br />
Se la d.d.p. delle y( t ) non è conosciuta possiamo supporre che sia di tipo gaussiano ottenendo<br />
(in genere) dei buoni risultati.<br />
Nel caso di d.d.p. gaussiana si ottengono dei risultati simili a quelli che si ottengono con il<br />
metodo dei minimi quadrati (metodo ad errore di predizione con norma euclidea). Quindi, in<br />
questo caso, il metodo ad errore di predizione e quello della stima a massima verosimiglianza<br />
sono equivalenti.<br />
Un modello probabilistico completo, oltre a fornire la y$ ( t,<br />
θ ) , deve anche fornire la d.d.p.<br />
f y( t)<br />
t<br />
y t = g t, Z 1<br />
, θ + ε t,<br />
θ , si può dimostrare che:<br />
ε [ , ,θ]<br />
dell’errore di stima. Siccome ( ) ( t−<br />
) ( )<br />
N<br />
N<br />
[ ] ∏ ε<br />
( )<br />
( Y ) ∏ ε<br />
( ) ( Z<br />
−1<br />
)<br />
[ ]<br />
f θ, = f y t − g t, , θ , t, θ = f y t , t,<br />
θ<br />
Y N t<br />
t= 1 t=<br />
1<br />
Calcoliamo θ utilizzando il metodo della stima a massima verosimiglianza:<br />
se ε( θ)<br />
N<br />
( Y ) ( Y ) ∑ [ ( )<br />
ε ]<br />
θ$ = arg max f θ, = arg maxlog f θ, = arg max log f y t , t,<br />
θ =<br />
[ , ] log [ ( )<br />
ε<br />
, , θ]<br />
Y N Y N<br />
θ θ θ<br />
1<br />
= arg min , = arg min ,<br />
θ<br />
θ N l t<br />
t=<br />
1<br />
N<br />
N<br />
∑ l[ ε( t θ)<br />
] ∑ ε( θ)<br />
t= 1 t=<br />
1<br />
[ ]<br />
l t = − f y t t . Quindi, il metodo della stima a massima verosimiglianza è un<br />
caso generale del metodo ad errore di predizione.<br />
Se la d.d.p. f y( t)<br />
, t,θ è gaussiana a media nulla ed a varianza λ otteniamo:<br />
ε<br />
( )<br />
[ ε( t θ)<br />
]<br />
l<br />
2<br />
⎡<br />
ε<br />
k −<br />
t<br />
e<br />
λ<br />
, = − log⎢<br />
⎥ log k log λ<br />
⎣⎢<br />
λ ⎦⎥ = − + + 1<br />
2<br />
2 2 λ<br />
( t,<br />
θ ) ⎤<br />
2<br />
1 ε ( , θ)<br />
L’unico termine che dipende da θ è ε 2 ( t,θ ) . Quindi otteniamo:<br />
$ arg min 1 , arg min 1<br />
θ = θ = , θ = arg min θ ,<br />
θ N l t θ N<br />
θ<br />
N<br />
N<br />
2<br />
∑ [ ε( )] ∑ ε ( t ) VN<br />
( Z<br />
N )<br />
t= 1<br />
t=<br />
1<br />
Utilizzare il metodo ad errore di predizione con norma euclidea significa supporre che<br />
l’errore di predizione abbia una d.d.p. di tipo gaussiano.<br />
8.3 Criteri di bontà dell’identificazione<br />
Se si applica più volte un metodo di identificazione ad un sistema al quale vengono forniti<br />
ingressi diversi sicuramente si ottengono valori diversi di θ . I vari valori di θ così ottenuti<br />
dovrebbero essere tutti all’incirca uguali a θ 0<br />
, dove θ 0<br />
è il vettore dei parametri veri del<br />
sistema (che supponiamo esista per ipotesi). Il vettore θ si comporta quindi come una<br />
variabile aleatoria.<br />
Supponiamo che sia E{ θ}<br />
= θ 0<br />
: in questo caso la stima si dice non polarizzata.<br />
La matrice di covarianza è definita come:<br />
99
<strong>Modellistica</strong> ed Identificazione<br />
T<br />
{[ θ( ) θ<br />
0] [ θ( ) θ<br />
0 ] }<br />
P = Y − Y −<br />
E<br />
N N<br />
Gli elementi sulla diagonale di P sono le autovarianze dei singoli parametri. Se P è piccola<br />
(in norma) la stima è buona perché abbiamo una piccola “dispersione” dei parametri intorno<br />
a θ 0<br />
.<br />
8.3.1<br />
.1 Disuguaglianza di Cramer-Rao<br />
Nel caso monodimensionale possiamo avere il seguente andamento di θ :<br />
La varianza σ dell’errore ci dà una misura di quanto i vari θ sono vicini a θ 0<br />
:<br />
θ<br />
− θ<br />
0<br />
≤<br />
2<br />
σ<br />
Purtroppo non esiste alcun metodo con il quale la varianza σ dell’errore va a zero: esiste un<br />
limite teorico (che non può essere superato da nessuno stimatore) dato dalla disuguaglianza di<br />
Cramer-Rao.<br />
N<br />
Se Y ∈Y<br />
⊂ R , con Y indipendente da θ , allora:<br />
100<br />
N<br />
P ≥ M<br />
dove la matrice M (matrice di informazione di Fisher) è la seguente:<br />
⎡<br />
⎤<br />
M =<br />
( Y ) ( Y ) ( Y )<br />
⎣<br />
⎢<br />
⎦<br />
⎥ ⋅ ⎡ T<br />
⎧ d<br />
d<br />
⎣ ⎢<br />
⎤ ⎫<br />
⎨<br />
⎦<br />
⎥ ⎬ = − ⎧ ⎫<br />
E f<br />
f E⎨ d 2<br />
log<br />
Y<br />
θ, N<br />
log<br />
Y<br />
θ, N<br />
log fY<br />
θ,<br />
2<br />
N ⎬⎭<br />
⎩ dθ dθ ⎭ ⎩ dθ<br />
−1<br />
θ= θ θ=<br />
θ<br />
0 0<br />
La disuguaglianza di Cramer-Rao è solo una formula teorica perché deve essere calcolata in<br />
θ 0<br />
, che non conosciamo.<br />
La matrice P è una matrice di covarianza e quindi è d.p.. Si può dimostrare che anche la<br />
matrice M (e quindi anche M −1 ) è d.p.. La relazione P ≥ M<br />
−1 indica che la forma quadratica<br />
associata a P deve essere sempre maggiore o uguale di quella associata ad M −1 . Questo<br />
significa che non si possono avere sulla diagonale di P dei valori più piccoli di quelli presenti<br />
sulla diagonale di M −1 (varianze minime teoriche).
Identificazione<br />
Siccome non conosciamo θ 0<br />
la formula di sopra può essere applicata in questo modo: si<br />
griglia lo spazio contenente θ e si calcola M più volte. La matrice M ~ più grande (in norma)<br />
così ottenuta è quella che può essere usata nella disuguaglianza di Cramer-Rao (sicuramente<br />
~ −<br />
sarà P ≥ M 1<br />
).<br />
8.3.2<br />
.2 Entropia di informazione<br />
Si abbia una variabile aleatoria X con d.d.p. f ( x ) . Il valor medio di X è dato da:<br />
+∞<br />
η X<br />
= E{ X} = xf( x)<br />
dx<br />
La quantità di informazione associata al processo X è definita come:<br />
∫<br />
−∞<br />
I( X) = f( x) log f( x)<br />
dx + k<br />
mentre l’entropia di informazione è definita come:<br />
+∞<br />
∫<br />
−∞<br />
H( X) = − I( X)<br />
+ k<br />
Sia la quantità di informazione che l’entropia di informazione sono note a meno di una<br />
costante additiva.<br />
Ad esempio, consideriamo una variabile aleatoria uniformemente distribuita in [ 0,N ] :<br />
In questo caso la quantità di informazione è minima, mentre l’entropia è massima.<br />
Se abbiamo una variabile deterministica:<br />
101
<strong>Modellistica</strong> ed Identificazione<br />
l’informazione è massima mentre l’entropia è minima (sappiamo quale sarà il valore assunto<br />
dalla variabile aleatoria senza effettuare neanche un esperimento).<br />
8.3.3<br />
Distanza di informazione di Kullback-Leibler<br />
Possiamo calcolare l’informazione relativa di due distinte d.d.p. f ( x)<br />
1<br />
e f ( x)<br />
2<br />
utilizzando la<br />
formula:<br />
( ) ( ) ( )<br />
0, m<br />
= ∫ 1<br />
log<br />
2<br />
I f f f x f x dx<br />
R<br />
+∞<br />
−∞<br />
n<br />
Supponiamo che f0 ( t,Z t ) sia la d.d.p. di Z t<br />
∈R considerando i parametri in θ 0<br />
e che<br />
f ( t,Z ) sia la d.d.p. di Z t<br />
considerando i parametri relativi al modello.<br />
m<br />
t<br />
Definiamo la distanza di informazione di Kullback-Leibler nel seguente modo:<br />
f<br />
I( f0, fm<br />
) = ∫ f0( t, Z<br />
t ) log<br />
n f<br />
R<br />
0<br />
m<br />
( t,<br />
Z<br />
t )<br />
( t,<br />
Z )<br />
che indica la quantità di informazione di f m<br />
rispetto ad f 0<br />
. Quanto più I( f )<br />
tanto più l’informazione di f m<br />
è vicina a quella di f 0<br />
:<br />
( ) ( )<br />
t<br />
dZ<br />
I<br />
0<br />
= ∫ f0 t, Z<br />
t<br />
log f0<br />
t,<br />
Z<br />
t<br />
dZ<br />
t<br />
+ k<br />
n<br />
R<br />
( , ) = ( , ) log ( , )<br />
I f0 f ∫ f0<br />
t Z f t Z dZ<br />
R m t m t t<br />
n<br />
R<br />
⇓<br />
( , ) ∫ ( , ) log ( , ) ∫ ( , ) log ( , )<br />
I − I f f = f t Z f t Z dZ − f t Z f t Z dZ<br />
=<br />
0 R 0 m 0 t 0 t t 0 t m t t<br />
n<br />
n<br />
R<br />
R<br />
( t,<br />
Z<br />
t )<br />
( t,<br />
Z )<br />
f0<br />
= ∫ f0<br />
( t, Z<br />
t ) log dZ<br />
t<br />
= I f0<br />
f<br />
n f<br />
R<br />
m<br />
t<br />
t<br />
( , )<br />
m<br />
0<br />
, f m<br />
è piccola<br />
Minimizzare (rispetto ai possibili modelli ed ai possibili parametri) la distanza relativa<br />
( 0<br />
, f m ) implica massimizzare l’entropia ( 0 m )<br />
I f<br />
entropia:<br />
( )<br />
( )<br />
( )<br />
( )<br />
− I f , f + k mediante un metodo a massima<br />
[ ] [ ( )]<br />
( )<br />
θ$ = arg min I f , f = arg min I − I f , f = arg min − I f , f =<br />
0 m 0 R 0 m R 0 m<br />
M θ M θ M θ<br />
{ [ ]}<br />
= arg min ⎡ +∞<br />
⎤<br />
− , log , arg min log ,<br />
M<br />
⎣ −∞<br />
⎦<br />
⎢ ( ) ( ) ( )<br />
( θ) ∫ f0 t Z<br />
t<br />
fm t Z<br />
t<br />
dZ t ⎥ = − E<br />
0<br />
f<br />
m<br />
t Z<br />
t<br />
M ( θ) Se il modello M è fissato ( f f( t )<br />
m<br />
= θ, ,Z ), il minimo deve essere calcolato solo rispetto a θ :<br />
t<br />
{ 0[ ( θ Z )]}<br />
θ $ = arg min − E log f , t , t<br />
θ<br />
102
Identificazione<br />
Se sostituiamo al valore atteso l’osservazione ( ( θ Z )<br />
[ t ] ( θ Z<br />
t )<br />
E<br />
0<br />
log f , t, = log f , t,<br />
) otteniamo il<br />
metodo della stima a massima verosimiglianza:<br />
[ f( t Z<br />
t )] f( t Z<br />
t ) f( t Z<br />
t )<br />
θ $ = arg min − log θ , , = arg maxlog θ , , = arg max θ , ,<br />
θ θ θ<br />
Quindi, il metodo della stima a massima entropia è un caso generale di quello della stima a<br />
massima verosimiglianza.<br />
8.4 Criterio di Akaike<br />
Possiamo modificare il metodo di identificazione ad errore di predizione nel seguente modo:<br />
N<br />
$ ⎡ 1<br />
dim<br />
θ( Z t ) = arg min l( , t,<br />
θ)<br />
( θ )<br />
⎢ ∑ ε +<br />
M<br />
⎣N<br />
t=<br />
1<br />
N<br />
dim( θ)<br />
dove il termine pesa la complessità del modello (a parità di errore di predizione è<br />
N<br />
preferibile avere un modello con un numero inferiore di parametri).<br />
( θ)<br />
⎤<br />
⎥<br />
⎦<br />
8.5 Metodo della variabile strumentale<br />
Possiamo cercare di identificare i parametri di un modello in modo che l’errore di predizione<br />
( ,Z ) sia indipendente dalla sequenza Z N<br />
di ingresso ( ε( t ) ε( t)<br />
ε t<br />
N<br />
non ci sia correlazione tra ε e Z N<br />
.<br />
Definiamo ( )<br />
( ,Z ) . Se ε( t )<br />
ε t<br />
N<br />
[ ]<br />
,Z ≡ ), cioè in modo che<br />
ξ t come una sequenza derivata da Z N<br />
ed α ε( t ) come una trasformazione di<br />
,Z è indipendente da Z N<br />
vale la seguente relazione:<br />
N<br />
f<br />
N<br />
N<br />
1<br />
θ,Z = = 0<br />
N<br />
( N ) ∑ ξ( t) α[ ε( t)<br />
]<br />
t=<br />
1<br />
[ ] ( )<br />
Nel caso più semplice è ξ( t)<br />
= Z<br />
N<br />
e α ε( t)<br />
= ε t .<br />
Fatta la scelta di ξ( t ) e di α ε( t ) , il metodo della variabile strumentale consiste nel calcolare:<br />
[ ]<br />
2<br />
{ f ( Z ) 0} f ( Z )<br />
θ $ = sol θ , = = arg min θ ,<br />
N N N<br />
θ∈D<br />
N<br />
θ∈D N N<br />
(è più semplice calcolare il minimo di una funzione invece che uno zero).<br />
T<br />
Ad esempio, consideriamo il modello a regressione lineare y$ ( t,<br />
θ) = ϕ ( t)<br />
θ . In questo caso si<br />
T<br />
può porre ξ( t) = Z = ϕ( t)<br />
ed α ε( t)<br />
= ε t = y t − ϕ t θ . Si ottiene:<br />
N<br />
[ ] ( ) ( ) ( )<br />
103
<strong>Modellistica</strong> ed Identificazione<br />
$θ N<br />
⎧ 1<br />
T<br />
( )[ ( ) ( ) θ ⎫<br />
N<br />
= sol⎨<br />
∑ ϕ t y t − ϕ t ] = 0⎬<br />
⎩N<br />
t=<br />
1<br />
⎭<br />
In questo caso particolare supporre che il modello sia a regressione lineare è equivalente ad<br />
usare il metodo della variabile strumentale.<br />
Se il modello del sistema è dato da:<br />
T<br />
y( t) = ϕ ( t) + ν ( t)<br />
θ 0 0<br />
vorremmo che si avesse θ → N<br />
θ<br />
0<br />
per N → ∞ . Se ν ( )<br />
0<br />
t è correlato con ϕ( t ) allora questo<br />
non accade mai: il vettore θ N<br />
non converge al valore vero dei parametri (l’errore di<br />
predizione, che è legato alla ϕ( t ) , è correlato con il disturbo ν 0<br />
( t ) ). In questo caso la stima si<br />
dice polarizzata (biased).<br />
La ξ( t ) è detta variabile strumentale se soddisfa le seguenti proprietà:<br />
• E ξ( t) ϕ( t)<br />
≠ 0<br />
{ }<br />
{ }<br />
• E ξ( t) ν 0<br />
( t)<br />
= 0<br />
Applichiamo questo metodo al modello ARX:<br />
Sia:<br />
A( q) y( t) = B( q) u( t) + ν( t)<br />
( ) = ( )[ ( − 1) ( − 2) K ( − 1) ( − 2)<br />
K]<br />
ξ t k q x t x t u t u t<br />
dove k( q ) è un filtro e la sequenza x( t ) è generata dalla sequenza u( t ) mediante i due filtri<br />
N( q ) ed M( q ) nel seguente modo:<br />
( ) ( ) = M( q) u( t)<br />
N q x t<br />
Bisogna notare che nel vettore ξ( t ) non sono presenti le uscite del sistema.<br />
Se il sistema funziona in anello aperto:<br />
possiamo scegliere i filtri N( q ) ed ( )<br />
E{ ( t) ( t)<br />
}<br />
M q e la sequenza d’ingresso u( t ) in modo tale che sia<br />
ξ ν = 0 . In anello chiuso questo non può essere fatto (l’ingresso del sistema dipende<br />
dal disturbo ν( t ) ).<br />
Inoltre, sicuramente E{ ξ( t) ϕ( t)<br />
} ≠ 0 perché ξ( t ) e ϕ( t ) contengono delle componenti uguali,<br />
in quanto, nel caso del modello ARX, è:<br />
104
Identificazione<br />
⎛ − y( t − 1)<br />
⎞<br />
⎜ ⎟<br />
⎜ M ⎟<br />
⎜−<br />
y( t − na<br />
) ⎟<br />
ϕ( t)<br />
= ⎜ ⎟<br />
⎜ u( t −1)<br />
⎟<br />
⎜ M ⎟<br />
⎜<br />
⎝ u t<br />
⎟<br />
⎠<br />
( − n )<br />
b<br />
8.6 Applicazioni del filtro di Kalman all’identificazione<br />
ricorsiva<br />
Finora abbiamo analizzato delle tecniche di identificazione di tipo batch, nelle quali la fase di<br />
raccolta dati e quella di identificazione avvengono in due momenti diversi.<br />
Spesso può essere utile effettuare un’identificazione in linea, cioè identificare l’impianto<br />
mentre sta funzionando. I metodi di identificazione in linea si chiamano anche metodi<br />
ricorsivi.<br />
Il filtro di Kalman è per sua natura ricorsivo e può essere usato per costruire uno stimatore<br />
ricorsivo. Quindi, il filtro di Kalman può essere usato anche per il filtraggio ottimo e non solo<br />
per il controllo ottimo 1 .<br />
Le relazioni del filtro di Kalman per la stima dello stato sono le seguenti:<br />
(8.2)<br />
⎧x( t + 1) = F( t) x( t) + G( t) u( t) + w( t)<br />
⎨<br />
⎩y( t) = H( t) x( t) + ν( t)<br />
dove w( t ) è il disturbo sull’ingresso, ν( t ) è il disturbo sull’uscita e:<br />
T<br />
E{ w( t) w ( t)<br />
} = R 1<br />
( t)<br />
T<br />
E{ ν( t) ν ( t)<br />
} = R 2<br />
( t)<br />
T<br />
E{ w( t) ν ( t)<br />
} = R 12<br />
( t)<br />
La stima dello stato all’istante t + 1 può essere scritta in funzione della stima dello stato<br />
all’istante t :<br />
[ ]<br />
x$ ( t + 1) = F( t) x$ ( t) + G( t) u( t) + K( t) y( t) − H( t) x$<br />
( t)<br />
dove il termine F( t) x$ ( t)<br />
è legato al vecchio stato, il termine G( t) u( t ) è legato all’ingresso ed il<br />
termine K( t) [ y( t) − H( t) x$ ( t)<br />
], con H( t) x$ ( t) = y$<br />
( t)<br />
, è legato all’errore di predizione. Il<br />
guadagno K( t ) del filtro di Kalman è dato da:<br />
[ ][ ( ) ( ) ( ) ( )<br />
12 2 ]<br />
K( t) F( t) P( t) H T<br />
T<br />
= ( t) + R ( t)<br />
H t P t H t + R t<br />
−1<br />
1 D’altra parte, l’osservabilità è il duale della controllabilità (se si integra in avanti si effettua un controllo, se si<br />
integra all’indietro si effettua una stima).<br />
105
<strong>Modellistica</strong> ed Identificazione<br />
dove P( t ) è soluzione dell’equazione di Riccati e può essere espressa dalla seguente formula<br />
ricorsiva:<br />
[ ] ( )<br />
P( t ) P( t) K( t) H( t) P( t) H T<br />
T<br />
+ = − ( t) + R ( t)<br />
K t<br />
1<br />
2<br />
Inoltre, P( t ) è la matrice di covarianza dell’errore dopo la stima:<br />
{ }<br />
T<br />
P( t) = E e( t) e ( t)<br />
con:<br />
( ) ( ) T ( )<br />
T<br />
{ }<br />
{ } [ ( ) $ ] [ ( ) $ ]<br />
P 0 = Π = E e 0 e 0 = E x 0 − x ⋅ x 0 − x<br />
0 0 0<br />
Consideriamo un modello a regressione lineare ( $y ( t) = ϕ T ( t)<br />
θ ) e supponiamo che i parametri<br />
siano costanti ( θ( t + 1 ) = θ( t)<br />
= θ ). L’equazione di misura sia la seguente:<br />
y( t) = ϕ T ( t) θ + ν( t)<br />
che è un caso particolare della seconda delle (8.2). Poiché non è presente il disturbo w( t)<br />
sull’ingresso, otteniamo che R 1<br />
= 0 ed R 12<br />
= 0. Inoltre, poiché u( t)<br />
≡ 0, F( t ) = I, G( t ) = 0 ed<br />
T<br />
H( t) = ϕ ( t)<br />
, l’equazione del filtro di Kalman per la stima dei parametri diventa la seguente:<br />
[ ]<br />
θ $ θ $ ϕ θ $<br />
T<br />
( t + 1) = ( t) + K( t) y( t) − ( t) ( t)<br />
[ ]<br />
[ ] ( )<br />
con K( t) P( t) ( t) T<br />
−1 = ϕ ϕ ( t) P( t) ϕ( t)<br />
+ R<br />
2 e P ( t ) P ( t ) K ( t ) T ( ) P ( ) ( )<br />
T<br />
+ 1 = − ϕ t t ϕ t + R<br />
2<br />
k t .<br />
Se i parametri sono tempo-varianti si può utilizzare la stessa procedura ponendo, ad esempio,<br />
θ( t + 1) = θ( t) + w ( t)<br />
.<br />
8.7 Identificabilità<br />
Finora abbiamo sempre supposto di avere un modello usando il quale fosse possibile<br />
identificare i parametri del sistema. Ma, dato un modello M ed un sistema, possiamo sapere<br />
se il sistema è identificabile utilizzando il modello M ? La risposta a questa domanda dipende<br />
da due fattori: dal modello M scelto e dai dati di ingresso ed uscita considerati durante<br />
l’identificazione.<br />
Il nostro obiettivo è quello di ottenere un unico vettore θ dei parametri veri del sistema.<br />
Questo non succede se:<br />
• il modello non è abbastanza “ricco” come il sistema<br />
• l’insieme dei dati di ingresso e di uscita non è sufficientemente “ricco” per identificare il<br />
sistema.<br />
Diciamo che due modelli M 1 ( θ 1 ) ed M 2 ( θ 2 ) sono uguali se danno le stesse formule di<br />
predizione. I due modelli possono appartenere a classi diverse, ad esempio M 1 ( θ 1 ) può essere<br />
un modello ARX ed M 2 ( θ 2 ) può essere un modello ARMAX:<br />
106
Identificazione<br />
M 1<br />
: A( q, θ) y ( t) = B( q,<br />
θ) u( t) + ν( t)<br />
M 2<br />
: ( ) ( ) ( ) ( ) ( ) ( )<br />
A q, θ y t = B q, θ u t + C q,<br />
θ e t<br />
= poiché si<br />
ottiene in entrambi i casi la stessa formula di predizione.<br />
Se M 1<br />
ed M 2<br />
sono due classi diverse di modelli, esse sono uguali se per ogni predittore in M 1<br />
(relativo ad una qualsiasi scelta dei parametri) esiste un predittore (e quindi un vettore di<br />
parametri) in M 2<br />
che è uguale al predittore in M 1<br />
. Questo non vuol dire che le due classi<br />
sono equivalenti, ma solo che per ogni predittore in M 1<br />
esiste un predittore in M 2<br />
uguale a<br />
quello in M 1<br />
(in questo caso si può dire che M 2<br />
è più ricca di M 1<br />
: non è detto che per ogni<br />
predittore in M 2<br />
esista un predittore in M 1<br />
uguale a quello in M 2<br />
).<br />
Se θ 1<br />
= [ a K a b K b]<br />
T<br />
e θ 2<br />
= [ θ 1<br />
0 K 0]<br />
T , allora M1( θ1) M<br />
2 ( θ<br />
2 )<br />
Una classe di modelli M 1<br />
è identificabile in θ * *<br />
se, qualora M ( θ) = M ( θ )<br />
1 1<br />
(l’uguaglianza è<br />
intesa come capacità di dare lo stesso predittore), allora θ = θ<br />
* . Da questo deriva la proprietà<br />
che la predizione è unica.<br />
Una classe di modelli M 1<br />
è identificabile se è identificabile per qualunque θ ∈D .<br />
Teorema: Data la struttura di modello ( , θ) ( )<br />
( , θ)<br />
( , θ)<br />
( )<br />
( ) ( )<br />
A q y t<br />
B q C q,<br />
θ<br />
= u( t)<br />
+ e t , essa è<br />
F q D q,<br />
θ<br />
identificabile in θ * se e solo se valgono contemporaneamente le seguenti quattro condizioni:<br />
• A , B e C sono polinomi primi tra loro<br />
• B ed F sono polinomi primi tra loro<br />
• C e D sono polinomi primi tra loro<br />
• se A ≠ 1 allora anche F e D devono essere primi tra loro<br />
Tutti i polinomi sono calcolati in θ = θ<br />
* .<br />
Quindi, si ha l’unicità della soluzione θ solo quando non si hanno cancellazioni polo-zero nel<br />
modello. Se uno zero del numeratore è vicino ad uno zero del denominatore siamo vicini ad<br />
una condizione di non identificabilità. In questo caso conviene ridurre l’ordine del modello.<br />
Questo teorema è applicabile a posteriori: si calcola il valore di θ * mediante uno dei metodi<br />
visti sopra e poi si verificano le quattro condizioni.<br />
Il sistema da identificare genera in uscita una sequenza infinita ma stazionaria Z ∞<br />
(possiamo<br />
pensare che ogni Z N<br />
sia una realizzazione troncata di un processo stocastico). Se abbiamo due<br />
modelli M( θ 1 ) ed ( )<br />
informativi se la sequenza Z ∞<br />
ci permette di distinguere fra M( θ 1 ) ed ( )<br />
M θ 2<br />
(diversi per ipotesi), si dice che i dati in Z ∞<br />
sono sufficientemente<br />
M θ 2<br />
.<br />
Quindi, la sequenza Z ∞<br />
è sufficientemente informativa se, qualora<br />
1<br />
∑ E{ [ W1 ( q) − W2 ( q)<br />
] Z<br />
N<br />
( t)<br />
} = 0 (dove W1 ( q)<br />
è il predittore associato ad ( )<br />
N<br />
2<br />
è il predittore associato ad M( θ 2 ) ), allora W1 ( q) ≡ W2<br />
( q)<br />
.<br />
lim<br />
N→∞<br />
W ( q)<br />
[ ]<br />
M θ 1<br />
e<br />
La sequenza Z N<br />
può essere scritta come Z N<br />
= u( 1) y( 1) u( 2) y( 2)<br />
K oppure come<br />
Z N<br />
= [ u( 1) u( 2) K y( 1) y( 2)<br />
K ]. In questo secondo caso possiamo scrivere:<br />
[ ] ( )<br />
( )<br />
−1 −1<br />
( θ) ( θ) ( θ) ( ) ( θ)<br />
−1 −1<br />
( , θ) ( , θ) ( , θ)<br />
Z<br />
y$ t, = H q, G q, u t + I − H q,<br />
y t =<br />
[ H q G q I H q ] W ( q)<br />
= − =<br />
Z<br />
N i N<br />
107
<strong>Modellistica</strong> ed Identificazione<br />
T<br />
Se definiamo R( Z) = E{ Z N<br />
Z N }<br />
(matrice di autocorrelazione di Z N<br />
), si può dire che la<br />
sequenza Z ∞<br />
è sufficientemente informativa se la seguente matrice (matrice spettrale di Z N<br />
):<br />
Φ ( ) ( )<br />
u<br />
Φuy<br />
Φ ( ) [ ( )<br />
Z<br />
ω = ω ω<br />
F R Z ] = ⎡ ⎣ ⎢ ⎤<br />
Φ ( ) Φ ( )<br />
⎥<br />
yu<br />
ω<br />
y<br />
ω ⎦<br />
è strettamente d.p. ∀ω . Quindi, deve essere Φ ( ) Φ ( )<br />
uy<br />
ω =<br />
yu<br />
ω .<br />
Questa seconda definizione è equivalente alla prima: per calcolare la matrice Φ Z<br />
( ω ) ∀ω<br />
bisogna far tendere N a + ∞ (altrimenti non si possono ottenere tutte le frequenze).<br />
Un segnale u( t ) stazionario con spettro Φ u<br />
( ω ) è persistentemente eccitante se Φ u<br />
( ω ) > 0<br />
∀ω . Un segnale persistentemente eccitante è, ad esempio, il rumore bianco.<br />
Condizione sufficiente affinché la sequenza Z N<br />
sia sufficientemente informativa è che il<br />
segnale d’ingresso al sistema sia persistentemente eccitante.<br />
8.8 Altri metodi di identificazione di sistemi lineari<br />
stazionari<br />
Se abbiamo un sistema lineare stazionario possiamo tentare di identificare la sua risposta in<br />
frequenza 2 utilizzando un relè:<br />
A causa del relè l’uscita del sistema oscilla 3 con pulsazione ω 0<br />
e ampiezza G( j ω<br />
0 )<br />
π<br />
ω 0<br />
è la pulsazione per la quale la G( jω ) ha fase − π . Per valutare la ( )<br />
diverse da ω 0<br />
si può inserire un ritardo e − jωT<br />
∠<br />
a valle del relè, ottenendo:<br />
[ e − j<br />
( )]<br />
ω T<br />
G jω = −π ⇒ G( j )<br />
∠ ω = − π + ωT<br />
4<br />
, dove<br />
G jω per pulsazioni<br />
2 Se un sistema lineare è a fase minima il suo diagramma di fase si può ricavare direttamente conoscendo quello<br />
di ampiezza. Per questo, in genere, quando si devono effettuare delle identificazioni si considera solo l’ampiezza<br />
della risposta in frequenza e non la sua fase.<br />
G jω non è tagliata dal semiasse reale negativo del diagramma di Nyquist.<br />
3 Il sistema non oscilla se la ( )<br />
108
Identificazione<br />
In questo modo, misurando l’ampiezza dell’uscita, possiamo ottenere l’ampiezza della G( jω)<br />
quando essa ha fase − π + ωT . Variando il valore T possiamo valutare l’ampiezza della G( jω)<br />
in diversi punti.<br />
Se invece di un ritardo abbiamo un integratore riusciamo a valutare l’ampiezza della G( jω)<br />
nel punto in cui assume fase − π 2 :<br />
1 ⎤<br />
G( jω)<br />
π ⇒ ∠ G( jω)<br />
∠ ⎡ ⎣ ⎢ jω<br />
⎥ = −<br />
⎦<br />
= −<br />
π<br />
2<br />
8.9 Riferimenti<br />
• Ljung: “System Identification: Theory For The User” (1987) (base del toolbox “System<br />
Identification” di Matlab)<br />
• Söderström - Stoica: “System Identification” (1987)<br />
• Ljung - Glad: “System Modelling” (1995)<br />
• Young: “Information Theory”<br />
• Torantola: “Inverse Problems Theory”<br />
109
Funzione modulante<br />
9. FUNZIONE MODULANTE<br />
Si abbia la seguente equazione differenziale:<br />
2<br />
d y( t) ( )<br />
a dy t ( ) ( )<br />
2<br />
+<br />
1<br />
+ a<br />
0y t = b<br />
0u t<br />
dt dt<br />
che descrive il comportamento ingresso-uscita di un sistema. I parametri a 0<br />
, a 1<br />
e b 0<br />
siano<br />
ignoti. Il problema che ci poniamo è quello di calcolarli sfruttando le nostre conoscenze di<br />
u( t ) ed y( t ) in un intervallo [ t<br />
0<br />
, t<br />
1]<br />
.<br />
Abbiamo tre incognite, quindi, teoricamente, avendo tre relazioni possiamo risolvere il<br />
problema. In realtà non conosciamo le derivate prima e seconda di y( t ) .<br />
Se la relazione di sopra è vera, ovviamente è vera anche la seguente relazione:<br />
t1<br />
t 0<br />
2<br />
d y( t)<br />
dy( t)<br />
ϕ( t)<br />
a ϕ( t)<br />
ϕ( ) ( ) ϕ( ) ( )<br />
2<br />
+<br />
1<br />
+ a<br />
0<br />
t y t = b0<br />
t u t ∀ϕ( t ) e ∀t<br />
0,<br />
t<br />
1<br />
dt<br />
dt<br />
⇓<br />
2<br />
t1<br />
t1<br />
t1<br />
d y( t)<br />
dy( t)<br />
ϕ( t)<br />
dt a ϕ( t)<br />
dt a ϕ( t) y( t) dt b ϕ( t) u( t)<br />
2<br />
+<br />
1<br />
+<br />
0<br />
=<br />
0<br />
dt ∀ϕ( t ) e ∀t<br />
dt<br />
dt<br />
∫ ∫ ∫ ∫<br />
t0<br />
t0<br />
Se u( t ) è affetta da rumore, effettuando l’integrale di u( t) ϕ ( t)<br />
compensiamo gli effetti del<br />
rumore su u( t ) ( ϕ( t ) è conosciuta con precisione perché può essere scelta arbitrariamente).<br />
Applichiamo la formula di integrazione per parti:<br />
t<br />
t1<br />
∫<br />
t 0<br />
1<br />
ϕ( t) y&<br />
( t) dt = ϕ( t) y( t)<br />
− ϕ&<br />
t y t dt<br />
t 0<br />
1<br />
t<br />
[ ] ∫ ( ) ( )<br />
1<br />
1<br />
1<br />
t<br />
t<br />
t<br />
∫ [ ] ∫ ( ) ( ) [ ( ) ( )] [ ( ) ( )] ∫ ( ) ( )<br />
t 0<br />
1<br />
1<br />
1<br />
ϕ( t) && y( t) dt = ϕ( t) y& ( t)<br />
− ϕ& t y& t dt = ϕ t y& t − ϕ& t y t + ϕ&&<br />
t y t dt<br />
Possiamo scegliere la funzione ( )<br />
Il nostro integrale diventa il seguente:<br />
t1<br />
t 0<br />
t 0<br />
t<br />
t 0<br />
t0<br />
t<br />
t 0<br />
t 0<br />
ϕ t in modo che sia ϕ( t ) = ϕ( t ) = e ϕ&<br />
( t ) ϕ&<br />
( t )<br />
t1<br />
0 1<br />
0<br />
∫ ∫ ∫ ∫<br />
ϕ&&<br />
( t) y( t) dt − a ϕ&<br />
( t) y( t) dt + a ϕ( t) y( t) dt = b ϕ( t) u( t)<br />
dt<br />
t1<br />
t1<br />
1 0 0<br />
t0<br />
t0<br />
t 0<br />
t 0<br />
t<br />
t 0<br />
, t<br />
0 1<br />
= = :<br />
0 1<br />
0<br />
dove ϕ( t ) , &ϕ ( t ) e &&ϕ ( t ) sono imposti da noi e memorizzati. Possono essere utilizzate più<br />
funzioni ϕ( t ) diverse per ottenere diverse approssimazioni dei parametri del sistema.<br />
In generale si ottiene il seguente sistema algebrico:<br />
111
<strong>Modellistica</strong> ed Identificazione<br />
⎡ c c L c<br />
⎢<br />
c<br />
21<br />
O<br />
⎢<br />
⎢<br />
⎢<br />
⎣c<br />
1<br />
c<br />
11 12 1,<br />
n<br />
⎤⎡a1<br />
⎤ ⎡a1<br />
⎤ ⎡ z1<br />
⎤<br />
⎥⎢<br />
a<br />
⎥ ⎢<br />
2<br />
a<br />
⎥ ⎢<br />
⎥<br />
2<br />
z<br />
⎥<br />
⎢ ⎥<br />
2<br />
= M⎢<br />
⎥ = z = ⎢ ⎥<br />
⎥⎢<br />
M ⎥ ⎢ M ⎥ ⎢ M ⎥<br />
⎥⎢<br />
⎥ ⎢ ⎥ ⎢ ⎥<br />
⎦⎣a<br />
⎦ ⎣a<br />
⎦ ⎣z<br />
⎦<br />
m, m,<br />
n n n m<br />
dove gli a i<br />
sono i parametri ignoti del sistema.<br />
Bisogna scegliere un insieme di funzioni ϕ i<br />
( t ) tale che la matrice M risulti ben condizionata<br />
per evitare problemi numerici. Se il numero m delle ϕ i<br />
( t ) è maggiore del numero n dei<br />
coefficienti da calcolare possiamo applicare il metodo dei minimi quadrati:<br />
⎡a<br />
1 ⎤<br />
⎢<br />
a<br />
⎥<br />
T 2<br />
M M⎢<br />
⎥ = M<br />
⎢ M ⎥<br />
⎢ ⎥<br />
⎣a<br />
n ⎦<br />
T<br />
⎡ z1<br />
⎤<br />
⎢<br />
z<br />
⎥<br />
⎢<br />
2<br />
⎥<br />
⎢ M ⎥<br />
⎢ ⎥<br />
⎣z<br />
m ⎦<br />
⎡a<br />
1 ⎤<br />
⎢<br />
a<br />
⎥<br />
⇒ ⎢ ⎥ = ( M M)<br />
⎢<br />
⎢<br />
⎣<br />
2 T −1<br />
T<br />
M ⎥<br />
⎥<br />
a n<br />
⎦<br />
M z<br />
Se m > n si riescono a ridurre di molto le incertezze sui parametri del sistema.<br />
Questa tecnica è applicabile sempre (anche nel caso di sistemi non lineari), almeno finché gli<br />
integrali da calcolare non diventano troppo complessi.<br />
L’identificazione mediante questa tecnica può essere effettuata in linea (potremmo essere in<br />
grado di rilevare guasti nel sistema). Si può fare in modo che l’intervallo sul quale si effettua<br />
l’identificazione risulti ad ogni istante parzialmente sovrapposto al precedente:<br />
Si può, cioè, suddividere l’intervallo [ t<br />
0<br />
t<br />
1]<br />
nuovi coefficienti basta gettare via i dati compresi in [ t<br />
0<br />
t<br />
0<br />
T]<br />
[ t1, t1<br />
+ T]<br />
. La ϕ( t ) deve essere tale che ϕ( kT ) = 0, ( )<br />
derivazione necessario).<br />
, in N sottointervalli di durata T . Per calcolare i<br />
, + e calcolare quelli in<br />
&ϕ kT = 0 e così via (fino all’ordine di<br />
112
Riduzione del modello<br />
10. RIDUZIONE DEL MODELLO<br />
Un modello di ordine elevato può rappresentare in modo abbastanza preciso un sistema ma<br />
può causare dei problemi di calcolo. Spesso l’ordine del modello può essere ridotto, ottenendo,<br />
però, una minore accuratezza dei risultati.<br />
10.1 Matrice di controllabilità e matrice di osservabilità<br />
Sia dato un sistema tempo-discreto asintoticamente stabile:<br />
⎧x + 1<br />
= Ax + Bu<br />
⎨<br />
⎩y<br />
k<br />
= Cx<br />
k<br />
k k k<br />
Il sistema è controllabile se la matrice [ A AB A 2 B A 1 B]<br />
L n− n×<br />
mn<br />
∈R ha rango pieno<br />
( A ∈R n×<br />
n e B ∈R n×<br />
m ). Inoltre, il sistema è osservabile se la matrice<br />
[ C CA CA 2 n− L CA<br />
1 T<br />
nr × n<br />
] ∈R ha rango pieno ( C ∈R r×<br />
n ).<br />
Il sottospazio di controllabilità è dato da Im{ [ B AB A B]<br />
}<br />
osservabilità è dato da Im C T A T C T<br />
( A T<br />
)<br />
n −1<br />
C T<br />
K<br />
.<br />
{[ ]}<br />
K n−1 , mentre il sottospazio di<br />
Ma il rango di una matrice M è uguale al rango di MM T . Quindi, per studiare la<br />
controllabilità si può esaminare il rango della seguente matrice:<br />
n−1<br />
[ B AB K A B]<br />
T<br />
⎡ B ⎤<br />
⎢ T T ⎥<br />
B A<br />
n×<br />
n<br />
⋅<br />
⎢ ⎥ ∈R<br />
⎢ M ⎥<br />
⎢<br />
T T<br />
B ( A )<br />
n −1⎥<br />
⎣⎢<br />
⎦⎥<br />
che è quadrata, simmetrica, ad elementi reali e non negativi. Questa matrice ha rango pieno se<br />
il suo autovalore più piccolo è maggiore di zero (gli autovalori sono tutti reali).<br />
Analogamente, per studiare l’osservabilità si può esaminare il rango della seguente matrice:<br />
−1<br />
[ C C A K C ( A ) ]<br />
⎡ C<br />
⎢<br />
CA<br />
⋅ ⎢<br />
⎢ M<br />
⎢<br />
⎣CA<br />
T T T T T n n−1<br />
⎤<br />
⎥<br />
⎥ ∈R<br />
⎥<br />
⎥<br />
⎦<br />
Definiamo la matrice di controllabilità in N passi nel seguente modo:<br />
n×<br />
n<br />
113
<strong>Modellistica</strong> ed Identificazione<br />
( )<br />
T T T N−1<br />
T T<br />
C N −1<br />
N<br />
= BB + ABB A + K+<br />
A B B A<br />
( )<br />
N T T<br />
C<br />
N<br />
C N T<br />
T<br />
+ 1<br />
=<br />
N<br />
+ A BB A = BB + AC<br />
NA (formula ricorsiva)<br />
Analogamente definiamo la matrice di osservabilità in N passi nel seguente modo:<br />
( )<br />
T T T T<br />
O N −1 T N−1<br />
N<br />
= C C + A C CA+ K+<br />
A C CA<br />
O<br />
T T<br />
1<br />
C C+<br />
A ON<br />
A<br />
N+ =<br />
Se gli autovalori della matrice A sono tutti minori di 1 in modulo, per N crescente A N<br />
tende alla matrice nulla. Possiamo calcolare il lim C , ottenendo:<br />
N →∞<br />
N<br />
T<br />
C − ACA<br />
= BB<br />
T<br />
(C → N+ 1<br />
C<br />
N<br />
per N → ∞ )<br />
che è l’equazione di Lyapunov Q − AQA T = P se Q = C e P = BB<br />
T . La matrice C è la<br />
matrice di controllabilità del sistema.<br />
Analogamente, nel caso dell’osservabilità otteniamo la seguente relazione per N → ∞ :<br />
T<br />
T<br />
O − A OA = C C<br />
che è l’equazione di Lyapunov Q − AQA T = P se Q = O , P = BB<br />
T ed A T → A . La matrice<br />
O è la matrice di osservabilità del sistema.<br />
Possiamo decidere sulla completa controllabilità o osservabilità di un sistema usando uno degli<br />
algoritmi esistenti per la soluzione dell’equazione di Lyapunov.<br />
Se il sistema è instabile quello che ora abbiamo detto non è più valido (in questo caso si ha<br />
almeno un autovalore di A di modulo maggiore di 1). Ma il rango di A è uguale al rango di<br />
ρA (ρ > 0): tutti gli autovalori di A possono cioè essere scalati per un fattore ρ , ottenendo in<br />
ogni caso una matrice avente tutti gli autovalori in modulo minori di 1.<br />
10.2 Trasformazione bilanciata<br />
Dato un sistema tempo-discreto:<br />
⎧x + 1<br />
= Ax + Bu<br />
⎨<br />
⎩y<br />
k<br />
= Cx<br />
k<br />
k k k<br />
il legame ingresso-uscita (dato da ( z) = [ z − ]<br />
dello spazio di stato. Se z<br />
k<br />
−1<br />
G C I A B ) non dipende da una trasformazione<br />
= Tx otteniamo:<br />
k<br />
−1<br />
⎧z + 1<br />
= TAT z + TBu<br />
⎨<br />
−1<br />
⎩y<br />
k<br />
= CT zk<br />
k k k<br />
Il polinomio caratteristico di TAT −1<br />
sono uguali a quelli di A :<br />
è uguale a quello di A , quindi gli autovalori di TAT −1<br />
114
Riduzione del modello<br />
[ λI − TAT −1 ] = [ λTT −1 − TAT −1 ] = T ⋅ [ λI − A] ⋅ T −1<br />
= [ λI − A]<br />
det det det det det det<br />
Le matrici di controllabilità ed osservabilità, invece, cambiano effettuando una trasformazione<br />
dello spazio di stato ma conservano il loro rango, poiché le proprietà di controllabilità ed<br />
osservabilità sono strutturali e non dipendono da una tale trasformazione. Otteniamo:<br />
Analogamente:<br />
−<br />
C − TAT<br />
−<br />
CT A T = TBB T<br />
⇓<br />
−1 −T T CT −1<br />
−T T<br />
− AT CT A<br />
T<br />
= BB<br />
⇓<br />
T<br />
C − ACA<br />
T<br />
= BB<br />
⇓<br />
C = TCT T<br />
1 T T T T T<br />
O<br />
T T T T T<br />
− T A T OTAT = T C CT<br />
⇓<br />
T T O T − A T T T OTA = C T C<br />
⇓<br />
T<br />
T<br />
O − A OA = C C<br />
⇓<br />
−T −1<br />
O = T OT<br />
− − 1 − − 1<br />
Quindi, mentre la matrice A si trasforma per similitudine, le matrici C ed O si trasformano<br />
per controgradienza.<br />
Utilizzando un elaboratore elettronico per il calcolo di C ed O si ottengono dei risultati non<br />
precisi, che possono essere pensati come la somma algebrica del risultato reale (ideale) e di un<br />
rumore bianco (errore). Esiste una rappresentazione che minimizza l’errore di troncamento,<br />
che è quella con la quale le matrici di controllabilità e di osservabilità sono uguali e diagonali.<br />
Questa rappresentazione, detta rappresentazione bilanciata, garantisce la minima varianza del<br />
rumore sull’uscita. Se si applica alla matrice A questa trasformazione non si otterrà né la<br />
forma compagna né quella di Jordan.<br />
Spesso la rappresentazione bilanciata non viene applicata in modo completo ma<br />
indipendentemente ai vari blocchi di A , in modo da evidenziare le parti di sistema che<br />
dipendono dai vari ingressi. Cioè spesso si effettua la rappresentazione bilanciata dei vari<br />
sottosistemi del sistema iniziale ed in seguito si compongono fra di loro le rappresentazioni dei<br />
vari sottosistemi così ottenute.<br />
Se la matrice T è tale da portare il sistema in forma bilanciata si ha:<br />
La matrice CO ∈R n×<br />
n<br />
Σ = C = TCT = O = T − OT<br />
−<br />
si trasforma per similitudine:<br />
T T 1<br />
CO = = TCT T T<br />
T OT = TCO<br />
T<br />
Σ 2 − −1 −1<br />
Quindi, gli autovalori della matrice CO sono invarianti rispetto a trasformazioni dello spazio<br />
di stato. La matrice Σ 2 è diagonale e gli elementi lungo la diagonale sono gli autovalori di CO .<br />
115
<strong>Modellistica</strong> ed Identificazione<br />
Questi autovalori (che sono tutti positivi) sono legati alle matrici A , B , C e sono detti valori<br />
caratteristici del sistema. Se uno di tali valori è molto piccolo rispetto agli altri può essere<br />
eliminato. In questo modo si può ridurre l’ordine del sistema. Il modello ridotto deve essere poi<br />
confrontato (utilizzando una famiglia di segnali canonici, come le sinusoidi) con quello<br />
completo per verificare se la riduzione del modello ha portato ad un’approssimazione molto<br />
pesante, nel qual caso la riduzione non può essere effettuata.<br />
10.3 Modello ridotto nel caso di sistemi tempo-discreti<br />
Consideriamo un sistema tempo-discreto e suddividiamo il vettore x k<br />
( )<br />
x 1 p<br />
k<br />
∈R ed<br />
( 2)<br />
x k<br />
q<br />
∈R ( p q n<br />
+ = ):<br />
n<br />
∈R in due parti,<br />
⎧x A x A x B u<br />
⎨<br />
⎩x A x A x B u<br />
( 1) ( 1) ( 2)<br />
k+<br />
1<br />
=<br />
11 k<br />
+<br />
12 k<br />
+<br />
1 k<br />
( 2) ( 1) ( 2)<br />
k+<br />
1<br />
=<br />
21 k<br />
+<br />
22 k<br />
+<br />
2 k<br />
( 1) ( 2)<br />
y<br />
k<br />
= C1x k<br />
+ C2x<br />
k<br />
Usando la rappresentazione bilanciata otteniamo due matrici Σ 1<br />
e Σ 2<br />
. Supponendo che gli<br />
autovalori di Σ 2<br />
siano molto piccoli rispetto a quelli di Σ 1<br />
possiamo trascurare<br />
( )<br />
x k 2 , passando<br />
da un sistema di ordine n ad un sistema di ordine p . Si possono eliminare le variabili ( ) x k 2 ,<br />
ottenendo:<br />
A regime si ottiene:<br />
Ma eliminare la dinamica delle<br />
( 1) = ( 1)<br />
+<br />
k + 1 11 k 1 k<br />
x A x B u<br />
( 1) −1<br />
r<br />
= ( −<br />
11)<br />
1<br />
( 1) 1<br />
1( 11)<br />
x I A B u<br />
r<br />
−1<br />
r r 1 r<br />
y = C x = C I − A B u<br />
( )<br />
x k<br />
2<br />
è una semplificazione troppo “brutale” (il<br />
2<br />
comportamento del sistema non è rispettato, soprattutto in bassa frequenza): le x k<br />
sono poco<br />
importanti nella descrizione della dinamica del sistema ma non possono essere eliminate.<br />
( 2) ( )<br />
Possiamo imporre che sia x x<br />
2 ( 2)<br />
, cioè che la dinamica delle x k<br />
sia molto veloce rispetto a<br />
k+ 1<br />
=<br />
k<br />
2<br />
x k<br />
quella delle x ( 1 )<br />
k<br />
, cioè che le ( ) arrivino subito a regime (un valore caratteristico molto<br />
piccolo corrisponde ad una dinamica molto veloce):<br />
( 2) ( 1) ( 2)<br />
x<br />
k<br />
= A<br />
21x k<br />
+ A<br />
22x k<br />
+ B<br />
2u<br />
k<br />
( 2) −1<br />
( 1) −1<br />
k<br />
= ( −<br />
22 ) 21 k<br />
+ ( −<br />
22 ) 2 k<br />
x I A A x I A B u<br />
( 1) ( 1) ( 2) + 1 11<br />
12<br />
1 11 12 ( 22 )<br />
( 1) ( 2) −1<br />
( )<br />
⇓<br />
−1<br />
( 1) −1<br />
[ [ 1 12 ( 22 ) 2 ]<br />
( 1) −1<br />
[ 1 2 22 21] 2( 22 ) 2<br />
x = A x + A x + B u = A + A I − A A ⋅ x + B + A I − A B ⋅ u<br />
k k k k k k<br />
y = C x + C x = C + C I − A A ⋅ x + C I − A B u<br />
k 1 k 2 k k k<br />
( )<br />
116
Riduzione del modello<br />
− 1 ~<br />
C + C I − A A = C e<br />
− 1 ~ − 1 ~<br />
Se A<br />
11<br />
+ A12 ( I − A<br />
22 ) A<br />
21<br />
= A , B1 + A12 ( I − A<br />
22 ) B<br />
2<br />
= B ,<br />
1 2 ( 22 )<br />
1<br />
C ( I − A ) B = D<br />
2 22<br />
− ~<br />
2 , otteniamo:<br />
( ) ( )<br />
21<br />
1<br />
⎧<br />
~ 1 ~<br />
x<br />
k+ 1<br />
= Ax<br />
k<br />
+ Bu<br />
k<br />
⎨ ~ ( 1)<br />
~<br />
⎩y k<br />
= Cx<br />
k<br />
+ Du<br />
k<br />
.<br />
L’uscita del sistema di ordine ridotto dipende direttamente dall’ingresso, al contrario di quanto<br />
succedeva nel sistema iniziale.<br />
10.4 Modello ridotto nel caso di sistemi tempo-continui<br />
Consideriamo un sistema tempo-continuo e suddividiamo il vettore x ∈R n<br />
x 1<br />
∈R p ed x 2<br />
∈R q ( p + q = n ):<br />
⎧x&<br />
( ) ( ) ( ) ( )<br />
1<br />
t = A<br />
11x1 t + A12x 2<br />
t + B<br />
1u<br />
t<br />
⎨<br />
⎩x&<br />
( ) A x ( ) A x ( ) B u( )<br />
2<br />
t =<br />
21 1<br />
t +<br />
22 2<br />
t +<br />
2<br />
t<br />
y( t) = C x ( t) + C x ( t)<br />
1 1 2 2<br />
in due parti,<br />
Usando la rappresentazione bilanciata otteniamo due matrici Σ 1<br />
e Σ 2<br />
. Supponendo che gli<br />
autovalori di Σ 2<br />
siano molto piccoli rispetto a quelli di Σ 1<br />
possiamo supporre &x 2<br />
( t ) = 0 (i<br />
modi legati ad x 2<br />
( t ) sono così rapidi che arrivano subito a regime). Otteniamo:<br />
1<br />
1<br />
x ( t) = −A −<br />
−<br />
A x ( t) − A B u( t)<br />
2 22<br />
21 1 22<br />
⇓<br />
&x t = A x t + A x t + B u t = A − A<br />
1<br />
A A ⋅ x t + B − A<br />
−1<br />
A B ⋅u<br />
t<br />
( ) ( ) ( ) ( ) [ ] ( ) [ ] ( )<br />
1 11 1 12 2 1 11 12 22<br />
2<br />
21 1 1 12 22<br />
( ) ( ) ( ) [ − 1<br />
−1<br />
] ( ) ( )<br />
y t = C x t + C x t = C − C A A ⋅ x t − C A B u t<br />
1 1 2 2 1 2 22<br />
21 1 2 22<br />
2<br />
2<br />
− 1 ~<br />
Se A<br />
11<br />
− A12A 22A 21<br />
= A , B A A<br />
− 1 ~<br />
1<br />
−<br />
12 22 B<br />
2<br />
= B , C C A<br />
1<br />
1<br />
−<br />
2 22 A<br />
21<br />
= C<br />
otteniamo:<br />
− ~<br />
−1<br />
~<br />
e − C A B = D ,<br />
2 22<br />
2<br />
⎧ ( )<br />
~<br />
( )<br />
~<br />
x&<br />
( )<br />
1<br />
t = Ax1<br />
t + Bu t<br />
⎨<br />
( )<br />
~<br />
( )<br />
~<br />
⎩y t = Cx Du( )<br />
1<br />
t + t<br />
.<br />
Anche in questo caso l’uscita del sistema di ordine ridotto dipende direttamente dall’ingresso,<br />
al contrario di quanto succedeva nel sistema iniziale.<br />
117
Filtri di Laguerre<br />
11. FILTRI DI LAGUERRE<br />
11.1 Funzioni di Laguerre<br />
I polinomi di Laguerre sono delle funzioni ortonormali che costituiscono una base dello spazio<br />
delle funzioni L 2<br />
( 0,∞ ) (funzioni a quadrato sommabile nell’intervallo di tempo [ 0,∞ ]).<br />
Le funzioni di Laguerre sono date da:<br />
con p parametro arbitrario positivo e:<br />
Data una generica funzione ( )<br />
∞<br />
∑<br />
h( t) = a L ( t)<br />
.<br />
i=<br />
0<br />
i<br />
i<br />
−pt<br />
( ) = 2 ⋅ φ ( 2 )<br />
L t p e pt<br />
k<br />
e d<br />
k!<br />
dt<br />
k −t<br />
( t) = ( t e )<br />
φ k<br />
t k<br />
h t in ( )<br />
L 2<br />
La trasformata di Laplace di L ( t)<br />
k<br />
è data da:<br />
L ( s)<br />
p s − p<br />
k<br />
= 2<br />
s + p<br />
k<br />
k<br />
0,∞ esistono degli opportuni coefficienti a i<br />
per cui<br />
k<br />
( ) 2p<br />
k+<br />
1<br />
=<br />
( ) ( s + p)<br />
Quindi, la trasformata di Laplace di h( t ) è data da:<br />
∞<br />
∑<br />
H( s) = a L ( s)<br />
i=<br />
0<br />
i<br />
i<br />
⎡<br />
⎢<br />
⎣⎢<br />
( s − p)<br />
( s + p)<br />
⎤<br />
⎥<br />
⎦⎥<br />
k<br />
11.2 Analisi di sistemi tempo-continui lineari<br />
stazionari<br />
Dato un sistema lineare stazionario con risposta impulsiva h( t ) si ha:<br />
∞<br />
∑<br />
y( t) = h( t) ⊗ u( t) = a L ( t) ⊗ u( t) = a w ( t)<br />
i i<br />
i=<br />
0 i=<br />
0<br />
∞<br />
∑<br />
i<br />
i<br />
119
<strong>Modellistica</strong> ed Identificazione<br />
dove u( t ) è l’ingresso ed y( t ) è l’uscita del sistema. Nel dominio di Laplace l’equazione di<br />
sopra diventa la seguente:<br />
∞<br />
∞<br />
N<br />
∑ i i ∑ i i ∑<br />
i=<br />
0 i=<br />
0 i=<br />
0<br />
Y( s) = H( s) U( s) = a L ( s) U( s) = a W ( s) ≅ a W ( s) = W( s)<br />
a<br />
dove W( s ) è un vettore riga contenente le W ( s)<br />
i<br />
ed a è un vettore colonna contenente i<br />
parametri a i<br />
.<br />
Nel dominio del tempo W( s ) diventa W( t ) i cui elementi W ( t)<br />
i<br />
(uscite associate con le i-<br />
esime funzioni di Laguerre) sono dati da:<br />
W ( t) = L ( t) ⊗ u( t)<br />
i<br />
I filtri di Laguerre consentono di determinare in linea i coefficienti dello sviluppo in serie di<br />
Laguerre della risposta impulsiva di un sistema:<br />
i<br />
i<br />
i<br />
Un filtro di Laguerre viene realizzato in N stadi, il primo dei quali (quello per i = 0 ) ha f.d.t.<br />
1<br />
data da mentre gli altri (quelli per i > 0 ) hanno f.d.t. date da s − p<br />
s + p<br />
s + p<br />
:<br />
Indicando con a il vettore dei coefficienti effettivi e con $a ( t ) il vettore delle stime di tali<br />
coefficienti all’istante t possiamo definire l’errore di stima nel seguente modo:<br />
[ ] ( ) ( )<br />
e( t) = y ( t) − y ( t) = W( t) a$ ( t)<br />
− a = W t a~<br />
t<br />
c<br />
m<br />
120
Filtri di Laguerre<br />
dove y ( t) ( t) ( t)<br />
c<br />
= W a$ è l’uscita calcolata all’istante t e y ( t) ( t)<br />
m<br />
= W a è l’uscita misurata<br />
all’istante t .<br />
La legge di adattamento dei parametri $a ( t ) è data da:<br />
d<br />
dt<br />
$a ( t) = −p W T<br />
0<br />
( t) e( t)<br />
dove p 0<br />
è una costante di guadagno arbitraria. Otteniamo :<br />
dove W T ( t ) W( t ) = Q( t ) ≥ 0:<br />
d ~ d<br />
T<br />
T<br />
a( t) = a$ ( t) = − p W ( t) e( t) p W ( t) W( t) ~ a( t)<br />
0<br />
= −<br />
0<br />
dt dt<br />
La condizione iniziale del blocco integratore deve essere nulla.<br />
La convergenza per N → ∞ è tanto più rapida quanto più il polo p è vicino al polo più lento<br />
del sistema. Comunque la conoscenza del polo più lento non è necessaria anche se può<br />
velocizzare il processo di identificazione.<br />
La convergenza degli a i<br />
è assicurata se l’ingresso è permanentemente eccitante.<br />
11.3 Sistemi non lineari<br />
L’identificazione in linea mediante i filtri di Laguerre è giustificata teoricamente solo per<br />
sistemi lineari stazionari. Ma la rapidità di convergenza dell’algoritmo di adattamento<br />
permette ai filtri di Laguerre di inseguire con precisione il comportamento ingresso-uscita di<br />
molti sistemi non lineari, anche se in questi casi i coefficienti non si stabilizzano. Comunque<br />
non è chiaro sotto quali condizioni il comportamento ingresso-uscita di un generico sistema<br />
non lineare sia riproducibile da un banco di filtri di Laguerre con coefficienti tempo-varianti.<br />
11.4 Miglioramenti dei filtri di Laguerre<br />
I filtri di Laguerre dipendono dal parametro p , detto “polo di Laguerre”, che viene specificato<br />
dall’utente. Più p è vicino al polo lento del sistema, minore è il numero di filtri necessari per<br />
identificare il sistema, a parità di errore di approssimazione. Filtrando opportunamente i<br />
segnali di ingresso-uscita è possibile costruire reti di Laguerre con poli differenti per<br />
approssimare il sistema in differenti bande di frequenza:<br />
121
<strong>Modellistica</strong> ed Identificazione<br />
aggiungere altri filtri passabanda sotto altri banchi di filtri di Laguerre.<br />
11.5 Generalizzazioni delle funzioni di Laguerre<br />
Esistono funzioni ortonormali che generalizzano i polinomi di Laguerre, dette funzioni di<br />
Kautz:<br />
2<br />
2b 1<br />
ks<br />
k−<br />
s − b<br />
is + c<br />
Ψ 2 1<br />
( )<br />
k−<br />
s = 2 ∏ 2<br />
s + b s + c s + b s + c<br />
k<br />
k<br />
i=<br />
1<br />
2<br />
2b 1<br />
kc<br />
k−<br />
k s − bis + c<br />
Ψ 2<br />
( )<br />
k<br />
s = 2 ∏ 2<br />
s + b s + c s + b s + c<br />
k<br />
con b k<br />
≥ 0 e c k<br />
≥ 0.<br />
Se b = k<br />
p e c k<br />
= 0 si ottengono le funzioni di Laguerre.<br />
Se b = k<br />
b e c c k<br />
= si ottengono le cosiddette “funzioni di Kautz a due parametri”. Le funzioni<br />
di Kautz a due parametri sono la scelta ottima se il sistema da identificare è caratterizzato da<br />
una coppia di poli dominanti complessi coniugati:<br />
k<br />
i=<br />
1<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
122
Filtri di Laguerre<br />
123
12. CENNI SULL<br />
ENNI SULL’IDENTIFICAZIONE DEI<br />
SISTEMI NON LINEARI<br />
La dinamica di un sistema lineare &x ( t) = Ax( t) + bu( t)<br />
è data dalla somma di un’evoluzione<br />
forzata e di un’evoluzione libera. Lo stato di un sistema di questo tipo è quindi dato da una<br />
somma di esponenziali. Se il sistema è non lineare la descrizione della sua dinamica diventa<br />
più complessa 1 . Ci farebbe comodo, però, che anche in questo caso lo stato del sistema fosse<br />
descrivibile come somma di funzioni di un certo tipo.<br />
Ad esempio, se lo stato di un sistema non lineare è descritto da x( t)<br />
=<br />
N<br />
N<br />
∑<br />
i=<br />
0<br />
x<br />
i<br />
cosωit<br />
, allora<br />
x&<br />
( t)<br />
= −∑ ωixi<br />
senωit<br />
. Se il sistema originario è descritto dalla relazione x& ( t) = f( x( t) , u( t)<br />
), la<br />
i=<br />
0<br />
sua evoluzione libera è data da:<br />
N<br />
− = ⎛ N<br />
⎝ ⎜ ⎞<br />
∑ωix<br />
i<br />
sen iωt f ∑x<br />
i<br />
cosiωt⎟<br />
⎠<br />
i= 0 i=<br />
0<br />
Sviluppando la f in serie di Fourier ed uguagliando tra loro i termini isofrequenziali<br />
otteniamo un insieme di relazioni che possono permetterci di determinare i parametri del<br />
sistema.<br />
Lo scostamento tra &x ( t ) ed f x ( t) , u( t)<br />
può essere definito come:<br />
ε 2 0<br />
( )<br />
T<br />
[ x ( ) ( x T<br />
( ) ( ))] x ( ) x ( ) ( )<br />
[ ( )]<br />
= ∫ & t − f t , u t & t − f t , u t dt<br />
Si può dimostrare che x<br />
a<br />
− x < ε =<br />
del sistema.<br />
ε 2 , dove x a<br />
è lo stato approssimato ed x è lo stato reale<br />
12.1 Modelli di Hammerstein e di Wiener<br />
Un modello di sistema dato da un blocco non lineare seguito da un blocco lineare è detto<br />
modello di Hammerstein:<br />
1 La funzione descrittiva è un metodo approssimato per analizzare la dinamica di un sistema non lineare perché<br />
si considera solo la prima armonica dell’uscita. Per avere una descrizione più accurata del comportamento del<br />
sistema dovremmo considerare anche le armoniche successive alla prima. Inoltre, il metodo della funzione<br />
descrittiva è valido solo per non linearità dispari.<br />
125
<strong>Modellistica</strong> ed Identificazione<br />
Un modello di sistema dato da un blocco lineare seguito da un blocco non lineare è detto<br />
modello di Wiener:<br />
Spesso un sistema non lineare può essere modellato secondo Hammerstein o Wiener.<br />
Volendo identificare il blocco lineare e la non linearità di un sistema modellato secondo<br />
Hammerstein o Wiener si ha il problema di non poter decidere dove inserire le costanti<br />
moltiplicative (possono essere inserite nella non linearità o nel blocco lineare). In genere si<br />
parte dall’ipotesi di avere un fattore moltiplicativo uguale ad 1 nella non linearità o nel<br />
blocco lineare.<br />
126
Reti neurali<br />
13. RETI NEURALI<br />
Le reti neurali nascono nel 1940~45 ad opera di McCulloch e Pitt. Le reti neurali all’inizio<br />
erano intese come un tentativo di riproduzione del comportamento di neuroni biologici e per<br />
questo sono stati trasferiti in quest’ambito termini come neurone (unità elementare di<br />
elaborazione), assone (collegamento in uscita dal neurone) e sinapsi (connessioni tra ingressi<br />
di un neurone ed uscite di altri neuroni). Un neurone è inoltre caratterizzato da una funzione<br />
di attivazione F, da una funzione d’uscita θ , dagli ingressi x i<br />
e da un peso w i<br />
per ogni<br />
connessione in ingresso, in modo che l’uscita di un neurone può essere scritta come:<br />
{ [ ]}<br />
o ( t + 1) = θ F w ( t) , x ( t)<br />
i i i<br />
Tipicamente la funzione d’attivazione è la somma pesata degli ingressi e può presentare una<br />
soglia µ : F( w<br />
i<br />
, xi ) = ∑ w<br />
ix<br />
i<br />
− µ .<br />
i<br />
I pesi delle connessioni possono essere variati durante la fase di apprendimento: la rete può,<br />
cioè, imparare modificando i pesi delle sue connessioni, dando più importanza ad alcune e<br />
meno ad altre. La fase di apprendimento (learning phase) consiste nel presentare alla rete una<br />
serie di ingressi, detti esempi (l’insieme degli esempi viene detto training set), e nel verificare<br />
che la rete risponda correttamente (le uscite corrette devono essere conosciute). In base<br />
all’errore commesso dalla rete vengono aggiornati (in base ad una qualche regola) i pesi delle<br />
connessioni e il processo di apprendimento ricomincia. La fase di apprendimento termina<br />
quando l’errore commesso dalla rete sugli esempi è sufficientemente basso. Quando è stato<br />
presentato alla rete l’intero training set si dice che è terminata un’epoca di apprendimento.<br />
Dopo l’apprendimento la rete dovrebbe rispondere correttamente anche su un soprainsieme<br />
del trainig set, detto validation set.<br />
Questo comportamento vuole assomigliare a quello che avviene nel cervello, nel quale i<br />
collegamenti tra neuroni che comunicano poco si indeboliscono e i collegamenti tra neuroni<br />
che comunicano molto si rafforzano.<br />
I primi studi sulle reti neurali furono accompagnati da un grande ottimismo perché si pensava<br />
di aver trovato un modello matematico che riuscisse a descrivere in modo abbastanza preciso<br />
il comportamento di un cervello, e cioè di un essere pensante. Questi studi ricevettero un<br />
grande impulso quando, negli anni 1960~65, Rosenblatt ideò il percettrone e una regola per<br />
la determinazione in linea dei pesi. Ma successivamente (1969) Minsky mostrò che questo<br />
modello non era in grado di apprendere il comportamento di semplici operatori booleani, in<br />
127
<strong>Modellistica</strong> ed Identificazione<br />
particolare dello XOR. Questo causò una lunga pausa nello studio sulle reti neurali fino al<br />
1986, quando fu pubblicato un libro di Rumelhart (“P.D.P.”, Parallel Distributed Processing),<br />
che presentava un percettrone multistrato, con apprendimento dato dalla Back Propagation.<br />
Successivamente furono ideati molti altri tipi di reti, che tentano tutti, in una qualche misura,<br />
di risolvere problemi che richiedono una certa “intelligenza”, anche se è stato definitivamente<br />
abbandonato il “sogno” di poter modellare in questo modo esseri intelligenti.<br />
13.1 Percettrone<br />
Un percettrone è descrivibile nel seguente modo:<br />
n<br />
⎡<br />
⎤<br />
o( t + 1) = θ⎢∑<br />
w ( t)<br />
iξ i<br />
− µ ⎥<br />
⎣ i=<br />
1 ⎦<br />
dove la funzione d’uscita θ è di tipo binario e può essere data da θ( h) = sgn ( h)<br />
(come in<br />
figura) o da θ( h) = u( h)<br />
.<br />
Nella formula di sopra c’è una dipendenza dal tempo che può essere eliminata, ottenendo:<br />
Se µ = 0 e θ( h) = u( h)<br />
otteniamo:<br />
n<br />
⎛ ⎞<br />
o = θ⎜∑<br />
w i<br />
ξ i<br />
− µ ⎟<br />
⎝ ⎠<br />
i=<br />
1<br />
T<br />
o = u( w ξ)<br />
Il prodotto scalare tra due vettori è positivo quando l’angolo α compreso è tale che<br />
π<br />
− < α <<br />
π<br />
2 2 :<br />
2<br />
Se ξ ∈R , fissando w la rete può riconoscere tutti gli ξ che sono dalla parte di w rispetto<br />
alla retta perpendicolare a w e passante per l’origine:<br />
128
Reti neurali<br />
La parte di piano tratteggiata è quella in cui giacciono tutti i vettori ξ che possono essere<br />
riconosciuti dalla rete. Utilizzando un valore diverso da zero per la soglia µ si può traslare la<br />
retta che separa i due insiemi.<br />
L’insieme dei vettori che sono riconosciuti da un percettrone e quello dei vettori che non sono<br />
riconosciuti sono linearmente separabili, cioè sono separati da una superficie lineare ad n<br />
dimensioni ( n è la dimensione di ξ ). Una rete a due strati come il percettrone può<br />
riconoscere solo ingressi che appartengono ad un insieme che sia linearmente separabile da<br />
quello degli ingressi non riconosciuti.<br />
Un percettrone di questo tipo riesce ad imparare l’AND e l’OR ma non lo XOR:<br />
Infatti, sia nel caso dell’AND 1 :<br />
ξ 1<br />
ξ 2<br />
AND OR XOR<br />
0 0 0 0 0<br />
0 1 0 1 1<br />
1 0 0 1 1<br />
1 1 1 1 0<br />
che nel caso dell’OR:<br />
1 I cerchi pieni sono in corrispondenza dei vettori che devono essere riconosciuti dalla rete, mentre quelli vuoti<br />
sono in corrispondenza dei vettori che non devono essere riconosciuti dalla rete.<br />
129
<strong>Modellistica</strong> ed Identificazione<br />
riusciamo a trovare almeno una retta (e quindi un vettore w di pesi) che separa l’insieme<br />
degli ingressi riconosciuti dalla rete da quello degli ingressi non riconosciuti. Nel caso dello<br />
XOR, invece, tale retta non esiste:<br />
13.2 Reti a due strati<br />
Una generica rete a due strati è la seguente:<br />
o<br />
n<br />
= ⎛ w<br />
⎝ ⎜ ⎞<br />
θ ∑ ξ ⎟<br />
j=<br />
1 ⎠<br />
k jk j<br />
Ogni neurone del primo strato è collegato a tutti i neuroni del secondo strato ma non vi sono<br />
collegamenti tra neuroni appartenenti allo stesso strato.<br />
130
Reti neurali<br />
Cerchiamo una regola per determinare i pesi w jk<br />
nel caso in cui θ( h) = sgn ( h)<br />
. Dato il<br />
training set<br />
( )<br />
o i<br />
( i) ( i)<br />
N<br />
{ x , y }<br />
i<br />
vogliamo che sia ( i) ( i)<br />
min o − y<br />
=1<br />
ed è l’uscita della rete quando l’ingresso è<br />
Poichè θ( h) = sgn ( h)<br />
, la componente k-esima di<br />
W<br />
N<br />
∑<br />
i=<br />
1<br />
( )<br />
ξ = x i .<br />
( )<br />
o i ,<br />
2<br />
, dove W è la matrice dei w jk<br />
( )<br />
o k<br />
i<br />
, vale o 1 o −1:<br />
n<br />
n<br />
( i) ( i)<br />
k<br />
θ ∑ jkξ j<br />
θ ∑ jk j<br />
j= 1 ⎠ j=<br />
1<br />
o = ⎛ w w x<br />
⎝ ⎜ ⎞<br />
⎟ = ⎛ ⎝ ⎜ ⎞<br />
⎟ = ± 1<br />
⎠<br />
Inoltre, la componente k-esima di<br />
( )<br />
y i ,<br />
( )<br />
y k<br />
i<br />
, deve valere o 1 o −1 (altrimenti quell’uscita non<br />
sarebbe mai riproducibile dalla nostra rete). Possono aversi i due seguenti casi: o ed<br />
hanno segno uguale (sono uguali) o hanno segno diverso (sono diversi).<br />
( i)<br />
( i)<br />
Se o k<br />
ed y k<br />
hanno lo stesso segno i pesi della rete non devono essere modificati. Se<br />
( )<br />
y k<br />
i<br />
hanno segno diverso possiamo aggiornare i pesi nel seguente modo:<br />
w = w + ∆w<br />
jk( new) jk( old ) jk<br />
( )<br />
o k<br />
i<br />
( )<br />
o k<br />
i<br />
( )<br />
y k<br />
i<br />
ed<br />
con:<br />
( i) ( i)<br />
( k k )<br />
∆w = η y − o<br />
jk<br />
ξ<br />
j<br />
− può valere o 2 o − 2. Il learning rate η dà una misura di quanto devono<br />
essere modificati i nuovi pesi rispetto ai vecchi.<br />
Ora supponiamo che sia θ( h)<br />
= kh (funzione d’uscita lineare). Possiamo imporre θ( h)<br />
= h e<br />
dove ( i<br />
y<br />
) o<br />
( i )<br />
k k<br />
( ) ( )<br />
i<br />
i<br />
includere la costante k nei pesi. In questo caso è o = Wx (la matrice W dei pesi effettua<br />
una trasformazione dell’ingresso) e, se la W è quella che permette alla rete di riconoscere gli<br />
esempi del training set, si ha:<br />
cioè:<br />
⎡ o<br />
⎢<br />
⎢o<br />
⎢ M<br />
⎢<br />
⎣⎢<br />
o<br />
( 1)<br />
( 2)<br />
⎤ ⎡W<br />
0 0 L 0 ⎤⎡<br />
x<br />
⎥ ⎢<br />
0 W 0 L 0<br />
⎥⎢<br />
⎥<br />
x<br />
= ⎢<br />
⎥⎢<br />
⎥ ⎢<br />
O ⎥⎢<br />
M<br />
⎥ ⎢<br />
⎥⎢<br />
⎦⎥<br />
⎣ 0 0 0 L W⎦⎣⎢<br />
x<br />
( 1)<br />
( 2)<br />
⎤ ⎡ y<br />
⎥ ⎢<br />
⎥ y<br />
=<br />
⎢<br />
⎥ ⎢ M<br />
⎥ ⎢<br />
⎦⎥<br />
⎣⎢<br />
y<br />
( 1)<br />
( 2)<br />
( N )<br />
( N)<br />
( N)<br />
n<br />
( i) ( i ) ( i)<br />
k<br />
= ∑ ji j<br />
=<br />
k<br />
j=<br />
1<br />
o w x y<br />
⎤<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎦⎥<br />
N m<br />
∑∑<br />
( k k )<br />
( i ) ( i ) ( i ) ( )<br />
Definiamo la funzione di costo E( W ) = ⎜y − w x ⎟ = y − o<br />
i<br />
1<br />
2<br />
N<br />
m<br />
∑∑<br />
Possiamo calcolare il valore di W per cui si ha min E ( W)<br />
⎛<br />
n<br />
k<br />
jk j<br />
i= 1 k=<br />
1<br />
j=<br />
1<br />
i=<br />
1 k=<br />
1<br />
W<br />
⎝<br />
∑<br />
⎞<br />
⎠<br />
1<br />
2<br />
: i pesi possono essere aggiornati in<br />
modo che la direzione di discesa sia opposta rispetto al gradiente della funzione di costo:<br />
.<br />
131
<strong>Modellistica</strong> ed Identificazione<br />
∆w<br />
jk<br />
E<br />
= − η ∂ = −η − = −η δ<br />
∂w<br />
jk<br />
N<br />
( ) ( )<br />
( ) ( ) N<br />
i i i<br />
y o x ( i ) x<br />
( i<br />
∑<br />
)<br />
k k j ∑ k j<br />
i= 1 i=<br />
1<br />
( )<br />
( ) ( ) ( )<br />
i<br />
con δ k<br />
= y<br />
i i<br />
k<br />
− o<br />
k<br />
.<br />
La formula scritta sopra vale nel caso di addestramento off-line. Nel caso di addestramento online<br />
i pesi devono essere aggiornati dopo aver presentato alla rete ogni singolo esempio, con:<br />
∆w<br />
jk<br />
= −ηδ<br />
( i) ( i)<br />
k<br />
x<br />
j<br />
Se θ non è lineare ma è differenziabile possiamo definire la funzione di costo in questo modo:<br />
N m<br />
n<br />
1 ⎡<br />
( i) ( i)<br />
E( W ) = y<br />
k<br />
− ⎛ w<br />
jkx<br />
j<br />
i k ⎝ ⎜ ⎞⎤<br />
∑∑ ⎢ θ ∑ ⎟⎥<br />
2 = 1 = 1 ⎣⎢<br />
j=<br />
1 ⎠⎦⎥<br />
ottenendo:<br />
con:<br />
∆w<br />
jk<br />
= −ηδ ~<br />
( i) ( i)<br />
k<br />
x<br />
j<br />
~<br />
⎛ ⎞ ⎛<br />
( i) ( i) ( i)<br />
δ<br />
k<br />
=<br />
k<br />
−<br />
k<br />
θ δ θ<br />
⎝ j ⎠ ⎝<br />
n<br />
n<br />
( i) ( i) ( i)<br />
( y o ) ' ⎜∑<br />
w<br />
jkx ⎟<br />
j<br />
=<br />
k<br />
' ⎜∑<br />
w<br />
jkx<br />
j<br />
= 1 j=<br />
1<br />
Le funzioni θ e θ' sono note perché sono imposte da noi.<br />
1<br />
Se θ è una sigmoide ( θ( h)<br />
= +<br />
−<br />
):<br />
1 e kh<br />
⎞<br />
⎟<br />
⎠<br />
si può dimostrare che:<br />
∂θ<br />
θ'= = kθ( 1−<br />
θ)<br />
∂h<br />
La sigmoide è in pratica una funzione binaria approssimata con la proprietà di essere<br />
infinitamente differenziabile e di avere comportamento lineare per h ≅ 0 . Invece la seguente<br />
funzione, pur essendo un’approssimazione del gradino, non è differenziabile:<br />
132
Reti neurali<br />
13.3 Reti multistrato<br />
In una rete multistrato ogni neurone di uno strato è collegato a tutti i neuroni dello strato<br />
successivo ma non vi sono collegamenti tra neuroni appartenenti allo stesso strato. Tutti gli<br />
strati tranne il primo (detto strato d’ingresso) e l’ultimo (detto strato d’uscita) sono detti strati<br />
nascosti.<br />
L’uscita di uno strato può essere calcolata conoscendo l’uscita dello strato precedente:<br />
n<br />
( s )<br />
o<br />
ls<br />
= ⎛ w<br />
jl<br />
o<br />
j( s )<br />
⎝ ⎜ ⎞<br />
−1<br />
θ ∑ ⎟<br />
−1<br />
j=<br />
1 ⎠<br />
dove o ls<br />
è l’ l -esima componente dell’uscita dell’ s -esimo strato, o j( s−1 ) è la j-esima<br />
( s−1)<br />
componente dell’uscita dell’ ( s − 1)<br />
-esimo strato ed i w jl<br />
sono i pesi dei collegamenti tra<br />
l’ ( s − 1)<br />
-esimo strato e l’ s -esimo strato.<br />
Avendo più di due strati si riescono ad ottenere superfici non lineari di separazione e quindi si<br />
riescono risolvere più problemi rispetto a quelli risolvibili con reti a due soli strati.<br />
Ad esempio, consideriamo la seguente rete:<br />
dove i numeri in corrispondenza dei neuroni sono i valori della soglia µ per le funzioni<br />
d’attivazione ed i numeri in corrispondenza dei collegamenti sono i valori dei pesi dei<br />
collegamenti stessi. La funzione d’uscita sia:<br />
Questa rete riesce ad imparare lo XOR:<br />
( ) θ h =<br />
⎧1 se x > 0<br />
⎨<br />
⎩0 se x ≤ 0<br />
133
<strong>Modellistica</strong> ed Identificazione<br />
x 1<br />
x 2<br />
y XOR<br />
0 0 0 0<br />
0 1 1 1<br />
1 0 1 1<br />
1 1 0 0<br />
Questa non è la soluzione unica al problema (esistono valori diversi delle soglie e dei pesi con<br />
i quali la rete simula ancora il comportamento dello XOR).<br />
Una rete avente i neuroni disposti in modo opportuno e avente delle funzioni d’attivazione e<br />
d’uscita opportune riesce a risolvere tutti i problemi che riesce a risolvere una macchina di<br />
Turing.<br />
Il tipo di funzioni che si riescono ad approssimare con una rete a più strati dipende dalla<br />
funzione d’uscita, dalla funzione d’attivazione, dal numero di strati nascosti e dal training set.<br />
Ad esempio, se θ è lineare si possono solo approssimare funzioni lineari, indipendentemente<br />
dal numero di strati nascosti.<br />
13.4 Back Propagation<br />
Il problema che si ha con le reti a più di due strati è quello dell’aggiornamento dei pesi,<br />
perché non si conoscono le uscite desiderate degli strati nascosti. Questo problema viene<br />
risolto utilizzando la Back Propagation, che consiste nel riportare indietro (verso gli strati<br />
nascosti) l’errore sullo strato d’uscita.<br />
Consideriamo una rete a tre strati (avente quindi un solo strato nascosto):<br />
Siano ξ l’ingresso della rete, v l’uscita dello strato nascosto, o l’uscita della rete, w ih<br />
i pesi<br />
delle connessioni tra i primi due strati e u hk<br />
i pesi delle connessioni tra gli ultimi due strati.<br />
Nelle espressioni che seguono useremo gli indici j , h e k per individuare i neuroni degli<br />
strati d’ingresso, nascosto e d’uscita rispettivamente. Inoltre, l’insieme di addestramento sia<br />
dato da<br />
( i) ( i)<br />
N<br />
{ x , y } . i=1 L’uscita del neurone h -esimo dello strato nascosto relativa all’ingresso<br />
v<br />
n<br />
( i) ( i)<br />
h<br />
θ ∑ w<br />
jhx<br />
j<br />
j=<br />
1<br />
= ⎛ ⎝ ⎜ ⎞<br />
⎟<br />
⎠<br />
( )<br />
x i<br />
è data da:<br />
mentre l’uscita del neurone k -esimo dello strato d’uscita relativa all’ingresso<br />
( )<br />
x i<br />
è data da:<br />
134
Reti neurali<br />
La funzione di costo da minimizzare sia:<br />
o = ⎛ u v u w x<br />
⎝ ⎜ ⎞ ⎡ ⎛<br />
⎣⎢<br />
⎝<br />
p<br />
p<br />
n<br />
( i) ( i) ( i)<br />
k<br />
θ ∑ hk h<br />
⎟ = θ⎢∑<br />
hkθ⎜∑<br />
jh j<br />
h= 1 ⎠ h=<br />
1 j=<br />
1<br />
1<br />
E = y − o<br />
2<br />
N m<br />
( i) ( )<br />
( i 2<br />
∑∑ k k )<br />
i=<br />
1 k=<br />
1<br />
Le variazioni dei pesi sui collegamenti tra lo strato nascosto e quello d’uscita sono date da:<br />
con:<br />
∆u<br />
hk<br />
E<br />
= −η ∂<br />
∂u<br />
hk<br />
⎞⎤<br />
⎟⎥<br />
⎠⎦⎥<br />
⇓<br />
N<br />
p<br />
∂E<br />
( i ) ( i)<br />
⎡<br />
( i ) ⎤ ( )<br />
= −∑<br />
( y<br />
k<br />
− o<br />
k ) θ'<br />
u<br />
hkv h<br />
v<br />
i<br />
h<br />
∂u<br />
⎢∑<br />
⎥<br />
hk i=<br />
1<br />
⎣ h=<br />
1 ⎦<br />
⇓<br />
N<br />
p<br />
N<br />
( ) ( )<br />
⎡ ⎤<br />
i i<br />
i<br />
∆u<br />
hk<br />
y<br />
k<br />
o<br />
k<br />
u<br />
hk<br />
v<br />
h<br />
v i<br />
i<br />
= η∑<br />
− θ'<br />
⎢∑<br />
⎥ h<br />
= η∑<br />
δ<br />
k<br />
v<br />
i= 1 ⎣ h=<br />
1 ⎦<br />
i=<br />
1<br />
( ) ( ) ( ) ( i)<br />
( )<br />
δ<br />
( i)<br />
( y o ) θ'<br />
⎢∑<br />
u<br />
hk<br />
v<br />
h<br />
( i) ( i) ( i)<br />
k<br />
=<br />
k<br />
−<br />
k<br />
Le variazioni dei pesi sui collegamenti tra lo strato d’ingresso e quello nascosto sono calcolate<br />
riportando indietro l’errore sullo strato d’uscita:<br />
∆w<br />
jh<br />
⎡<br />
⎣<br />
p<br />
h=<br />
1<br />
E<br />
= −η ∂<br />
∂w<br />
⇓<br />
N<br />
( i ) N<br />
p<br />
n<br />
∂E<br />
∂E<br />
∂v<br />
h<br />
( ) ( )<br />
⎡<br />
( )<br />
⎤ ⎡ ⎤<br />
i<br />
( ) ( )<br />
( )<br />
( y o i<br />
) θ u v i<br />
i<br />
= ∑ = − u θ w x x<br />
i ∑ k<br />
−<br />
k<br />
'<br />
i<br />
hk h hk jh j j<br />
∂w<br />
jh i ∂v<br />
∂w<br />
⎢∑ ⎥ ' ⎢∑<br />
⎥<br />
= 1 h jh i=<br />
1<br />
⎣ h= 1 ⎦ ⎣ j=<br />
1 ⎦<br />
⇓<br />
N<br />
p<br />
n<br />
N<br />
n<br />
( ) ( )<br />
⎡ ⎤ ⎡ ⎤<br />
⎡ ⎤<br />
i i<br />
i<br />
i i<br />
i<br />
i<br />
∆w<br />
jh<br />
= η∑<br />
y<br />
k<br />
− o<br />
k<br />
θ' ⎢∑<br />
u<br />
hk<br />
v<br />
h ⎥u hkθ' ⎢∑<br />
w<br />
jhx j ⎥ x<br />
j<br />
= η∑<br />
δ<br />
k<br />
θ'<br />
⎢∑<br />
w<br />
jhx j ⎥x<br />
i= 1 ⎣ h= 1 ⎦ ⎣ j=<br />
1 ⎦<br />
i=<br />
1 ⎣ j=<br />
1 ⎦<br />
( ) ( ) ( ) ( ) ( ) ( i)<br />
( )<br />
jh<br />
⎤<br />
⎥<br />
⎦<br />
h<br />
j<br />
13.5 Miglioramenti della Back Propagation<br />
È possibile introdurre il momentum α , che fa in modo che la nuova direzione di discesa tenga<br />
conto della vecchia. Infatti, se η è grande si può procedere a “zig-zag” e questo può causare<br />
una velocità di convergenza molto bassa:<br />
135
<strong>Modellistica</strong> ed Identificazione<br />
Se l’apprendimento è con momentum, l’aggiornamento dei pesi avviene mediante la seguente<br />
relazione:<br />
E<br />
∆w ( t ) ( )<br />
ij<br />
+ 1 = − η ∂ + α∆w<br />
ij<br />
t<br />
∂w<br />
ij<br />
La seguente figura si riferisce al caso in cui α = 1 2 :<br />
Inoltre, un altro problema che si può avere è quello di convergere verso un minimo locale. Per<br />
evitare questo problema si può addestrare la rete con degli algoritmi che facciano uso di<br />
metodi di minimizzazione globale come gli algoritmi genetici o quelli di simulated annealing.<br />
13.6 Utilizzo delle reti neurali per il controllo di<br />
sistemi<br />
Le reti neurali possono essere usate anche per il controllo e non solo per l’identificazione di<br />
sistemi. Siccome le reti neurali hanno la capacità di apprendere è possibile utilizzarle per il<br />
controllo di sistemi non lineari il cui comportamento non è conosciuto con precisione. In<br />
questo caso non è possibile addestrare la rete con degli esempi, che presuppongono la<br />
136
Reti neurali<br />
conoscenza delle corrispondenze ingresso-uscita del sistema. Può essere usato uno schema del<br />
seguente tipo, nel quale il critico “premia” o “punisce” la rete a seconda che l’uscita del<br />
sistema sia vicina o meno a quella desiderata:<br />
Il critico agisce sull’uscita del sistema e non sull’uscita della rete, come avviene nel tipo<br />
d’addestramento utilizzato per l’identificazione ed illustrato sopra.<br />
137
APPENDICI
A. INVERSIONE DI MATRICI DI GRANDI<br />
DIMENSIONI<br />
⎡<br />
Si abbia una matrice A B ⎤<br />
⎢<br />
⎣C<br />
D<br />
⎥ , con A ∈R p×<br />
p , B ∈R p×<br />
q , C ∈R q×<br />
p , D ∈R q×<br />
q . Affinchè<br />
⎦<br />
⎡X<br />
Y⎤<br />
⎡A<br />
B⎤<br />
⎢<br />
⎣U<br />
V<br />
⎥ , con X ∈R p×<br />
p , Y ∈R p×<br />
q , U ∈R q×<br />
p , V ∈R q×<br />
q , sia l’inversa di ⎢<br />
⎦<br />
⎣C<br />
D<br />
⎥ deve essere:<br />
⎦<br />
⎡A<br />
⎢<br />
⎣C<br />
B⎤<br />
X<br />
D<br />
⎥ ⎡ ⎦⎣ ⎢ U<br />
Y⎤<br />
I<br />
V<br />
⎥ = ⎡<br />
⎦ ⎣ ⎢ 0<br />
0⎤<br />
I<br />
⎥<br />
⎦<br />
⎡X<br />
⎢<br />
⎣U<br />
Y⎤<br />
A<br />
V<br />
⎥ ⎡ ⎦⎣ ⎢ C<br />
B⎤<br />
I<br />
D<br />
⎥ = ⎡<br />
⎦ ⎣ ⎢ 0<br />
0⎤<br />
I<br />
⎥<br />
⎦<br />
da cui si ottiene:<br />
⎧AX + BU = I<br />
⎪AY<br />
+ BV = 0<br />
⎨<br />
⎪CX<br />
+ DU = 0<br />
⎩<br />
⎪CY + DV = I<br />
⎧XA + YC = I<br />
⎪XB<br />
+ YD = 0<br />
⎨<br />
⎪UA<br />
+ VC = 0<br />
⎩<br />
⎪UB + VD = I<br />
Possiamo scrivere le sottomatrici X , Y , U e V in funzione delle sottomatrici A , B , C e D :<br />
−1<br />
U = −VCA<br />
Y = −A −1 BV<br />
X = A 1<br />
− YCA 1<br />
= A 1<br />
+ A 1<br />
BVCA 1<br />
= A 1<br />
− A 1<br />
BU<br />
V = D 1 −1<br />
− D CY<br />
⇓<br />
Y = − A − 1<br />
BD − 1<br />
+ A − 1<br />
BD − 1<br />
CY<br />
Y = − I − A − BD − − − −<br />
C A BD<br />
⇒ ( )<br />
( )<br />
( )<br />
1 1 1 1 1<br />
X = A − YCA = A + I − A BD C A BD CA<br />
−1 −1 −1 −1 −1 −1 −1 −1 −1<br />
V = D + D C⋅ I − A BD C A BD<br />
−1 −1 −1 −1 −1 −1 −1<br />
141
Appendici<br />
( )<br />
U = −D CA − D C⋅ I − A BD C A BD CA<br />
−1 −1 −1 −1 −1 −1 −1 −1 −1<br />
In questo modo è possibile invertire matrici di grandi dimensioni effettuando inversioni di<br />
matrici di dimensioni minori.<br />
142
Metodi di integrazione numerica<br />
B. METODI DI INTEGRAZIONE NUMERICA<br />
In questa appendice vedremo alcuni metodi di integrazione numerica di equazioni<br />
differenziali del tipo:<br />
&x = f( x)<br />
Nei prossimi paragrafi useremo la notazione x x( k t)<br />
k<br />
= ∆ , dove ∆t = h è il passo di<br />
campionamento.<br />
Un caso particolare di equazione differenziale è &x = −λ x , che descrive la dinamica di un<br />
sistema SISO. Se il sistema è stabile allora λ > 0 ( λ è il polo del sistema).<br />
B.1 Metodo di Eulero<br />
Possiamo utilizzare l’approssimazione di Eulero:<br />
dove:<br />
x<br />
k +1<br />
− x<br />
k<br />
&x ≅<br />
∆ t<br />
xk + 1<br />
= xk + hf ( x<br />
j )<br />
⎧k<br />
j = ⎨<br />
⎩k<br />
+ 1<br />
(metodo esplicito)<br />
(metodo implicito)<br />
B.1.1<br />
Metodo esplicito<br />
Nel caso particolare del sistema SISO di sopra si ottiene la seguente equazione alle differenze<br />
semplice:<br />
x x h x ( h )<br />
+ 1<br />
= − λ = 1−<br />
λ x<br />
k k k k<br />
Quest’equazione è stabile quando 1− hλ < 1. Siccome h > 0 e λ > 0 , allora deve essere<br />
hλ < 2 ⇒ h < 2 λ<br />
(passo di campionamento). Quindi, se λ è piccolo il sistema è lento e il<br />
passo di campionamento può essere grande; se λ è grande il sistema è veloce ed il passo di<br />
campionamento deve essere piccolo. Più è piccolo il passo di campionamento più il metodo è<br />
lento.<br />
Il metodo di Eulero esplicito è presente in Simulink con il nome di metodo di Eulero.<br />
143
Appendici<br />
B.1.2<br />
.2 Metodo implicito<br />
Nel caso particolare del sistema SISO di sopra si ottiene:<br />
La condizione di stabilità è:<br />
x = x − hλx<br />
k+ 1 k k+<br />
1<br />
⇓<br />
( + hλ)<br />
x = x<br />
1<br />
k+<br />
1<br />
⇓<br />
1<br />
x<br />
h<br />
x<br />
k+ 1<br />
=<br />
1 + λ<br />
k<br />
k<br />
1<br />
1+<br />
hλ<br />
1<br />
= < 1<br />
1 + hλ<br />
Questa disequazione è soddisfatta sempre perché h > 0 e λ > 0 . Anche se il sistema originario<br />
è instabile (quindi λ < 0) possiamo trovare dei valori di h con i quali il metodo di<br />
integrazione è stabile.<br />
Il metodo di Eulero implicito ci permette di scegliere il passo di campionamento che<br />
preferiamo. Questo, però, vale solo per la stabilità del metodo di integrazione e non per<br />
l’approssimazione che otteniamo: se il passo è grande la stabilità del metodo è garantita ma si<br />
ottiene un errore grande.<br />
Questa caratteristica del metodo implicito ci dovrebbe far preferire quest’ultimo al metodo<br />
esplicito. Nel caso generale, però, otteniamo la seguente equazione:<br />
x = x − f x<br />
( )<br />
k + 1 k k + 1<br />
⇓<br />
( )<br />
x + hf x = x<br />
k+ 1 k+<br />
1 k<br />
cioè con il metodo implicito ad ogni passo dobbiamo risolvere un’equazione non lineare in<br />
x k+1<br />
1<br />
.<br />
B.2 Metodi a predittore-correttore<br />
Con il metodo di Eulero possiamo ottenere il seguente inconveniente:<br />
1 Per calcolare lo zero di un’equazione si può applicare un metodo di minimizzazione.<br />
144
Metodi di integrazione numerica<br />
Se da un punto in poi la derivata di x( t ) cresce sempre, da quel punto otteniamo una funzione<br />
approssimata $x ( t ) cui derivata è sempre minore di quella della funzione vera. Praticamente si<br />
ottiene che la $x ( t ) si allontana sempre di più dalla x( t ) .<br />
I metodi a predittore-correttore guardano il passo in avanti come una predizione e cercano di<br />
effettuare una correzione:<br />
predizione: $x x hf( x )<br />
correzione:<br />
x<br />
k+<br />
1<br />
+<br />
= +<br />
k 1 k k<br />
h f x<br />
= x +<br />
k<br />
[ ( $<br />
k+<br />
1) + f( x<br />
k )]<br />
La predizione può essere esplicita, come nel nostro caso, o implicita, cioè basata sul metodo di<br />
Eulero implicito 2 .<br />
Nella correzione possiamo avere un correttore esplicito ( f( x k ) ) come nel nostro caso oppure<br />
un correttore implicito ( ( )). Il correttore implicito, però, presenta più problemi di<br />
f x k + 1<br />
calcolo di quello esplicito perché ad ogni passo bisogna risolvere un’equazione non lineare in<br />
x k+1<br />
.<br />
Con i metodi a predittore-correttore bisogna effettuare due valutazioni in più rispetto ai<br />
metodi di Eulero.<br />
B.2.1<br />
.1 Metodo di Adams-Bashfort<br />
• predizione esplicita:<br />
2<br />
[ ( ) ( ) ( ) ( )]<br />
x = A x + A x + A x + h B f x + B f x + B f x + B f x<br />
k+ 1 0 k 1 k−1 2 k−2 0 k 1 k−1 2 k−2 3 k−3<br />
(le f vengono conservate in memoria per quattro passi e quindi non vengono calcolate tutte<br />
ad ogni passo)<br />
• correzione esplicita:<br />
[ ( $ ) ( ) ( ) ( )]<br />
x = A x + A x + A x + h B f x + B f x + B f x + B f x<br />
k+ 1 0 k 1 k−1 2 k− 2 0 k+ 1 1 k 2 k−1 3 k−2<br />
2 Si possono effettuare predizioni e correzioni di tipo quadratico o cubico, che si basano sui due o tre passi<br />
precedenti quello attuale.<br />
145
Appendici<br />
Questo metodo è esatto per polinomi del quarto ordine.<br />
Se la funzione è regolare, l’errore che si commette è dell’ordine di O( h 5 )<br />
l’errore era dell’ordine di O( h 2 ) ).<br />
Questo metodo non funziona affatto bene per funzioni irregolari, come i gradini.<br />
(nei metodi di Eulero<br />
B.3 Metodi di Runge-Kutta<br />
I metodi di Runge-Kutta “vedono” come varia la derivata all’interno del passo di integrazione:<br />
( n n )<br />
k<br />
1<br />
= hf t , x<br />
⎛<br />
k = hf⎜<br />
t h<br />
n<br />
+ , x<br />
⎝<br />
2 2 n+<br />
k 1<br />
2<br />
( n h<br />
,<br />
n k )<br />
k hf t x<br />
3<br />
=<br />
+ + 2<br />
1<br />
xk<br />
+<br />
= xk<br />
+ k + k + k<br />
3<br />
⎞<br />
⎟<br />
⎠<br />
( )<br />
1 1 2 3<br />
In questo modo si effettuano più calcoli però, a parità di passo di integrazione, questi metodi<br />
sono più precisi dei precedenti.<br />
Quello visto è il metodo di Runge-Kutta a tre passi (R-K 3). Esistono anche metodi di Runge-<br />
Kutta a quattro o cinque passi (vengono presi uno o due punti in più all’interno del passo).<br />
Anche i metodi di Eulero espliciti possono prevedere il calcolo della derivata in uno o più<br />
punti all’interno del passo di integrazione. I metodi di Eulero espliciti che sfruttano questa<br />
tecnica usano le Forward Differentiation Formulae (FDF: formule di differenziazione in<br />
avanti). I metodi di Eulero impliciti che sfruttano questa tecnica usano le Backward<br />
Differentiation Formulae (BDF: formule di differenziazione a ritroso). Il metodo di Gear è un<br />
metodo implicito di questo tipo.<br />
B.4 Sistemi “stiff”<br />
I sistemi stiff sono molto diffusi e sono caratterizzati dall’avere costanti di tempo molto diverse<br />
tra di loro. Ad esempio, un sistema di questo tipo può essere un motore in continua, con<br />
costante di tempo elettrica molto minore della costante di tempo meccanica.<br />
146
Metodi di integrazione numerica<br />
Si abbia un sistema con il seguente luogo delle radici:<br />
6<br />
4<br />
asse immaginario<br />
2<br />
0<br />
-2<br />
-4<br />
-6<br />
-8 -6 -4 -2 0 2 4 6 8<br />
asse reale<br />
Abbiamo due poli instabili. Possiamo inserire due zeri in −1 ottenendo il seguente luogo delle<br />
radici:<br />
6<br />
4<br />
asse immaginario<br />
2<br />
0<br />
-2<br />
-4<br />
-6<br />
-8 -6 -4 -2 0 2 4 6 8<br />
asse reale<br />
Se si effettua una simulazione il sistema risulta instabile perché c’è una costante di tempo che<br />
va a zero (quella relativa al polo in − 5). Bisogna utilizzare un passo di integrazione in modo<br />
che sia h < 2 λ<br />
: se il valore di λ è molto grande, allora il valore di h deve essere molto<br />
piccolo.<br />
I sistemi stiff spesso degenerano in equazioni differenziali e algebriche accoppiate (sistemi<br />
DAE: Differential Algebraic Equations) che contengono equazioni di vincolo. Infatti, un<br />
sistema stiff può essere scritto nel seguente modo:<br />
&q = Mq + Gλ<br />
ελ & = Fq<br />
con ε → 0 . Al limite per ε → 0 i sistemi stiff diventano sistemi DAE. I sistemi stiff si possono<br />
simulare solo con il metodo di Gear.<br />
147
Appendici<br />
B.5 Metodi a passo variabile<br />
Finora abbiamo visto solo metodi a passo di integrazione fisso.<br />
Per i metodi di integrazione che richiedono tempi di calcolo molto elevati si cerca di<br />
minimizzare il tempo di calcolo senza perdere in precisione mediante il cambiamento di passo:<br />
In realtà tutti i metodi di integrazione hanno al loro interno un “meccanismo” che varia il<br />
passo di integrazione (entro i limiti specificati) effettuando un confronto tra le due derivare<br />
successive della funzione.<br />
Per una rampa con saturazione molto ripida possiamo ottenere la seguente approssimazione:<br />
Non esiste alcuna dimostrazione generale sulla convergenza dei metodi di integrazione a passo<br />
variabile. D’altra parte, se il passo di integrazione viene aumentato molto si potrebbe andare<br />
in una regione di instabilità del metodo.<br />
Tutti i metodi di integrazione numerica hanno anche un controllo sull’errore. In genere si può<br />
specificare una tolleranza per cercare di ridurre l’errore (se la tolleranza è grande il metodo<br />
risulterà molto veloce).<br />
148
Metodi di integrazione numerica<br />
B.6 Tabella riassuntiva<br />
VELOCITA’ PRECISIONE VELOCITA’ PRECISIONE<br />
EULERO * * * * * * * * * * *<br />
R-K 3 * * * * * * * * * * *<br />
R-K 5 * * * * * * * * * *<br />
ADAMS * * * * * * * * *<br />
GEAR * * * * * * * * * * * * *<br />
* SCARSO<br />
* * SUFFICIENTE<br />
* * * BUONO<br />
* * * * OTTIMO<br />
Le prime due colonne della tabella si riferiscono a sistemi “normali” (non stiff), mentre le altre<br />
due colonne si riferiscono a sistemi stiff. La velocità è intesa a parità di passo di<br />
campionamento.<br />
Simulink ha il metodo di Adams/Gear con il quale automaticamente si adotta il metodo di<br />
Adams o quello di Gear a seconda del sistema in questione.<br />
149
Teoria della regolarizzazione<br />
C. TEORIA DELLA REGOLARIZZAZIONE<br />
C.1 Problemi mal posti<br />
I problemi mal posti (ill-posed) sono problemi la cui soluzione può non esistere, non essere<br />
unica o essere instabile.<br />
Ad esempio, un problema mal posto è quello di trovare una funzione che interpoli una serie di<br />
punti, perché di tali funzioni ne esistono infinite 1 . Questo è proprio il problema che viene<br />
affrontato con le reti neurali, per le quali la serie di punti da interpolare è data dal training set<br />
{ x , y }<br />
N<br />
.<br />
i i i=1 Un altro problema mal posto è quello di calcolare la funzione x ∈ X tale che Ax = y , dove<br />
y ∈ Y è una funzione data ed A è un operatore lineare 2 .<br />
Per risolvere i problemi mal posti si può usare la teoria della regolarizzazione, dovuta a<br />
Tikhonov (1960). In base a questa teoria il problema mal posto viene risolto riportandolo ad<br />
un altro problema che è regolare e che quindi può essere risolto. Nell’applicazione di questa<br />
teoria è fondamentale avere delle conoscenze a priori del problema perché vengono introdotti<br />
dei vincoli che si basano sulle nostre conoscenze del problema.<br />
Con la teoria della regolarizzazione il problema di calcolare la funzione x<br />
Ax = y può essere regolarizzato ponendo:<br />
J( x) = Ax − y + λ R( x)<br />
2 2<br />
∈ X tale che<br />
dove R è un operatore funzionale detto regolarizzatore, λ è detto parametro di<br />
regolarizzazione e la norma è effettuata su spazi funzionali. La soluzione può essere calcolata<br />
nel seguente modo:<br />
x = arg minJ( x)<br />
x∈X<br />
Se λ cresce decresce la nostra fiducia nei dati e cresce quella sulle nostre conoscenze a priori<br />
del problema. Quindi, le soluzioni x λ<br />
al problema dipendono da λ . Si può dimostrare che, se<br />
x<br />
* ∈ X è tale che Ax * = y , allora x → λ<br />
x<br />
* per λ → 0 .<br />
1 Non è mal posto il problema di trovare la funzione a norma minima che interpoli una serie di punti, perché<br />
questo problema ha una soluzione unica.<br />
2 Non è mal posto il problema di calcolare la funzione y tale che y = Ax : un problema può essere mal posto o<br />
meno a seconda della “direzione” verso la quale lo si risolve.<br />
151
Appendici<br />
C.2 Applicazione al caso dell’approssimazione<br />
funzionale<br />
La teoria della regolarizzazione può essere applicata anche al problema dell’approssimazione<br />
funzionale.<br />
Sia { x , y }<br />
N<br />
i i i=1<br />
seguente funzione:<br />
l’insieme dei punti su cui effettuare l’interpolazione. Possiamo definire la<br />
N<br />
~ ~ 2 ~<br />
( ) = ∑ i<br />
− ( i ) + λ ( )<br />
J f x f x R f<br />
i=<br />
1<br />
dove ~ f ∈F è la funzione da approssimare, e calcolare:<br />
2<br />
~<br />
f<br />
ottima<br />
( )<br />
= arg min J ~ f<br />
~<br />
f ∈F<br />
Se R è un operatore lineare ed invariante rispetto alle rotazioni e alle traslazioni si può<br />
trovare la soluzione applicando la risoluzione di Eulero-Lagrange nello spazio funzionale.<br />
Otteniamo che la soluzione esiste ed è unica se ha la seguente forma:<br />
( )<br />
N<br />
~ f<br />
ottima<br />
= ∑ c<br />
iφ<br />
x − x<br />
i<br />
+ K<br />
i=<br />
1<br />
dove K R<br />
è una qualsiasi componente dello spazio nullo di R (può essere posto K R<br />
≡ 0 ) e la<br />
funzione scalare φ è detta funzione a base radiale (RBF) o funzione di Green e dipende dalla<br />
distanza tra x ed x i<br />
. La particolare funzione φ dipende dall’operatore R usato. La φ soddisfa<br />
la seguente relazione:<br />
R * Rφ = δφ<br />
dove R * è l’operatore aggiunto di R 3 . La funzione φ soddisfa una relazione che è legata solo<br />
al vincolo e non ai campioni. Per alcuni operatori R la funzione φ è già nota.<br />
+∞ i<br />
Ad esempio, se è R = ∑ ∂<br />
∂x<br />
i=<br />
1<br />
i<br />
R<br />
, implicitamente imponiamo che tra tutte le soluzioni cerchiamo<br />
r<br />
quella più regolare. In questo caso si può dimostrare che deve essere φ( r)<br />
= ⎛ 2<br />
⎞<br />
exp⎜−<br />
2<br />
⎟<br />
⎝ σ ⎠<br />
(funzione gaussiana). Praticamente la funzione approssimata viene ottenuta come<br />
sovrapposizione di funzioni gaussiane.<br />
Utilizzando questo operatore R e le funzioni gaussiane, otteniamo:<br />
N<br />
∑<br />
j=<br />
1<br />
( )<br />
~ f x = y<br />
ottima i i<br />
⇓<br />
( )<br />
c φ x − x = y<br />
j i j<br />
i<br />
3 L’operatore aggiunto è una generalizzazione della matrice aggiunta.<br />
152
Teoria della regolarizzazione<br />
con i<br />
= 1,..., N . Otteniamo:<br />
φ( 0) φ( x1 − x2 ) φ( x1 − x3 ) L φ( x1<br />
− x<br />
N )<br />
( x2 − x1 ) ( 0) ( x2 − x3 ) L ( x2<br />
− x<br />
N )<br />
( x3 − x1 ) ( x3 − x2 ) ( 0) L ( x3<br />
− x<br />
N )<br />
⎡<br />
⎢<br />
⎢φ φ φ φ<br />
⎢<br />
⎢<br />
φ φ φ φ<br />
⎢<br />
O<br />
⎢<br />
⎣⎢<br />
φ φ φ φ<br />
⇓<br />
Φ = cy<br />
( x<br />
N<br />
− x1 ) ( x<br />
N<br />
− x2 ) ( x<br />
N<br />
− x3<br />
) L ( 0)<br />
Se Φ è mal condizionata, c può essere ancora calcolato nel seguente modo:<br />
( Φ Φ λR R)<br />
c = +<br />
T T −1<br />
T<br />
Φ<br />
y<br />
⎤<br />
⎥⎡<br />
c1<br />
⎤ ⎡ y1<br />
⎤<br />
⎥⎢<br />
c<br />
⎥ ⎢<br />
⎥ 2<br />
y<br />
⎥<br />
⎢ ⎥<br />
2<br />
= ⎢ ⎥<br />
⎥⎢<br />
M ⎥ ⎢ M ⎥<br />
⎥⎢<br />
⎥ ⎢ ⎥<br />
⎥⎣c<br />
N ⎦ ⎣y<br />
N ⎦<br />
⎦⎥<br />
Se, invece, Φ è ben condizionata il termine λR T R non è necessario ( R è già implicito in Φ ).<br />
Se sappiamo che la funzione da approssimare soddisfa le condizioni di regolarità,<br />
l’approssimazione migliore è quella ottenuta in questo modo, cioè come somma di gaussiane.<br />
C.3 Altre funzioni a base radiale<br />
Se, invece, R = ∂ ∂ x<br />
, allora φ è l’esponenziale: φ = ⎛ r ⎞<br />
exp<br />
⎝ ⎜−<br />
⎟ . Una funzione a base radiale di<br />
σ⎠<br />
questo tipo può essere usata nel caso in cui la funzione da approssimare non soddisfi le<br />
condizioni di regolarità.<br />
Esistono delle funzioni a base radiale che sono molto efficaci per risolvere dei problemi<br />
particolari ma che sono associate a qualche operatore R che non è conosciuto. Ad esempio,<br />
una funzione di questo tipo è la funzione multiquadrica:<br />
φ( r)<br />
= r +<br />
σ<br />
153