universitÀ degli studi di roma tor...
TRANSCRIPT
UNIVERSITÀ DEGLI STUDI DI ROMA
TOR VERGATA
FACOLTÀ DI INGEGNERIA
CORSO DI LAUREA IN INGEGNERIA GESTIONALE
A.A. 2013/2014
Tesi di Laurea Triennale
Tecniche di ottimizzazione per la stima dei parametri di
modelli dinamici lineari
RELATORE CANDIDATO
Ing. Daniele Carnevale Davide Gelfusa
Indice I
Indice
Introduzione 1
1 Identificazione 3
1.1 Cenni sull’identificazione di modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Metodo dei minimi quadrati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Applicazione a sistemi dinamici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Tecnica di stima dei parametri 10
2.1 Descrizione tecnica di stima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Funzione fminunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Applicazione ad un sistema elementare . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Stima di un parametro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2 Stima di due parametri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Applicazione ad un sistema dinamico lineare . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 Modello di stima con ingresso . . . . . . . . . . . . . . . . . . 20
2.4.2 Modello di stima con ingresso sinusoidale . . . . . . . . . . . . . . 22
Indice
Indice II
3 Applicazione al modello di Samuelson 29
3.1 Modello di Samuelson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Stima parametri Samuelson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Controllo in feedback con azione in feedforward . . . . . . . . . . . . . . . . . . 39
4 Conclusioni e sviluppi futuri 47
Appendice A - Codice 49
Elenco delle figure 58
Bibliografia 60
Ringraziamenti 61
Introduzione 1
Introduzione
Un importante capitolo della scienza dell’automazione o automatica è costituito dalla
disciplina denominata controlli automatici. Il controllo automatico è un ambito
multidisciplinare, in cui confluiscono diverse discipline, tra cui la matematica, la
fisica, e l'ingegneria. I campi d’interesse propri dell’automatica riguardano lo studio
dei sistemi dinamici, la teoria del caos, i controllori per i sistemi dinamici e la
descrizione della strumentazione di controllo. Nel vasto ambito della disciplina dei
controlli automatici, grande importanza ricoprono lo studio e il controllo dei sistemi
dinamici, argomento trattato anche in questa tesi.
In particolare il seguente lavoro si propone di approfondire la tematica
dell’identificazione dei parametri che appaio nelle equazioni differenziali/alle
differenze che regolano l’evoluzione dei sistemi lineari: a partire dai dati
sperimentali saranno approfondite e proposte delle tecniche per stimare tali
parametri.
L’elaborato è strutturato nei quattro capitoli descritti di seguito.
Nel primo capitolo verrà esposto in maniera del tutto generale il problema
dell’identificazione, descrivendone nello specifico la sua applicazione ai sistemi
dinamici.
Introduzione
Introduzione 2
Nel secondo capitolo sarà descritta la procedura di stima dei parametri in caso di un
sistema dinamico lineare. Tale procedura si colloca nell’ambito della tipologia
d’identificazione denominata a “scatola grigia”. In seguito si procederà, tramite un
un’accurata trattazione degli strumenti utilizzati, alla risoluzione del problema di
ottimizzazione non vincolata come strumento base della tecnica di stima.
Nel terzo capitolo sarà applicata la procedura di stima parametrica, illustrata nel
capitolo due, al modello di Samuelson. In seguito, partendo dal modello stimato,
ottenuto in precedenza, realizzeremo una strategia di controllo basata su feedback
(controllo in retroazione) e feedforward (controllo in avanti) per stabilizzare il
sistema dinamico in esame in un punto di equilibrio desiderato.
Nel quarto capitolo verranno presentati i risultati raggiunti ed i possibili sviluppi
futuri della procedura di stima parametrica.
3
Capitolo 1
Identificazione
In questo capitolo sarà brevemente descritto il processo d’identificazione dei
modelli. Verrà illustrato il metodo di stima ai minimi quadrati e si esporrà
l’applicazione ai sistemi dinamici dell’identificazione. Per una trattazione più
approfondita di queste tematiche, si rimanda ai testi in bibliografia.
1.1 Cenni sull’identificazione di modelli
Nell'ambito della disciplina dei controlli automatici, il processo di identificazione
consiste nel complesso dei procedimenti che consente di risalire dai dati sperimentali
al modello matematico del sistema dinamico in esame stimandone i parametri.
: ingressi (cause)
: uscite (effetti)
Si distinguono tre tipologie di identificazione:
identificazione a “scatola trasparente” (white-box);
identificazione a “scatola nera” (black-box);
Figura 1.1: Schema sistema dinamico
Cap. 1 Identificazione
4
identificazione a “scatola grigia” (gray-box).
Nell’identificazione a “scatola trasparente” il modello viene ricavato dalla
descrizione delle parti che costituiscono il sistema dato, attraverso le leggi che ne
regolano il comportamento. Il fenomeno è decomposto in componenti elementari di
cui si conosce il modello matematico e quindi si riesce a derivare il modello
dell’intero sistema. Il problema dell’identificazione consiste nella stima di un
parametro incognito in base ad osservazioni sperimentali.
Nell’identificazione a “scatola nera” invece, non si conoscono le componenti
elementari del fenomeno, per cui si considera una famiglia di modelli che possono
essere applicati in maniera del tutto generale. Si procede raccogliendo delle misure
sperimentali delle variabili di ingresso ed uscita, le quali vengono usate
esclusivamente per inferire il modello matematico. Quindi i parametri di questi
modelli non hanno un’interpretazione fisica diretta, ma sono solo un mezzo per
descrivere delle relazioni ingresso-uscita del sistema.
L’identificazione a “scatola grigia” è un approccio intermedio tra white e black-box.
In questo caso si conosce parzialmente la struttura del modello matematico del
fenomeno e non si conoscono i valori dei parametri.
1.2 Metodo dei minimi quadrati
La stima dei parametri di un modello può essere effettuata attraverso l’utilizzo del
metodo dei minimi quadrati. Il metodo dei minimi quadrati è una tecnica di
ottimizzazione che permette di trovare una funzione lineare, rappresentata da una
curva di regressione, che approssima nel modo più accurato possibile un insieme di
dati sperimentali. In particolare la funzione trovata deve essere quella che minimizza
Cap. 1 Identificazione
5
la somma dei quadrati delle distanze tra i dati osservati e quelli della curva che
rappresenta la funzione.
Si consideri il modello di regressione lineare nei parametri
(1.2.1)
dove
- è la variabile osservata;
- , sono parametri incogniti;
- , sono funzioni note che dipendono dalla variabile nota ;
- è il residuo, ossia l’errore di modello, definito come:
. (1.2.2)
Il modello ha come indice la variabile discreta .
Figura 1.2: Esempio curva di regressione
Cap. 1 Identificazione
6
Avendo a disposizione le coppie { }, ( ), si vogliono
determinare i parametri , in modo da minimizzare la funzione costo
∑
(1. .
cioè
∑ (1. .
Adottiamo le seguenti notazioni
[ ] , [ ] , [ ]
[ ] [ ]
possiamo riscrivere la funzione di costo come
(1.2.5)
e il problema scritto in forma vettoriale come
{
(1. .
Se supponiamo che la matrice sia definita positiva1, si dimostra che la funzione
ha un unico minimo dato da
. (1.2.7)
La matrice è detta pseudoinversa2 di .
Il corrispondente valore minimo di risulta
. (1. .
Notiamo che la soluzione al problema di stima ai minimi quadrati (1.2.7) può essere
dedotta anche per via geometrica.
1 Una matrice definita positiva è una matrice quadrata tale per cui, detto il trasposto complesso
coniugato di , si verifica che la parte reale di è positiva per ogni vettore complesso .
2 Una matrice pseudoinversa è la generalizzazione della matrice inversa al caso in cui la matrice da
invertire non sia quadrata.
Cap. 1 Identificazione
7
1.3 Applicazione a sistemi dinamici
Assumiamo in maniera generale che il sistema da identificare sia un sistema a dati
campionati descritto da una funzione di trasferimento discreta
(1. .1
per cui l’uscita al generico istante può essere espressa come
(1. .
in cui i parametri , , non sono noti e è il residuo del modello,
ovvero la differenza tra l’uscita vera e quella stimata:
. (1.3.3)
Supponendo di avere a disposizione N campioni della variabile manipolabile
e i corrispondenti campioni dell’uscita , è possibile scrivere il
seguente sistema di equazioni lineari nei parametri incogniti
(1. .
che riscritto in forma vettoriale genera un problema di stima ai minimi quadrati
(1.3.5)
dove
[
] ,
[
]
, [
]
e [ ]
Cap. 1 Identificazione
8
con
[
]
[
]
La soluzione al problema di stima che minimizza la somma dei quadrati dei residui è
data da
. (1.3.6)
La scelta e la validazione del modello sono il punto inziale e il punto finale
dell’intero processo di identificazione. Nell’ambito dei sistemi dinamici lineari, la
scelta del modello consiste nella selezione dell’ordine del sistema, come
rappresentato in (1.3.2). La correttezza del modello può essere verificata testando la
capacità del modello stesso di riprodurre i dati sperimentali (possibilmente non
utilizzati per l’identificazione del modello stesso , ad esempio verificando che il
residuo non superi un determinato valore , cioè | | .
Gli errori di modello sono tipicamente dovuti a:
- ingressi non misurati;
- una struttura di modello troppo semplice.
La scelta del segnale di ingresso risulta determinante per il successo
dell’operazione di identificazione. È necessario garantire che sia
“persistentemente eccitante”, cioè che sia in grado di eccitare tutti i modi del sistema
Cap. 1 Identificazione
9
durante il processo di identificazione. Tale condizione è necessaria per identificare
correttamente tutti i parametri.
I segnali di riferimento comunemente utilizzati sono:
- funzione a gradino:
{
dove l’ampiezza è scelta arbitrariamente;
- sequenza binaria pseudorandom (PRBS): sequenza che commuta tra due
livelli con un certo periodo;
- somma di sinusoidi:
∑ ( )
in cui le pulsazioni sono distinte. Osserviamo che il numero di sinusoidi dovrà
essere maggiore dell’ordine del modello assunto. Assumendo che il numero di
parametri da stimare sia , una regola pratica per la scelta del numero di sinusoidi,
se , è sceglierle in numero di ⌈ ⁄ ⌉.
Figura 1.3: Sequenza PRBS
10
Capitolo 2
Tecnica di stima dei parametri
In questo capitolo sarà esposta la procedura di ottimizzazione elaborata per la stima
dei parametri di un modello dinamico lineare. Tale tecnica di stima verrà sviluppata
partendo da sistemi semplici, per poi passare a sistemi più complessi.
2.1 Descrizione tecnica di stima
Il problema dell’identificazione, come visto nel capitolo precedente, è abbastanza
ampio; per tale motivo ci si è focalizzati solo su alcuni dei suoi aspetti. Il nostro
scopo è quello di identificare un modello lineare a tempo discreto del tipo:
(2.1.1a)
. (2.1.1b)
Nello sviluppare la tecnica esposta in questa sezione, si è deciso di porre attenzione
sull’identificazione a “scatola grigia” (grey-box) in cui la struttura delle matrici A, B,
C, D è nota, mentre alcuni degli elementi di queste matrici risultano incogniti.
Procediamo dunque a descrivere lo schema generale alla base della procedura di
stima. Essendo nota la struttura del modello, si è simulata l’evoluzione del sistema
scegliendo un ingresso opportuno; l’uscita così generata la chiameremo uscita
Cap. 2 Tecnica di stima dei parametri
11
stimata ( ). Si andrà poi di volta in volta a confrontare con l’uscita reale ( del
sistema (nota da misure sperimentali) andando a minimizzare la norma euclidea della
differenza tra uscita reale e stimata:
‖ ‖ (2.1.2)
dove è la nostra funzione di costo.
Il problema di minimizzazione così generato non è sottoposto ad alcun vincolo ed
entrano in gioco più variabili, per cui ci troviamo di fronte ad un problema di
ottimizzazione non vincolata su .
L’operazione di minimizzazione verrà effettuata utilizzando la funzione
dell’Optimization Toolbox del software Matlab. Tale funzione verrà descritta in
modo dettagliato nel paragrafo successivo. Per il codice Matlab riguardante le
applicazioni di cui si parlerà nei successivi paragrafi, si rimanda all’Appendice A.
2.2 Funzione fminunc
L’Optimization Toolbox fornisce una serie di funzioni per trovare parametri che
minimizzino o massimizzino funzioni obiettivo e allo stesso tempo soddisfino i
vincoli. Il toolbox include solutori per la programmazione lineare, la
programmazione lineare mista intera, la programmazione quadratica,
l’ottimizzazione non lineare e i minimi quadrati non lineari.
Per la finalità di questo lavoro era necessario uno strumento che permettesse di
effettuare un’operazione di minimizzazione su un funzione di costo a più variabili
non sottoposta a vincoli; quindi tra tutti gli strumenti offerti dall’Optimization
toolbox, la scelta è ricaduta sulla funzione . Quest’ultima trova il minimo
di un problema di questo tipo:
Cap. 2 Tecnica di stima dei parametri
12
( . .1
dove è una funzione che restituisce uno scalare, è un vettore o una matrice.
La sintassi per utilizzabile in Matlab è la seguente:
x = fminunc(fun,x0)
x = fminunc(fun,x0,options)
x = fminunc(problem)
[x,fval] = fminunc(...)
[x,fval,exitflag] = fminunc(...)
[x,fval,exitflag,output] = fminunc(...)
[x,fval,exitflag,output,grad] = fminunc(...)
[x,fval,exitflag,output,grad,hessian] = fminunc(...)
Tra le possibilità sopra elencate è stata utilizzata la seguente
dove
- è il valore ottimo (soluzione del problema);
- restituisce il valore della funzione obiettivo in corrispondenza
della soluzione ;
- è la funzione obiettivo da minimizzare;
- è il punto iniziale di ricerca, il quale può essere uno scalare, un vettore o
una matrice;
- crea attraverso il comando optimset i diversi parametri di
ottimizzazione.
Nelle applicazioni è stato impostato il campo nel modo seguente:
options = optimset('LargeScale','off',... 'MaxIter',7000,... 'MaxFunEvals',7000)
Cap. 2 Tecnica di stima dei parametri
13
L’opzione 'MaxIter' consente di impostare il numero massimo di iterazioni
consentito. Il valore predefinito è , quindi si è preferito aumentarlo a per
consentire la possibilità di trovare una soluzione migliore al problema di minimo.
Per lo stesso motivo appena esposto, il massimo numero di valutazioni della funzione
obiettivo 'MaxFunEvals' è stato aumentato a , essendo il valore predefinito
pari a numero di variabili.
La funzione fminunc permette di scegliere tra due tipologie di algoritmi:
“trust-region” (LargeScale = 'on') utilizzato di default;
“quasi-newton” (LargeScale = 'off').
Il primo dei due algoritmi è large-scale, cioè utilizza l’algebra lineare che non ha
bisogno di memorizzare né di operare su matrici complete; il funzionamento si basa
sulla memorizzazione di matrici sparse3.
Il secondo algoritmo è medium-scale, esso opera creando (e memorizzando) matrici
complete ed utilizzando l’algebra lineare “densa”4. In presenza di un problema con
dimensioni non eccessivamente estese, è preferibile scegliere questo algoritmo per
ottenere prestazioni migliori.
Dato che il problema di ottimizzazione trattato in questo elaborato è caratterizzato da
dimensioni abbastanza contenute, è stato selezionato l’algoritmo “quasi-newton”
impostando l’opzione 'LargeScale','off'. Di seguito verrà descritto il suo
funzionamento.
Prima di tutto definiamo in maniera generale il problema dell’Ottimizzazione non
vincolata in cui ci troviamo ad operare; esso può essere così formulato:
3 Una matrice sparsa è una matrice i cui valori sono quasi tutti uguali a zero.
4 In matematica, in particolare in analisi numerica, il concetto di “densità” è opposto rispetto a quello
di “sparsità”.
Cap. 2 Tecnica di stima dei parametri
14
Determinare un punto di minimo tale che
{ } (2.1.2)
Si scrive anche
(2.1.3)
dove si chiama funzione obiettivo.
I metodi per la ricerca del minimo si distinguono in base al tipo di informazioni che
richiedono:
solo valutazioni della funzione ;
valutazioni della funzione e del gradiente di
(metodo del
gradiente);
valutazioni della funzione , del gradiente e della matrice hessiana i cui
elementi sono
(metodo di Newton).
Il terzo metodo è quello che richiede maggiore informazione ed in alcuni casi può
risultare il più veloce, ma anche il più complesso.
Il metodo del gradiente si basa sul fatto che il gradiente di una funzione fornisce
delle informazioni sulla sua pendenza:
Figura 2.1: Metodo del gradiente
Cap. 2 Tecnica di stima dei parametri
15
Nel punto d’inizio è possibile determinare un piano tangente alla curva e un
gradiente perpendicolare a tale piano. La direzione di è la direzione di
massima salita, quindi la direzione opposta è quella di massima discesa. Ci si può
muovere di un “passo” lungo questa direzione ed arrivare al secondo punto di
partenza. Quindi, la k-esima iterazione del metodo del gradiente è la seguente:
(2.2.4)
dove è il passo di discesa. Il passo di discesa ottimo è quello per il quale il
gradiente del passo attuale e quello del passo successivo sono ortogonali tra loro:
.
Se la funzione ha un minimo ed è convessa, il metodo converge, anche se si procede
in modo non lineare effettuando dei passi molto piccoli.
Il metodo di Newton si basa sullo sviluppo in serie di Taylor della funzione troncato
al secondo ordine:
‖ ‖ (2.2.5)
Se non ci sono termini di ordine superiore al secondo, possiamo calcolare la derivata
di in modo analitico e porla uguale a zero per ottenere il minimo:
In questo caso il passo ottimo è dato da , . Se nello sviluppo della ci sono
termini di ordine superiore al secondo, bisogna iterare il metodo più volte:
Cap. 2 Tecnica di stima dei parametri
16
Con il metodo di Newton non si procede nella direzione del gradiente: la matrice
effettua una rotazione del vettore senza però “ribaltarlo” (altrimenti si
procederebbe nella direzione di salita, anziché in quella di discesa). Ad ogni passo di
questo metodo bisogna calcolare il gradiente e l’hessiano di e questo può
creare dei problemi nel caso in cui non si riescano ad avere le loro espressioni
analitiche: ad ogni passo bisogna effettuare valutazioni di (dovute al
calcolo di ), più altre (dovute al calcolo di ed un’inversione di
matrice (ad ogni passo del metodo del gradiente bisognava effettuare solo
valutazioni della funzione ).
Esistono dei metodi chiamati “quasi-newton” che sono quelli a cui siamo interessati:
questi ultimi sono meno efficienti di quello di Newton ma più efficienti di quello del
gradiente. I metodi quasi-newton utilizzano i gradienti ai passi precedenti in modo da
seguire in maniera approssimata la curvatura della funzione (che è data dal suo
hessiano). Esistono molti algoritmi di questo tipo:
Fletcher-Reeves;
Davidson-Fletcher-Powell;
Polak-Polyak-Ribier-Sorenson;
Broyden-Fletcher-Goldfarb-Shanno.
È stato scelto di utilizzare il metodo “quasi-newton” con la procedura di ricerca
lineare quadratica e la formula di Broyden-Fletcher-Goldfarb-Shanno (BFGS) per
aggiornare l’approssimazione della matrice hessiana. Ad ogni iterazioni il metodo
“quasi-newton” formula un modello quadratico del problema in esame, il quale
assume la forma seguente:
( . .
Cap. 2 Tecnica di stima dei parametri
17
dove la matrice hessiana , è una matrice simmetrica definita positiva, è vettore
costante e è una costante. La soluzione ottima di questo problema si ottiene
ponendo uguali a zero le derivate parziali rispetto ad , cioè:
(2.2.7)
la soluzione ottima , può essere scritta come:
(2.2.8)
Come accennato prima, il metodo di Newton calcola direttamente e procede in una
direzione di discesa fino ad individuare il minimo; questa operazione risulta però
computazionalmente onerosa. Nel metodo “quasi-newton”, per evitare tale
complessità, si procede operando un’approssimazione di mediante tecniche di
aggiornamento appropriate. Esiste un gran numero di tecniche per l’aggiornamento
dell’hessiano, ma come già affermato, utilizzeremo la formula BFGS. Essa assume la
forma seguente:
( . .
dove
Come punto di partenza, può essere impostata su qualsiasi matrice simmetrica
definita positiva, per esempio, la matrice identità .
Nell’esecuzione dell’algoritmo, ad ogni passo, viene eseguito un line search5 nella
direzione
. (2.2.10)
Il line search ad ogni passo successivo dell’algoritmo trova
5 Il line search è un metodo di ottimizzazione monodimensionale, esso cerca il minimo spostandosi
lungo una linea contenente il punto corrente .
Cap. 2 Tecnica di stima dei parametri
18
(2.2.11)
dove rappresenta la soluzione all’iterazione corrente, è la direzione di discesa e
è il passo di discesa. L’intento di questo metodo di ricerca lineare è ridurre il
valore della funzione obiettivo cercando soluzioni lungo la linea .
Nel momento in cui la diminuzione del valore di si interromperà, verrà aggiornato
l’hessiano per modificare la direzione di discesa , in seguito si procederà con
un nuovo line search e così fino al raggiungimento del minimo.
2.3 Applicazione ad un sistema elementare
Di seguito verranno trattate due semplici applicazioni della tecnica di stima descritta
precedentemente.
2.3.1 Stima di un parametro
Inizialmente si è partiti da un sistema semplice caratterizzato dalle seguenti matrici
A, B, C, D:
, , ,
dove è l’elemento che dovrà essere stimato.
Il modello dinamico in esame è il seguente
{
Dall’evoluzione di tale sistema con , si è misurato un insieme di dati
sperimentali (sono state rilevate sei misure), tali dati sono stati confrontati con quelli
generati dal modello che segue
{
Chiameremo l’insieme dei dati generati da .
Cap. 2 Tecnica di stima dei parametri
19
In seguito, per ogni , si è effettuata un’operazione di minimizzazione del
tipo:
‖ ‖
Nella simulazione della procedura di stima applicata modello in esame, si è ottenuto
il seguente risultato:
>> un_parametro
x = 3.0000
fval = 6.5610e+003
Elapsed time is 0.018305 seconds.
Variazione percentuale parametri stimati/reali:
ans = 1.3631e-008
In questa prima semplice applicazione, si è potuto osservare che la stima dell’unico
parametro incognito è stata effettuata in modo accurato (differenza con il valore reale
dell’ordine di ) ed in un tempo molto breve.
2.3.2 Stima di due parametri
Successivamente si è passati ad operare con un sistema caratterizzato dalle seguenti
matrici:
[ ], , ,
dove e sono gli elementi da stimare.
Come nel caso di un parametro, nella simulazione si sono misurati i dati sperimentali
del sistema con [ ] ed in seguito confrontandoli con i dati generati dal
modello stimato, è stato ottenuto il seguente risultato:
>> due_parametri
x = 1.9997 3.0007
fval = 0.0014
Elapsed time is 0.037854 seconds.
Cap. 2 Tecnica di stima dei parametri
20
Variazione percentuale parametri stimati/reali:
ans =
1.0e-003 *
0.1280 -0.2493
Come nel caso precedente, anche nella stima di due parametri i risultati ottenuti sono
molto soddisfacenti.
2.4 Applicazione ad un sistema dinamico lineare
In questo paragrafo è stato preso in esame un sistema dinamico lineare più complesso
del precedente, rappresentato dalle seguenti matrici:
[
], [
]
[ ],
dove con si intendono gli elementi che dovranno essere stimati; oltre a questi
ultimi, verranno ricavate anche le condizioni iniziali del sistema. Supponiamo di
avere un modello in cui non siano presenti disturbi di rumore in ingresso e in uscita.
Nella simulazione di questo sistema sceglieremo un ingresso tale che vari
sempre abbastanza da provocare ed eccitare tutte le dinamiche del sistema, cioè tale
che sia garantita la condizione di persistenza di eccitazione.
2.4.1 Modello di stima con ingresso
Come approccio iniziale è stato utilizzato un ingresso per osservare che un
di questo tipo non permetta di realizzare una stima accurata di tutti i parametri
incogniti del sistema dinamico preso in esame.
Cap. 2 Tecnica di stima dei parametri
21
0 5 10 15 20 25 30 35 40 45 500
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2Grafico ingresso u(k) = 1
Come si può notare dal grafico che segue, l’ingresso scelto è piatto per cui esso non è
in grado di sollecitare tutte le dinamiche del sistema. Sono così giustificati gli scarsi
risultati ottenuti, i quali verranno riportati di seguito.
>> modello_matriciale
x = 2.2751 3.1153 1.5793 2.6171 0.4000 0.5000
0.3000 0.6000 1.3853 3.0237 3.0765 3.1886
fval = 2.1308e-005
Elapsed time is 0.921805 seconds.
Variazione percentuale parametri stimati/reali:
condizioni_iniziali =
-0.1375
-0.0384
0.2104
0.1276
matrice_A =
1.0e-005 *
Figura 2.2: Ingresso
Cap. 2 Tecnica di stima dei parametri
22
-0.0525
0.0245
-0.1128
-0.0159
matrice_C =
-0.3853 -0.5119 -0.0255 0.2029
Osserviamo che gli elementi della matrice sono stati stimati in modo corretto,
mentre per gli altri parametri incogniti si è ottenuta una stima molto approssimativa.
2.4.2 Modello di stima con ingresso sinusoidale
A questo punto si è utilizzato un ingresso che potesse garantire la persistenza di
eccitazione di tutti i modi del sistema durante il processo di identificazione, in modo
da migliorare la stima.
Si andrà ora a chiarire questo importante concetto affermando che un ingresso si
dice “persistentemente eccitante” di ordine se la matrice di ordine
∑
( . .1
con data da
[
]
è invertibile.
Cap. 2 Tecnica di stima dei parametri
23
0 5 10 15 20 25 30 35 40 45 50-15
-10
-5
0
5
10
15Grafico ingresso u(k) sinusoidale
Quindi è stato scelto di utilizzare come una somma di sinusoidi in grado di
eccitare tutte le dinamiche del sistema. L’ingresso è caratterizzato dal seguente
grafico:
Utilizzando l’ingresso rappresentato nella Figura 2.3, è stata ottenuta una stima
precisa di tutti i parametri che ci eravamo proposti di identificare, come si può
osservare dai risultati ottenuti nella simulazione:
>> modello_matriciale
x = 2.0000 3.0000 2.0000 3.0000 0.4000 0.5000
0.3000 0.6000 1.0000 2.0000 3.0000 4.0000
fval = 6.6728e-006
Elapsed time is 2.801731 seconds.
Variazione percentuale parametri stimati/reali:
condizioni_iniziali =
1.0e-004 *
-0.1812
0.0058
Figura 2.3: Ingresso sinusoidale
Cap. 2 Tecnica di stima dei parametri
24
0 0.01 0.02 0.03 0.04 0.05 0.062
2.2
2.4
2.6
2.8
3
3.2
3.4
condizioni iniziali stimate
condizioni iniziali reali
-0.0234
-0.0564
matrice_A =
1.0e-006 *
0.2590
-0.0081
0.1833
0.1259
matrice_C =
1.0e-004 *
0.0849 0.0636 -0.1439 0.1213
Come si può rilevare nell’esito della simulazione riportato sopra, i valori dei
parametri stimati differiscono da quelli reali per quantità molto esigue che vanno
dall’ordine di a , come osservabile dalla Figura 2.4 per le condizioni
iniziali.
Figura 2.4: Variazione stima condizioni iniziali reali/stimate
Cap. 2 Tecnica di stima dei parametri
25
Inoltre il tempo di convergenza è risultato pari a 3.6 secondi, tale valore si può
ritenere soddisfacente.
Rimuoviamo adesso l’ipotesi fatta in precedenza, nella quale si era supposto di
trattare con un modello privo di disturbi, per vedere come si comporta in questo caso
la tecnica d’identificazione parametrica ideata. Nel modello stocastico che si sta
adesso considerando, è presente in ingresso e in uscita un disturbo di rumore che
contribuisce a determinare il comportamento incerto del sistema. Nell’ingresso
costituito da una somma di sinusoidi scelto in precedenza e nell’uscita del sistema, è
stato aggiunto un disturbo casuale ( utilizzando la funzione Matlab
che genera un vettore colonna di N numeri casuali:
noise = 0.1*(-1+2*rand(N,1))
noise_output = 0.1*(-1+2*rand(N,1))
Si può quindi osservare come varia la qualità della stima degli elementi incogniti in
presenza di questo disturbo:
>> modello_matriciale
x = 2.0811 3.2627 1.8758 3.1726 0.3434 0.4857
0.3305 0.5584 0.8580 2.1147 2.9188 3.6814
fval = 6.1282
Elapsed time is 6.554948 seconds.
Variazione percentuale parametri stimati/reali:
condizioni_iniziali =
-0.0405
-0.0876
0.0621
-0.0575
matrice_A =
0.1414
Cap. 2 Tecnica di stima dei parametri
26
0 0.01 0.02 0.03 0.04 0.05 0.061.8
2
2.2
2.4
2.6
2.8
3
3.2
3.4
3.6
condizioni iniziali stimate
condizioni iniziali reali
0.0285
-0.1015
0.0693
matrice_C =
0.1420 -0.0574 0.0271 0.0796
L’esistenza del disturbo nel segnale di ingresso e nell’uscita , come
evidente dai dati sopra e dalla Figura 2.5 (per le condizioni iniziali), determina un
peggioramento notevole della stima di tutti i parametri, i quali differiscono di molto
dai valori reali.
Inoltre, si è riscontrato un notevole aumento del tempo di convergenza del processo
il quale risulta più che triplicato (12 secondi) rispetto al caso precedente (3.6
secondi). Nei grafici che seguono, si vuole far notare come variano l’ingesso e
l’uscita in presenza del disturbo.
Figura 2.5: Variazione stima condizioni iniziali reali/stimate con disturbo
Cap. 2 Tecnica di stima dei parametri
27
0 1 2 3 4 5 6-15
-10
-5
0
5
10
15
u(k)
u1(k)
u(k)-u1(k)
0 1 2 3 4 5 6-50
-40
-30
-20
-10
0
10
20
30
y(k)
y(k) + noise output
noise output
In Figura 2.6 il tratto in blu rappresenta l’ingresso originario mentre il tratto rosso
raffigura l’ingresso contenente il disturbo; infine con il tratto verde si è voluto
quantificare l’entità della variazione subita da .
Nei due grafici che seguono possiamo osservare come varia l’uscita del
sistema.
Figura 2.6: Ingresso
Figura 2.7: Uscita
Cap. 2 Tecnica di stima dei parametri
28
1.65 1.7 1.75 1.8 1.85
6.5
7
7.5
8
8.5
9
y(k)
y(k) + noise output
noise output
Andando ad ingrandire il grafico rappresentato nella Figura 2.7, possiamo notare che
l’uscita “affetta da rumore” differisce da , questo va ad
influire in modo negativo sul processo di stima.
Figura 2.8: Zoom uscita
29
Capitolo 3
Applicazione al modello di Samuelson
In questo capitolo verrà utilizzata la tecnica di stima parametrica realizzata per
andare a stimare i parametri del modello di Samuelson; inoltre a partire dal modello
stimato verrà progettato un sistema di controllo in feedback con azione in
feedforward.
3.1 Modello di Samuelson
Il modello macroeconomico a cui applicheremo la tecnica di stima descritta nel
secondo capitolo, è stato ideato dall’economista statunitense Paul Anthony
Samuelson, vincitore del premio Nobel per l’economia nel 1 70. Andiamo a chiarire
il contesto nel quale si colloca il modello di Samuelson.
La macroeconomia studia un sistema economico nel suo complesso considerando
l’insieme di tutti i conti economici di un paese. Le variabili principali in
un’economia chiusa per un dato orizzonte temporale (per esempio un anno), sono
Cap. 3 Applicazione al modello di Samuelson
30
generalmente: che rappresenta il reddito nazionale, che rappresenta il prodotto
nazionale e che rappresenta il consumo delle famiglie.
Distingueremo inoltre gli investimenti delle imprese (investimenti indotti) che
indicheremo con dalla spesa pubblica (investimenti autonomi), che indicheremo
con . Esistono diversi modelli macroeconomici che permettono di spiegare
l’andamento nel tempo della produzione nazionale mediante una sequenza di
“aggiustamenti” nel comportamento economico delle famiglie, delle imprese e dello
stato.
L’idea che nell’andamento degli indicatori economici siano presenti cicli, cioè delle
oscillazioni di crescita e di recessione, è da molto tempo presente nella teoria
economica (Figura 3.1).
Nei cicli economici vengono individuate le seguenti fasi:
1) fase di espansione, che a sua volta si suddivide in due fasi: fase di ripresa,
nella quale l’investimento inizia a crescere e fase di prosperità, nella quale
investimenti e consumi crescono rapidamente;
Figura 3.1: Andamento di un ciclo economico teorico
Cap. 3 Applicazione al modello di Samuelson
31
2) fase di contrazione, caratterizza da due fasi: fase di recessione, in cui la
crescita dell’economia rallenta e fase di depressione, nella quale la crescita
economica ristagna.
Fluttuazioni del prodotto nazionale sono osservabili empiricamente, ma le possibili
interpretazioni sono molteplici, così come i possibili interventi statali per ridurle.
Il modello moltiplicatore-acceleratore, proposto da Samuelson, cerca di spiegare la
presenza di cicli economici individuandone la causa principale nel rapporto fra
investimenti privati e consumi delle famiglie.
Samuelson elabora le seguenti equazioni sulla dinamica del sistema
macroeconomico:
[ ] (3.1.1)
(3.1.2)
(3.1.3)
(3.1.4)
dove il coefficiente è la propensione marginale al consumo, ⁄ è
il moltiplicatore e il coefficiente è il cosiddetto acceleratore (propensione
marginale all’investimento). Come si può osservare, le prime due equazioni
definiscono delle relazioni dinamiche d’influenza, mentre le ultime due sono delle
relazioni puramente algebriche.
La prima equazione definisce la proprietà che l’incremento dei consumi determina
(causa) il valore degli investimenti delle imprese (acceleratore). La seconda invece,
esprime che il reddito corrente causa i consumi che si osserveranno nel periodo
successivo.
Mediante sostituzioni dirette, è possibile mettere in evidenza le influenze reciproche
fra le grandezze economiche. Infatti, indicando con
(3.1.5)
Cap. 3 Applicazione al modello di Samuelson
32
(3.1.6)
gli scostamenti dai valori iniziali, le equazioni di Samuelson possono essere riscritte
in termini delle sole variabili , e . Infatti da (3.1.3) e (3.1.4) segue
(3.1.7)
che sostituita nella (3.1.2) diventa
[ ] (3.1.8)
che insieme alla (3.1.1) permettono di scrivere
{ [ ] }
[ ]
[ ]
[ ] [ ] [ ] (3.1.9)
e
[ ]
[ ] [ ] [ ] (3.1.10)
In conclusione, avremo
[ ] (3.1.11a)
[ ] (3.1.11b)
Le variabili di stato sono quindi e , la variabile
indipendente è e la rete d’influenza corrispondente è
illustrata nella Figura 3.2. Il sistema (3.1.11) si può scrivere nella forma
Figura . : Grafo d’influenza del modello macroeconomico di Samuelson
Cap. 3 Applicazione al modello di Samuelson
33
(3.1.12)
(3.1.13)
che corrisponde alle matrici dinamiche
(
), ( )
Il modello di Samuelson prevede che la spesa pubblica sia costante.
Vediamo adesso una breve analisi della dinamica del modello di Samuelson.
Gli autovalori della matrice del sistema sono
√
e, a seconda dei valori dei parametri ed , si possono ottenere autovalori
reali o complessi. La condizione per avere autovalori reali (e cioè assenza di
oscillazioni nella produzione) è quindi
√
È interessante osservare che, nel caso in cui siano presenti delle oscillazioni nei
livelli della produzione nazionale, il modello di Samuelson prevede che un aumento
della propensione al consumo ( ) delle famiglie possa eliminare tali fluttuazioni e
quindi stabilizzare l’andamento economico.
È possibile anche determinare i valori dei parametri e per i quali il sistema sia
asintoticamente stabile o instabile. Infatti queste condizioni, in termini economici,
corrispondono al fatto che l’economia sia in crescita oppure in contrazione e
rivestono quindi un grande interesse pratico. Il polinomio caratteristico della matrice
dinamica è
e si può usare il criterio di Jury per sapere se le sue radici siano o meno all’interno
del cerchio unitario. Le condizioni di asintotica stabilità sono
, ,
Cap. 3 Applicazione al modello di Samuelson
34
Le prime due condizioni sono sempre verificate per i valori ammissibili dei
parametri; quindi la condizione di asintotica stabilità del modello di Samuelson è
Pertanto, se ⁄ si avrà crescita economica.
L’analisi del modello di Samuelson si può concludere considerando che un aumento
della propensione marginale al consumo , ha il doppio beneficio di aumentare il
tasso di crescita economico e ridurre (fino ad eliminare) le fluttuazioni. Inoltre, la
presenza di fluttuazioni non può essere ridotta attraverso la spesa pubblica (cioè
), in quanto tali fluttuazioni sono causate, secondo Samuelson, dall’interazione
fra le grandezze economiche considerate dal modello e non dalla variabile
indipendente ( ).
È importante notare che il modello di Samuelson è in grado di spiegare la presenza di
fluttuazioni nel prodotto nazionale sotto le ipotesi considerate dal modello. In
particolare, Samuelson assume che
e cioè che il reddito corrente influenzi i consumi futuri. Tale relazione è stata molto
discussa dagli economisti, infatti si può sostenere che normalmente prima si
guadagna il reddito e poi si spende. Sembra però che tale ritardo nella funzione di
consumo, se esiste, sia di breve durata e probabilmente inferiore ad un anno.
Quest’ultima osservazione è molto importante per il modello, in quanto essa
implicherebbe una funzione di consumo del tipo
(3.1.13)
che non introduce quindi alcuna dinamica nel modello. In questo caso infatti le
equazioni di Samuelson diventerebbero le seguenti
[ ]
Cap. 3 Applicazione al modello di Samuelson
35
da cui segue
[ ]
e quindi non sarebbero presenti fluttuazioni solo se
Ma poiché l’evoluzione libera è
(
)
nel caso in cui
si avrebbe un modo alternante e cioè fluttuazioni
annuali in cui ogni anno si osserva un aumento (diminuzione e l’anno successivo
una diminuzione (aumento), cosa non direttamente osservabile nei dati empirici.
Pertanto, se non è verificata l’ipotesi di ritardo tra reddito e spesa descritta da (3.1.2),
il modello di Samuelson non è più in grado di spiegare la presenza delle fluttuazioni
che si osservano nei dati di prodotto nazionale. Quindi un aumento della propensione
marginale al consumo non generà più una riduzione delle fluttuazioni, come
avveniva invece sotto l’ipotesi che il reddito corrente andasse ad influenzare i
consumi futuri.
3.2 Stima parametri Samuelson
Nell’applicare la procedura di stima parametrica, è stata presa in considerazione una
versione semplificata del modello di Samuelson rispetto a quella descritta in
precedenza; facciamo le seguenti ipotesi:
Cap. 3 Applicazione al modello di Samuelson
36
1) i consumi dipendono dal reddito nazionale con un ritardo di un periodo,
ossia
(3.2.1)
2) gli investimenti autonomi (la spesa pubblica) sono supposti costanti e pari a ,
mentre gli investimenti delle imprese si suppone dipendano dalla variazione della
domanda di beni di consumo, ossia
( ) (3.2.2)
Sostituendo la (3.2.1) nelle (3.1.3), (3.2.2), si ha
(3.2.3)
(3.2.4)
da cui
(3.2.5)
ossia
(3.2.6)
Per le assunzioni fatte, il modello di Samuelson risulta ora descritto dalle seguenti
matrici dinamiche
[
], [
], [ ], (3.2.7)
Avendo le matrici dinamiche in questa forma, non è possibile applicare la tecnica di
stima, poiché la struttura di questo modello differisce da quella per cui la procedura
di stima è stata progettata. È necessario quindi operare un cambiamento di base nello
spazio di stato, in modo da riportare il sistema alla struttura utile ai nostri scopi.
Andremo ora brevemente a descrivere il cambio di base effettuato, per farlo è
necessario ricordare che i vettori di un determinato insieme si dicono linearmente
indipendenti se nessuno di essi può essere espresso come combinazione lineare degli
Cap. 3 Applicazione al modello di Samuelson
37
altri. Ogni insieme di vettori linearmente indipendenti di può costituire una
base. Con riferimento a una determinata base { } gli elementi di un
generico vettore possono essere interpretati come le coordinate di un punto
. Se si sceglie una base { } diversa da { }, è evidente che le
coordinate del punto cambieranno, quindi si può affermare che il medesimo punto
sarà la rappresentazione geometrica di un altro vettore che chiameremo . Ci si
chiede ora quale relazione intercorre fra il vettore delle coordinate di rispetto
alla vecchia base e il vettore delle coordinate di rispetto alla nuova base. Tale
relazione è una trasformazione lineare del tipo
,
per ogni e ogni , , . In altre parole, si avrà:
dove è un’opportuna matrice .
Tornando al nostro sistema descritto dalle matrici , , , , osserviamo che ad
ogni cambiamento di base nello spazio di stato corrisponde una matrice non
singolare tale che il legame tra le nuove coordinate e le vecchie coordinate è dato da
. Sostituendo tale espressione nelle equazioni di stato e di uscita del sistema
si è ottenuto:
, , , .
Scegliendo una matrice opportuna si sono determinate e matrici seguenti
[
], [
], [ ⁄ ], (3.2.8)
Osserviamo che l’evoluzione del sistema non cambia, poiché si ha la medesima
funzione di trasferimento ( ) in entrambi i casi. Infatti, utilizzando il comando
del software Matlab, si è potuto verificare che nel primo caso la era la seguente
Cap. 3 Applicazione al modello di Samuelson
38
e allo stesso modo nel secondo caso si è riscontrata una del tipo
Andiamo ora a stimare i parametri incogniti del sistema caratterizzato dalle matrici
dinamiche
[
], [ ], [ ],
dove con si intendono gli elementi che dovranno essere stimati; oltre a questi ultimi
verranno ricavate anche le condizioni iniziali.
Nelle simulazioni sono stati ottenuti i risultati che seguono:
>> modello_Samuelson
x = 2.0000 3.0000 1.6000 0.8000 -0.0000 1.2500
fval = 3.0211e-004
Elapsed time is 4.188002 seconds.
Variazione percentuale parametri stimati/reali:
condizioni_iniziali =
1.0e-004 *
-0.1614
-0.0780
matrice_A =
1.0e-006 *
0.0940
0.1636
matrice_C =
1.0e-006 *
Inf -0.4701
Cap. 3 Applicazione al modello di Samuelson
39
0 0.005 0.01 0.015 0.02 0.025 0.031.8
2
2.2
2.4
2.6
2.8
3
3.2
condizioni iniziali stimate
condizioni iniziali reali
Tutti gli elementi, come ci si aspettava, sono stati stimati in modo preciso e questo lo
si può notare dai dati riportati sopra e dalla Figura 3.3.
3.3 Controllo in feedback con azione in
feedforward
Adesso andremo a progettare una strategia di controllo da applicare al sistema
dinamico descritto dal modello di Samuelson, i cui parametri sono quelli stimati nel
paragrafo precedente. Ci troviamo quindi di fronte ad un problema di controllo.
Un problema di controllo nasce nel momento in cui si vuole imporre ad un sistema
un comportamento desiderato: la soluzione consiste nella sintesi di opportune azioni
di controllo (progetto del regolatore).
Figura 3.3: Variazione stima condizioni iniziali reali/stimate
Cap. 3 Applicazione al modello di Samuelson
40
Sul sistema controllato agiscono delle variabili manipolabili, o di controllo ,
mentre le sue uscite costituiscono le variabili controllate (di cui interessa cioè
controllare l’andamento nel tempo . Le variabili (variabili di riferimento o
setpoint) invece, esprimono l’andamento desiderato che le variabili controllate
dovrebbero assumere per garantire l’evoluzione che si vuole imporre al sistema
controllato. In definitiva, nell’affrontare un problema di controllo, l’obiettivo è
determinare, ad ogni istante, il valore delle variabili di controllo in modo tale che
le variabili controllate assumano un andamento quanto più possibile simile
all’andamento desiderato .
Di seguito verranno esposte le strategie di controllo denominate feedforward
(controllo in avanti o in anello aperto) e feedback (controllo in retroazione o in anello
chiuso).
Figura 3.5: Andamento sistema sottoposto a controllo
Figura 3.4: Elementi problema di controllo
Cap. 3 Applicazione al modello di Samuelson
41
Nel controllo in anello aperto non viene eseguita alcuna misura sulle variabili del
sistema; le variabili utilizzate nella legge di controllo non dipendono dai valori
assunti dalla variabile di controllo .
Nella strategia di controllo in avanti il valore della variabile manipolabile viene
determinato dentro il sistema sfruttando dei modelli matematici. Questa strategia
viene chiamata “in avanti”, perché non viene effettuata nessuna verifica sul valore.
Nel controllo in anello chiuso, l’azione di controllo viene esercitata sulla base di
misure di grandezze il cui valore dipende anche dal valore assunto dalla variabile .
In questo modo, si viene a chiudere un anello nel rapporto di causa ed effetto tra le
variabili. In un controllo in retroazione il valore della variabile in uscita dal sistema
viene letto dal controllore che agisce modificando l'ingresso del sistema.
In un controllo in retroazione, il segnale di controllo applicato all’ingresso del
sistema da controllare (S) è calcolato sulla base dello stato o dell’uscita di S. Nel
caso trattato in questo lavoro, sarà utilizzato un controllo in retroazione dello stato: di
seguito verrà esposta una sua breve descrizione.
Figura 3.7: Schema di controllo in feedback
Figura 3.6: Schema di controllo in feedforward
Cap. 3 Applicazione al modello di Samuelson
42
L’obiettivo del progetto di una retroazione dello stato, per un sistema LTI (lineare
tempo-invariante), è quello di rendere il sistema in catena chiusa stabile rispetto
all’origine ( . Dato il sistema da controllare:
{ ( . .1
( . .1
con , , , si può affrontare il problema della stabilizzazione
di S mediante una legge di controllo in retroazione dello stato, descritta dalla
seguente relazione
(3.3.3)
con , , in cui rappresenta una matrice ad elementi reali di
dimensioni , il termine rappresenta un possibile ingresso all’anello di
retroazione che può servire per conseguire ulteriori obiettivi di controllo.
Il sistema (3.3.1a) con la legge di controllo (3.3.3), risulta descritto dall’equazione
(3.3.4)
con , , . Il sistema ad anello chiuso (closed-loop)
descritto da (3.3.4), è anch’esso un sistema lineare e stazionario, che differisce dal
sistema originario (3.3.1a) per la presenza in esso della matrice al posto
della matrice come matrice dinamica.
Pertanto tale legge di controllo (3.3.3), con una certa matrice , consegue la stabilità
asintotica del sistema se e solo se la è tale che gli autovalori di abbiano
modulo minore di uno (siano all’interno del cerchio unitario), cioè se e solo se la è
tale che tutti i modi naturali del sistema siano convergenti.
Tale proprietà equivale alla convergenza asintotica nell’origine dello spazio di stato
di tutte le risposte libere del sistema ( . . , ottenuto dall’originario sistema ( . .1
con l’applicazione della legge di controllo ( . . . Una tale matrice esiste se il
sistema (3.3.1) è controllabile; poiché però come è noto la controllabilità del sistema
(3.3.1) è implicata dalla sua raggiungibilità, possiamo affermare che gli autovalori di
Cap. 3 Applicazione al modello di Samuelson
43
sono assegnabili arbitrariamente in funzione di ( se e solo se il
sistema da controllare è raggiungibile. Ciò significa che dati gli autovalori
che si vogliono assegnare con la retroazione, il sistema di equazioni:
ammette soluzioni negli ( parametri della matrice se e solo se il sistema
(3.3.1) è raggiungibile.
La strategia di controllo realizzata per il modello di Samuelson, è stata ottenuta
combinando la legge di controllo ad anello aperto (feedforward) con quella del
controllo ad anello chiuso (feedback). La legge di controllo utilizzata è rappresentata
nello schema riportato nella figura:
Si è preliminarmente verificato che il sistema (3.2.8) fosse raggiungibile attraverso il
PBH test di raggiungibilità, quindi si è potuto procedere nella retroazione
all’assegnazione degli autovalori per raggiungere la stabilità asintotica del sistema.
Essendo il nostro sistema lineare, esso si stabilizzerà asintoticamente rispetto ad un
punto di equilibrio ( ); ma si vuole rendere asintoticamente stabile non , ma
un altro punto dello spazio di stato ( . Per fare questo, bisogna dare al sistema un
riferimento in modo opportuno per far si che esso si posizioni nel punto voluto .
Non è detto che si riesca sempre a spostare il punto di equilibrio dall’origine al
punto desiderato (dipende da come è fatto il sistema). Nel nostro caso si è
Figura 3.8: Schema di controllo feedback feedforward
Cap. 3 Applicazione al modello di Samuelson
44
definita un’azione di controllo in feedforward che prende il punto e gli assegna
il valore dell’ingresso (di equilibrio) necessario affinché valga
(3.3.4)
Quindi il controllo in avanti ci consente di passare da alla opportuna per
rendere un punto di equilibrio del sistema dinamico.
Combinando l’azione feedback e feedforward l’ingresso risulterà pari a:
, ,
sostituendo all’interno della ( . . ) si avrà
( )
Siccome si vuole che i modi del sistema a ciclo chiuso siano convergenti sul punto di
equilibrio che ha definito il feedforward, si va ad imporre
quindi si ha
( ) (3.3.5)
si cerca una tale che .
Sapendo che
, [
], [ ]
sostituendo nella (3.3.5) si ottiene
([
] [
] [
]) ( )
([
] [
]) ( )
Cap. 3 Applicazione al modello di Samuelson
45
(
) ( )
quindi (
)
cioè
(
) (
) (
) (3.3.6)
che corrisponde al sistema di equazioni
{
(3.3.7)
Dalla seconda equazione di (3.3.7) si determina
si può scegliere (
)
Tornado alla (3.3.6) si avrà
(
) (
) ( )
{
ed introducendo il parametro libero
{
{
se si sceglie {
Per effettuare l’assegnazione degli autovalori nella retroazione del sistema, è stato
utilizzato il comando [ ] del software Matlab. Tale comando assegna al
sistema caratterizzato da gli autovalori contenuti nel vettore . Da quanto
detto il precedenza, sono stati scelti degli autovalori in modulo minore di uno per
garantire la stabilità asintotica del sistema (cioè si è scelta la matrice in modo che
il polinomio caratteristico di sia di Schur).
Cap. 3 Applicazione al modello di Samuelson
46
0 0.5 1 1.5 2 2.5-8
-6
-4
-2
0
2
4
6
8
10Controllo Samuelson
Simulando il modello di Samuelson e applicando la strategia di controllo descritta
fino ad ora, si è ottenuto il seguente risultato:
>> controllo_modello_Samuelson
X = Columns 1 through 16
1.0000 3.1375 4.9150 6.2999 7.3396 8.1026 8.6542 9.0492 9.3300
9.5288 9.6691 9.7678 9.8372 9.8859 9.9200 9.9440
1.0000 -0.8000 -2.5100 -3.9320 -5.0399 -5.8717 -6.4820 -6.9234 -7.2393 -
7.4640 -7.6230 -7.7352 -7.8142 -7.8697 -7.9087 -7.9360
Columns 17 through 32
9.9608 9.9725 9.9808 9.9865 9.9906 9.9934 9.9954 9.9968 9.9977
9.9984 9.9989 9.9992 9.9994 9.9996 9.9997 9.9998
-7.9552 -7.9686 -7.9780 -7.9846 -7.9892 -7.9925 -7.9947 -7.9963 -7.9974 -
7.9982 -7.9987 -7.9991 -7.9994 -7.9996 -7.9997 -7.9998
Columns 33 through 48
9.9999 9.9999 9.9999 9.9999 10.0000 10.0000 10.0000 10.0000 10.0000
10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000
-7.9998 -7.9999 -7.9999 -7.9999 -8.0000 -8.0000 -8.0000 -8.0000 -8.0000 -
8.0000 -8.0000 -8.0000 -8.0000 -8.0000 -8.0000 -8.0000
Columns 49 through 50
10.0000 10.0000
-8.0000 -8.0000
Nella Figura 3.9 si può osservare come il sistema sottoposto ad azione feedback con
azione in feedforward, considerando un orizzonte temporale di 10 anni, converge nel
punto desiderato in un periodo pari a circa un 9 anni e 10 mesi.
Figura 3.9: Convergenza in del sistema controllato
47
Capitolo 4
Conclusioni e sviluppi futuri
L’argomento principale di questo elaborato è stato il problema dell’identificazione
parametrica applicata ad un sistema dinamico lineare a tempo discreto; in particolare
si è posta l’attenzione sull’identificazione di tipo grey-box ( a “scatola grigia” .
Essendo nota la struttura del modello, lo scopo è stato quello di realizzare una
procedura in grado di stimarne i parametri incogniti.
Nella prima parte del lavoro, nel capitolo 2, dopo aver descritto il funzionamento
della tecnica di stima, si è cercato inizialmente di andare a stimare i parametri di un
sistema dinamico elementare, per poi passare ad un sistema più complesso. Durante
le simulazioni effettuate utilizzando il software Matlab, è stato possibile osservare
che la procedura di stima sotto determinate condizioni, quali l’assenza di disturbi di
rumore in ingresso e in uscita, si è rivelata in grado di stimare in modo corretto tutti
gli elementi incogniti dei casi presi in esame. Successivamente è stato introdotto un
disturbo casuale in ingresso e in uscita al sistema preso in considerazione: questo ha
generato un notevole peggioramento della stima dei vari parametri incogniti.
Cap. 4 Conclusioni e sviluppi futuri
48
Nella seconda parte dell’elaborato, precisamente nel capitolo 3, è stata applicata la
procedura di stima parametrica al modello di Samuelson ottenendo una stima corretta
di ciascun parametro. In seguito, a partire dal modello stimato, si è progettata una
legge di controllo composta da un’azione in feedback più un’azione in feedforward.
L’intento della strategia di controllo è stato quello di stabilizzare rispetto all’origine
il sistema attraverso la retroazione dello stato. Mentre invece con l’azione di
controllo in avanti, si è fatto in modo che il punto di equilibrio del sistema fosse un
punto desiderato.
Come detto in precedenza, la qualità della stima diminuisce notevolmente in
presenza di disturbo di rumore, quindi per porvi rimedio, si potrebbe pensare ad
un’evoluzione della procedura di stima presentata in questo lavoro, tentando di
stimare, mediante tecniche di stima del rumore, l’ingresso da utilizzare nel sistema
preso in esame.
In futuro la procedura di stima parametrica potrebbe essere applicata a sistemi
dinamici caratterizzati da un elevato numero di variabili. Utilizzando un algoritmo
quasi-newton (con aggiornamento dell’hessiano tramite tecnica BFGS) per la ricerca
del minimo della funzione di costo, la risoluzione risulterebbe computazionalmente
onerosa. Per ovviare a questo inconveniente, è più opportuno impiegare un metodo
quasi-newton a memoria limitata il quale, utilizzando come tecnica di aggiornamento
dell’hessiano la formula L-BFGS, risulta computazionalmente più efficiente.
Un ulteriore sviluppo potrebbe consistere nell’estendere l’applicazione della tecnica
di stima parametrica realizzata a sistemi dinamici che presentino non linearità.
Per quanto riguarda il problema di controllo trattato nella seconda parte, una
possibilità di progresso potrebbe essere quella di procedere ad un assegnamento della
velocità di convergenza del sistema nel punto di equilibrio desiderato.
49
Appendice A
Codice
Codice delle applicazioni descritte nei capitoli 2 e 3.
un_parametro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
A = 11;
alpha = 3;
z = zeros(A,1);
z(1)= 1;
for k = 1:A-1
z(k+1) = alpha*z(k);
end
global Y3
Y3 = [z(k-6); z(k-5); z(k-4); z(k-3); z(k-2); z(k-1)];
options = optimset('LargeScale','off',...
'MaxIter',7000,...
'MaxFunEvals',7000);
theta_stimato = 1; % condizioni iniziali fminunc
tic
[x,fval] = fminunc('fx_1', theta_stimato, options)
Appendice A - Codice
50
21
22
23
24
toc
disp('Variazione percentuale parametri stimati/reali:')
(alpha - x(1))./alpha
fx_1
1
2
3
4
5
6
7
8
9
10
11
12
13
function J = fx_1(X)
global Y3
Ys = zeros(6,1);
Ys(1) = Y3(1);
for k = 1:4
Ys(k+1) = X(1)*Ys(k);
end
J = norm(Y3-Ys,2); % norma euclidea della differenza tra il
valore reale e valore stimato
end
due_parametri
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A = 11;
alpha_0 = 2;
alpha_1 = 3;
z = zeros(A,1);
z(1)= 1;
z(2)= 1;
for k = 1:A-2
z(k+2) = alpha_0*z(k+1) + alpha_1*z(k);
end
global Y1
Y1 = [z(k-6); z(k-5); z(k-4); z(k-3); z(k-2); z(k-1)];
Appendice A - Codice
51
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
options = optimset('LargeScale','off',...
'MaxIter',7000,...
'MaxFunEvals',7000);
alpha_stimato_0 = 1;
alpha_stimato_1 = 1;
alpha_stimato = [alpha_stimato_0, alpha_stimato_1]; % condizioni
iniziali fminunc
tic
[x,fval] = fminunc('fx_2', alpha_stimato, options)
toc
disp('Variazione percentuale parametri stimati/reali:')
[(alpha_0 - x(1))./alpha_0, (alpha_1 - x(2))./alpha_1]
fx_2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function J = fx_2(X)
global Y1
Ys = zeros(6,1);
Ys(1) = Y1(1);
Ys(2) = Y1(2);
for k = 1:4
Ys(k+2) = X(1)*Ys(k+1) + X(2)*Ys(k);
end
J = norm(Y1-Ys,2);
end
modello_matriciale
1
2
3
4
global N
N = 300;
% disturbo casuale:
noise = 0.1*(-1+2*rand(N,1)); % rand(N,1) genera un vettore
Appendice A - Codice
52
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
colonna di N numeri casuali
noise_output = 0.1*(-1+2*rand(N,1));
A = [-0.4 1 0 0
-0.5 0 1 0
-0.3 0 0 1
-0.6 0 0 0];
C = [1, 2, 3, 4];
B = [1 0 0 0]';
D = 0;
z(1) = 2;
z(2) = 3;
z(3) = 2;
z(4) = 3;
Z = zeros(4, N);
Z(:,1) = [z(1),z(2),z(3),z(4)];
Ts = 0.02;
global u1 u
u = zeros(N,1);
u1 = u;
for k=1:N-1
u1(k)=
1*sin(1*Ts*k)+2*sin(24*Ts*k)+0.2*sin(7*Ts*k)+1.8*sin(15*Ts*k)+3*s
in(9.4*Ts*k)+1.2*sin(5.3*Ts*k)+6*sin(7*Ts*k);
u(k) = u1(k) + noise(k);
Z(:,k+1) = A*Z(:,k) + B*u(k);
end
y = C*Z + D*u' + noise_output';
time = [0:Ts:(N-1)*Ts];
figure(1)% grafico che indica il disturbo del segnale u
plot(time,u,'r',time,u1,'b',time,u-u1,'g')
legend('u(k)','u1(k)','u(k)-u1(k)')
Appendice A - Codice
53
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
figure(2)% grafico che indica il disturbo sul vettore delle
misure y
plot(time,y-noise_output','b',time,y,'r',time,noise_output,'g')
legend('y(k)','y(k) + noise output','noise output')
global Yr2
Yr2 = y;
options = optimset('LargeScale','off',...
'MaxIter',7000,...
'MaxFunEvals',7000);
val_stimati = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; % condizioni
iniziali fminunc
tic
[x,fval] = fminunc('fx_3',val_stimati,options)
toc
x0s = x(1:4)';
as = x(5:5+4-1)';
cs = x(5+4:end);
disp('Variazione percentuale parametri stimati/reali:')
condizioni_iniziali = (Z(:,1)-x0s)./Z(:,1)
matrice_A = (A(:,1)+as)./A(:,1)
matrice_C = (C-cs)./C
fx_3
1
2
3
4
5
6
7
function J = fx_3(X)
global Yr2 N u1
A = [-X(5) 1 0 0
-X(6) 0 1 0
-X(7) 0 0 1
-X(8) 0 0 0];
Appendice A - Codice
54
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
C = [X(9), X(10), X(11), X(12)];
B = [1; 0; 0; 0];
D = 0;
Xs = zeros(4,N);
Xs(:,1) = [X(1),X(2),X(3),X(4)];
for k = 1:N-1
Xs(:,k+1) = A*Xs(:,k) + B*u1(k);
end
Ys = C*Xs + D*u1';
J = norm(Yr2-Ys,2);
end
modello_Samuelson
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
% Modello di Samuelson
% Z: reddito nazionale,
% u: l'investimento autonomo (spesa pubblica),
% c: propensione marginale al consumo, 0<c<1,
% a: propensione marginale all'investimento, a>0.
global Tf
Tf = 700;
c = 0.8;
a = 1;
A = [ c*(1+a) 1;
-a*c 0];
B = [1; 0];
C = [0 -1/c];
D = 0;
Z = zeros(2, Tf);
z(1) = 2;
z(2) = 3;
Appendice A - Codice
55
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Z(:,1) = [z(1),z(2)];
Ts = 0.03;
global u
u = zeros(Tf,1);
for k=1:Tf-1
u(k)=
6*sin(1*Ts*k)+9*sin(24*Ts*k)+7*sin(7*Ts*k)+0.8*sin(15*Ts*k);
Z(:,k+1) = A*Z(:,k) + B*u(k);
end
y = C*Z + D*u';
time = [0:Ts:(Tf-1)*Ts];
figure(1)
plot(time,y,'b',time,u,'r')
grid
title('Modello di Samuelson')
legend('y(k)','u(k)')
global Yv
Yv = y;
options = optimset('LargeScale','off',...
'MaxIter',7000,...
'MaxFunEvals',7000);
val_stimati = [1, 1, 1, 1, 1, 1];
tic
[x,fval] = fminunc('fx_4',val_stimati,options)
toc
global As Cs
As = [x(3) 1; -x(4) 0];
Appendice A - Codice
56
58
59
60
61
62
63
64
65
Cs = [x(5), -x(6)];
x0s = x(1:2)';
disp('Variazione percentuale parametri stimati/reali:')
condizioni_iniziali = (Z(:,1)-x0s)./Z(:,1)
matrice_A = [(A(1)-x(3))./A(1); (A(2)+x(4))./A(2)]
matrice_C = [(C(1)-x(5))./C(1), (C(2)+x(6))./C(2)]
fx_4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function J = fx_4(X)
global Yv Tf u
A = [X(3) 1;
-X(4) 0];
B = [1; 0];
C = [X(5), -X(6)];
D = 0;
Xs = zeros(2,Tf);
Xs(:,1) = [X(1),X(2)];
for k = 1:Tf-1
Xs(:,k+1) = A*Xs(:,k) + B*u(k);
end
Ys = C*Xs + D*u';
J = norm(Yv-Ys,2);
end
Appendice A - Codice
57
controllo_modello_Samuelson
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
global As Cs
Tf = 50;
c = 0.8;
a = 1;
A = [ c*(1+a) 1;
-a*c 0];
B = [1; 0];
C = [0 -1/c];
D = 0;
F = [2, 2.25]; % calcolato manualmente
X = zeros(2, Tf);
x(1) = 1;
x(2) = 1;
X(:,1) = [x(1),x(2)];
Xdes = [10 ; -8]; % punto in cui si vuole far convergere il
sistema
p = [0.5 , 0.7]; % autovalori asseganti nella retroazione
K = - place(As,B,p); % matrice K per fare in modo che il
polinomio caratteristico di (As+BK)sia di SCHUR
u = zeros(Tf,1);
for k=1:Tf-1
u(k) = F*Xdes + K*(X(:,k) - Xdes);
X(:,k+1) = (As+B*K)*X(:,k) + B*(F - K)*Xdes
end
y = Cs*X + D*u';
58
Elenco delle figure
1.1 Schema sistema dinamico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Esempio curva di regressione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Sequenza PRBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1 Metodo del gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Ingresso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Ingresso sinusoidale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Variazione stima condizioni iniziali reali/stimate . . . . . . . . . . . . . . . . . . . .
2.5 Variazione stima condizioni iniziali reali/stimate con disturbo . . . . . . . . . .
2.6 Ingresso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
26
27
2.7 Uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8 Zoom uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1 Andamento di un ciclo economico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Grafo d’influenza del modello macroeconomico di Samuelson . . . . . . . . . 32
3.4 Elementi problema di controllo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5 Andamento sistema sottoposto a controllo . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.6 Schema di controllo in feedforward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.7 Schema di controllo in feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Elenco delle figure
59
3.8 Schema di controllo in feedback feedforward . . . . . . . . . . . . . . . . . . . . .
3.9 Convergenza in del sistema controllato . . . . . . . . . . . . . . . . . . . . . . . .
43
46
60
Bibliografia
[1] Sergio Bittanti, “Identificazione dei Modelli e sistemi adattativi”, Pitagora
Editrice, 2004.
[2] T. Söderdtröm, P.Stoica, “System Identification”, Prentice-Hall, 1989.
[3] L. Ljung, “System Identification-theory for the user”, Prentice-Hall, 1999.
[4] L. Grippo, M. Sciandrone, “Metodi di ottimizzazione non vincolata”, Springer,
Unitext, 2011.
[5] Mathworks. http://www.mathworks.it.
[6] Antonio Tornambè, “Fondamenti di Automatica”, Clut, 2006.
[7] O.M. Grasselli, L. Menini, S. Galeani, “Sistemi Dinamici”, Hoepli, 2008.
61
Ringraziamenti
In primo luogo ringrazio il mio relatore, l’Ing. Daniele Carnevale che con la sua
competenza e disponibilità mi ha guidato durante la creazione di questa tesi.
Un immenso grazie va alla mia famiglia, che in questi anni mi ha sostenuto in ogni
momento, continuando sempre a credere in me.
Grazie alla mia sorellona Silvia per il supporto e l’ospitalità di cui ho tanto avuto
bisogno durante questo percorso.
Un grande ringraziamento va ai miei due coinquilini storici Christian e Andrea che
con le loro cenette ignoranti hanno alleviato il peso delle fatiche universitarie.
Un importante ringraziamento va a tutti i miei colleghi di corso, con cui ho condiviso
questo arduo percorso passando attraverso momenti belli e meno belli, ringrazio in
particolare Vincenzo, Leandro, Alessio, Cecilia e Lucrezia che oltre ad essere
colleghi considero veri amici.
Un grazie a tutti gli amici del gruppo “Gli Scavasacan” per le mille avventure vissute
insieme.
Infine, ma non meno importante, un ringraziamento speciale va alla mia ragazza,
Ilaria, grazie ai suoi preziosi consigli e al suo costante sostegno sono stato in grado di
portare a termine questo cammino.