universitÀ degli studi di roma tor...

65
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

Upload: danganh

Post on 15-Feb-2019

253 views

Category:

Documents


0 download

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

Alla mia famiglia

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.