• Non ci sono risultati.

Ottimizzazione di sistemi di controllo di velivoli con metodologie

N/A
N/A
Protected

Academic year: 2021

Condividi "Ottimizzazione di sistemi di controllo di velivoli con metodologie"

Copied!
101
0
0

Testo completo

(1)

Universit`

a degli Studi di Pisa

Facolt`

a di Ingegneria

Corso di Laurea in Ingegneria Aerospaziale

Tesi di Laurea

Ottimizzazione stocastica di sistemi

di controllo di velivoli

Relatore Candidato

Prof. Giovanni Mengali Michele Sciacca

(2)
(3)

Meglio sapere tutto di niente, che niente di tutto.

Giulio Mattei

We teach people how to remember, we never teach them how to grow.

(4)

Sommario

Nel presente lavoro sono stati studiati diversi algoritmi di ottimizzazione, appli-cati alla risoluzione di problemi di controllo robusto.

Il problema, in generale, consiste nella determinazione dei valori dei guadagni che forniscono prestazioni e robustezza soddisfacenti.

In particolare sono stati analizzati e, ove possibile, perfezionati, algoritmi stocastici di tipo Particle Swarm e Genetico.

Nella prima parte viene presentato il problema del controllo robusto, seguendo l’approccio H∞, illustrandone le problematiche e i vantaggi; infine viene

intro-dotta la fitness function, funzione di merito (funzione obiettivo) che deve essere massimizzata dall’algoritmo di ottimizzazione.

Nella seconda parte della tesi vengono illustrate le suddette metodologie stoca-stiche, le migliorie e le varianti che sono state formulate, e i risultati di prove esten-sive condotte per indentificare l’influenza, sul buon funzionamento dell’algoritmo, dei vari parametri in gioco.

Nella terza parte sono illustrati alcuni esempi di ottimizzazione, esponendo i risultati dei diversi approcci.

(5)

Introduzione

Il problema dell’ottimizzazione riveste un’importanza centrale nell’ingegneria e, con la crescita esponenziale delle capacit`a di calcolo degli elaboratori, negli ulti-mi anni si sono resi possibili metodi di indagine precedentemente impossibili. Gli algoritmi stocastici ne fanno sicuramente parte, ed hanno reso possibile l’ottimiz-zazione di funzioni a pi`u variabili non convesse.

Nell’ambito del controllo robusto, il problema di ottimizzazione consiste nel de-terminare i valori dei guadagni del sistema di controllo, che ne massimizzano i parametri di robustezza e le prestazioni. I problemi principali di questo approccio sono la valutazione dei margini di robustezza (e quindi della funzione obiettivo), che in generale richiede calcoli iterativi relativamente lunghi, e il numero dei va-lori dei guadagni da determinare, che rende dimensionalmente ampio il dominio di ricerca.

Organizzazione della tesi

La tesi `e organizzata nel modo seguente:

Capitolo 1: Viene presentato il problema del controllo robusto, illustrando il significato e la metodologia di calcolo del margine di robustezza γ e i parametri di prestazione, come il tempo di salita, l’errore asintotico e l’errore quadratico integrale. Questi valori vengono poi racchiusi nella funzione obiettivo, che ha il compito di essere massimizzata dal risolutore numerico, e rappresenta il compro-messo tra robustezza e prestazioni del sistema di controllo.

Capitolo 2: Si illustrano il funzionamento dell’algoritmo di ottimizzazione Particle Swarm, i parametri caratteristici e le potenzialit`a. Vengono poi presen-tate alcune varianti dell’algoritmo di base, e i risultati di prove estensive volte a perfezionare l’algoritmo stesso, nella struttura e nella scelta dei parametri.

Capitolo 3: Gli algoritmi di tipo genetico sono oggetto del capitolo 3, e la trattazione `e condotta in maniera del tutto analoga al capitolo 2.

(6)

iii

Capitoli 4, 5 e 6: Nei capitoli 4, 5 e 6 sono presentati tre esempi di ap-plicazione degli algoritmi perfezionati nei capitoli precedenti. In particolare il primo esempio riguarda un controllore della velocit`a angolare di beccheggio del velivolo F-16. Il secondo esempio riguarda un wing-leveller e il terzo esempio un controllore della velocit`a di discesa prima della manovra di atterraggio.

Conclusioni: Vengono infine esposte le conclusioni del presente lavoro, e alcuni possibili sviluppi futuri.

(7)

Ringraziamenti

I miei ringraziamenti sono rivolti, innanzitutto, al Prof Mengali che, nonostante i suoi numerosi impegni, ha sempre fornito il suo aiuto in qualsiasi momento. In secondo luogo ringrazio la mia famiglia, che mi ha permesso di sfruttare al mas-simo questi bellissimi anni di vita accademica, sostenendomi nei frangenti difficili e regalandomi momenti altrettanto piacevoli. Chiedo scusa alla mia mamma, se non sempre riesco a dimostrare il bene che le voglio, e ringrazio infinitamente mio padre per avermi convinto ad intraprendere questa carriera.

Non posso dimenticare, inoltre, i miei insostituibili compagni di corso: Antonello, con cui ho condiviso interamente il percorso universitario, compagno di svariati esami ma, soprattutto, di numerose feste e viaggi pi`u o meno culturali; Michele Corsetti, che con le sue bacchettate mi ha spinto a impegnarmi nei momenti de-cisivi; Michele (detto ‘Il Puma’) e Alessio, che non mi hanno mai negato i loro preziosissimi appunti.

Desidero dedicare uno spazio speciale, in questa pagina e nel mio cuore, a Cristina, per il suo affetto, il sostegno e la dedizione, nelle piccole e nelle grandi cose, tutti i giorni.

Infine vorrei sottolineare l’importanza e la profondit`a della mia esperienza alla Scuola Superiore Sant’Anna: cinque anni di vita collegiale non si dimenti-cano facilmente, e non credo in futuro di trovare qualcosa di cos`ı importante e totalizzante. `E difficile spiegare certe sensazioni, l’unico modo di capire `e viver-le, sono felicissimo di averlo fatto. Grazie, allievi tutti, grazie del vostro forte, rassicurante, abbraccio caldo.

(8)

Indice

I Ottimizzazione stocastica 1

1 Ottimizzazione H∞ 2

1.1 Il margine di robustezza . . . 2

1.2 Computo del margine di robustezza in MatLab . . . 4

1.3 La funzione obiettivo . . . 5

2 Ottimizzazione Particle Swarm 6 2.1 Descrizione dell’algoritmo . . . 7

2.1.1 Inizializzazione delle particelle . . . 7

2.1.2 Calcolo delle velocit`a . . . 9

2.1.3 Aggiornamento della posizione . . . 11

2.2 Inserimento dei vincoli . . . 11

2.3 Criterio di convergenza . . . 12

2.4 Varianti all’algoritmo di base . . . 12

2.4.1 Particelle esploratrici . . . 12

2.4.2 Affinamento finale . . . 13

2.4.3 Dominio di ricerca logaritmico . . . 13

2.5 Scelta delle opzioni dell’ottimizzatore PSO . . . 14

2.5.1 Numero di particelle . . . 14

2.5.2 Velocit`a iniziale . . . 15

3 Ottimizzazione mediante algoritmi genetici 17 3.1 Algoritmo . . . 17

3.1.1 Inizializzazione degli individui . . . 18

3.1.2 Riproduzione degli individui . . . 18

3.2 Inserimento dei vincoli . . . 19

3.3 Condizione di convergenza . . . 20

II Esempi applicativi 22

(9)

INDICE vi

4.1 Struttura del sistema di controllo . . . 23

4.2 Il sistema in forma canonica . . . 25

4.3 La funzione obiettivo . . . 26

4.4 Definizione dei vincoli . . . 28

4.5 Calcolo del margine di robustezza γ . . . 28

4.6 Risultati dell’ottimizzazione a sciame di particelle . . . 28

4.7 Risultati dell’ottimizzazione mediante algoritmi genetici . . . 30

4.8 Ottimizzazione mediante algoritmi tradizionali . . . 32

4.9 Dati statistici sull’ottimizzazione a sciame di particelle . . . 32

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici . . . 33

5 Wing-leveller 41 5.1 Struttura del sistema di controllo . . . 41

5.2 Il sistema in forma canonica . . . 44

5.3 La funzione obiettivo . . . 45

5.4 Definizione dei vincoli . . . 48

5.5 Risultati dell’ottimizzazione a sciame di particelle . . . 48

5.6 Risultati dell’ottimizzazione mediante algoritmi genetici . . . 53

5.7 Ottimizzazione mediante algoritmi tradizionali . . . 56

5.7.1 LQ Output Feedback Design . . . 56

5.7.2 Loopshaping . . . 59

5.8 Confronto dei risultati . . . 62

6 Glide-Slope Coupler 64 6.1 Il sistema in forma canonica . . . 67

6.2 La funzione obiettivo . . . 67

6.3 Risultati dell’ottimizzazione a sciame di particelle . . . 70

6.4 Risultati dell’ottimizzazione mediante algoritmi genetici . . . 74

6.5 Ottimizzazione mediante algoritmi tradizionali . . . 78

6.6 Confronto dei risultati . . . 81

List of Figures 87

List of Tables 90

(10)

Parte I

(11)

Capitolo

1

Ottimizzazione H

1.1

Il margine di robustezza

Uno dei problemi maggiori della sintesi dei controllori di sistemi MIMO (multiple input multiple output ) `e la mancanza di un criterio di robustezza semplice ed efficace. Nel caso di sistemi SISO (single input single output ), invece, la robu-stezza del sistema `e ben definibile attraverso i noti criteri del margine di fase e del margine di guadagno. Nel caso dei sistemi MIMO, questi due criteri possono essere troppo ottimistici o addirittura inaffidabili, soprattutto nel caso di sistemi multipli fortemente accoppiati.

Nel caso di sistemi complessi, `e necessario definire un modello dell’incertezza del sistema. Si possono definire incertezze moltiplicative o additive, oppure altri modelli pi`u complessi.

Nel presente lavoro si `e scelto di utilizzare una particolare modellizzazione dell’incertezza, basata sulla normalizzazione coprima. Questa ha il vantaggio di essere semplice ed al tempo stesso flessibile, inoltre risulta perfettamente imple-mentata nel software MatLab, quindi di facile di utilizzo.

Dato un sistema G, una fattorizzazione coprima destra `e tale che:

G(s) = Ml−1(s)Nl(s) (1.1)

in cui Nl(s) e Ml(s) sono funzioni stabili coprime. La stabilit`a implica il fatto che

Nl(s) contenga tutti gli zeri sul RHP di G(s) e Ml(s) contenga, come zeri, tutti i

poli su RHP di G(s). Il fatto di essere coprime implica che non ci sono zeri RHP in comune tra le due matrici, quindi non c’`e cancellazione nella moltiplicazione Nl(s)Ml−1(s). Matematicamente significa che esistono due matrici di funzioni di

trasferimento stabili Ul(s) e Vl(s) tali che:

(12)

1.1 Il margine di robustezza 3

A questo punto possiamo scrivere il modello di incertezza del sistema G:

Gp=(Ml+ ∆M)−1 (Nl+ ∆N) : k∆N ∆Mk∞< 

(1.3) in cui ∆M e ∆N sono matrici di funzioni di trasferimento stabili non note, e

rappresentano l’incertezza del sistema nominale G. Gp rappresenta quindi il

sistema reale, visibile in figura 1.1.

N

l

M

l-1

K

M

N + -+ + y u Φ

Figura 1.1: Sistema reale con incertezze, in ciclo chiuso

`

E possibile definire un margine di robustezza, riarrangiando il sistema in figura 1.1 nella forma illustrata nella figura 1.2, con:

∆ = [∆N ∆M] (1.4) M =K I  (I − GK)−1Ml−1 (1.5)

y u∆

M

(13)

1.2 Computo del margine di robustezza in MatLab 4

Dal teorema del piccolo guadagno (vedi[1]) si ha che si ha stabilit`a robusta

per:

∀ k[∆N ∆M]k∞≤  ⇔ kM k∞<

1

 (1.6)

Si noti che la matrice M `e semplicemente la matrice di funzioni di trasferi-mento da φ a [u y]T in figura 1.1 ed `e conveniente definire γ come:

γ = K I  (I − GK)−1Ml−1 ∞ −1 (1.7)

1.2

Computo del margine di robustezza in MatLab

Il computo del margine di robustezza γ `e effettuato automaticamente dal software MatLab, mediante la funzione ncfmargin.

La funzione richiede come input il sistema in ciclo aperto e il sistema che effettua il feedback. `E necessario inoltre eliminare la linea degli ingressi, come illustrato nelle figure 1.3 e 1.4.

P

K r

u

y

Figura 1.3: Architettura con linea degli ingressi di riferimento

P

K

u y

Figura 1.4: Architettura del sistema idonea al calcolo del margine γ

La funzione utilizza procedure di natura iterativa, quindi la valutazione del margine di robustezza `e computazionalmente onerosa.

(14)

1.3 La funzione obiettivo 5

1.3

La funzione obiettivo

In tutti i problemi di ottimizzazione `e necessario definire una funzione obiettivo, che riassuma tutte le esigenze di robustezza e prestazioni. All’interno della fun-zione obiettivo possono anche essere inseriti i vincoli, mediante l’utilizzo di una funzione di penalizzazione.

Ad esempio, nel presente lavoro, `e sempre necesse il vincolo di stabilit`a del sistema in ciclo chiuso. Si `e scelto di soddisfare tale vincolo attraverso l’intro-duzione di una funzione di penalizzazione che tenga conto del modulo dei poli instabili (vedi ad esempio la (4.18), la (5.25) e la (6.20) ). In questa maniera le soluzioni instabili vengono scartate, in quanto fortemente penalizzate, e lo sciame si sposta automaticamente verso le zone stabili o, almeno, meno instabili (quindi verso le zone in cui i poli su RHP hanno modulo piccolo).

L’ottimizzatore numerico ha il compito infine di minimizzare (o massimizzare) la funzione. In particolare, nel presente lavoro si fa riferimento alla minimizza-zione della stessa.

Gli indici prestazionali che possono comparire nella funzione obiettivo sono: • Tempo di salita

• Sovraelongazione • Tempo di assestamento • Errore a regime

• Smorzamento dei poli complessi (stabili)

• Altri indici formulati ad hoc (vedi gli ultimi capitoli) `

E importante sottolineare un aspetto cruciale nella definizione del problema di ottimizzazione: i risultati dipendono in maniera forte dal peso relativo che si d`a ai vari termini della funzione obiettivo.

In assenza di richieste specifiche ben precise, `e possibile procedere per tentativi, modificando i pesi relativi fino al conseguimento di risultati soddisfacenti.

Un altro approccio che si pu`o adottare `e quello di calcolare, se possibile, i parametri prestazionali e di robustezza partendo da un controllore di prima stima e in base a quelli definire i pesi della funzione obiettivo, dando maggior peso ai termini relativi ai parametri che non si ritengono soddisfacenti.

(15)

Capitolo

2

Ottimizzazione Particle Swarm

La ricerca del minimo assoluto di funzioni a pi`u variabili e non lineari `e spesso difficile per algoritmi di tipo gradientale, per diversi motivi. Innanzitutto `e ne-cessario fornire un punto di partenza per la ricerca, e non sempre `e possibile o perlomeno agevole farlo, inoltre il risultato dell’ottimizzazione dipende in manie-ra forte dal punto scelto. Il problema maggiore di questi algoritmi tmanie-radizionali `

e, infatti, il rischio di pervenire ad un risultato che rappresenta solamente un minimo locale, e non assoluto, della funzione.

Un altro problema, non secondario, `e il fatto che spesso non `e possibile calcolare analiticamente il gradiente della funzione da ottimizzare, complicando l’algoritmo nella forma e aumentandone la pesantezza computazionale.

Questa situazione si presenta sovente nei problemi di ottimizzazione ingegneristi-ci, nei quali viene enunciata una funzione di merito (funzione obiettivo o fitness function), che rappresenta la somma di diverse esigenze da soddisfare, spesso non esplicitabile o rappresentabile analiticamente. Il calcolo del gradiente, in questi casi, dev’essere necessariamente effettuato valutando numericamente il rapporto incrementale in un intorno del punto considerato. In caso di funzioni non re-golari, la scelta della dimensione dell’intorno pu`o essere critica, in quanto pu`o influenzare la bont`a della valutazione del gradiente.

Per questi motivi sono stati sviluppati metodi di ricerca alternativi, tra cui quelli di tipo stocastico, resi possibili dall’aumento delle capacit`a computazionali degli elaboratori. Queste metodologie si basano su una ricerca a vasto raggio, in un dominio fissato (con vincoli) oppure in un dominio espandibile a piacere.

L’ottimizzazione a sciame di particelle (spesso abbreviata con l’acronimo PSO ) `

e un algoritmo stocastico relativamente semplice da programmare, ispirato al comportamento degli insetti. Lo sciame, dopo essere stato inizializzato casual-mente, si muove nel dominio della funzione e il movimento di ogni particella `

e governato da due istinti: l’esplorazione delle zone che ritiene essa stessa pi`u fruttuose e l’esplorazione delle zone ritenute pi`u fruttuose dall’intero sciame.

(16)

2.1 Descrizione dell’algoritmo 7

2.1

Descrizione dell’algoritmo

Come anticipato precedentemente, l’algoritmo di base, nella sua formulazione ori-ginale, `e molto semplice. L’ottimizzazione `e divisa in passi iterativi, il cui numero pu`o essere fissato dall’utente oppure l’iterazione procede fino al soddisfacimento di un criterio di convergenza.

Nella prima fase vengono inizializzate le particelle, che vengono posizionate ca-sualmente all’interno del dominio. Successivamente, per ogni particella, viene calcolato il valore della funzione di merito (funzione obiettivo). Prima di comin-ciare il processo iterativo si ha quindi una matrice di dimensione n×p, le cui righe rappresentano le p particelle inizializzate, ognuna della quale `e formata dagli n valori delle variabili da cui dipende la funzione obiettivo; si ha inoltre un vettore, di dimensione p, che rappresenta il valore della funzione obiettivo corrispondente ad ogni particella.

Ad ogni passo del processo iterativo la velocit`a e la posizione delle particelle vengono aggiornate, vengono calcolati i corrispondenti nuovi valori della funzione obiettivo e si procede al passo successivo. In figura 2.1 `e schematizzato l’algoritmo di base.

Nei paragrafi successivi verr`a spiegato, dettagliatamente, come avvengono l’inizializzazione e il calcolo di velocit`a e posizione ad ogni passo.

2.1.1 Inizializzazione delle particelle

Per il posizionamento iniziale delle particelle `e necessario definire un dominio di ricerca, quindi dei limiti superiore ed inferiore, all’interno del quale verranno posi-zionate casualmente le particelle. Per ovvie ragioni, anche se l’ottimizzazione non fosse di tipo vincolato, ovvero senza alcuna restrizione sul dominio, `e necessario definire un campo di ricerca iniziale da cui cominciare e da cui, eventualmente, le particelle potranno uscire. Questa piccola limitazione, inevitabile, pu`o esse-re vista come l’analogo della scelta del punto iniziale per gli algoritmi di tipo gradientale; scegliendo un dominio iniziale ristretto, diventa improbabile che le particelle si allontanino molto, lasciando zone inesplorate. Parimenti, la scelta di un dominio vasto rallenta la convergenza. Una volta definiti quindi i due vetto-ri limite del dominio Bl e Bu, entrambi di dimensione n, le particelle vengono

generate casualmente secondo la formula (2.1):

Pi = Bl+ ri∗ (Bu− Bl) (2.1)

in cui ri `e un vettore di dimensione n di numeri casuali compresi tra 0 e 1. Col

simbolo ∗ si indica la moltiplicazione elemento per elemento. In questo modo, ogni punto all’interno dei limiti forniti ha la stessa probabilit`a di essere scelto come posizione iniziale per una particella. La figura 2.2 esemplifica quanto detto.

In modo analogo pu`o essere definita la velocit`a iniziale,

(17)

2.1 Descrizione dell’algoritmo 8

Inizializzazione particelle

Calcolo della funzione obiettivo

Calcolo delle velocità

Aggiornamento posizione

Ricalcolo della funzione obiettivo

Convergenza?

FINE NO

SI

Figura 2.1: Diagramma di flusso dell’algoritmo PSO di base

in cui k `e uno scalare generalmente compreso tra 0 e 1, e ri un vettore di

dimen-sione n di numeri casuali compresi tra 0 e 1. Ponendo k = 0, si hanno velocit`a iniziali nulle. Si veda il paragrafo 2.5.2 per un approfondimento riguardo questa scelta.

Il posizionamento iniziale pu`o anche procedere diversamente, senza la scelta di limiti inferiore e superiore. In particolare, se si pensa di trovare la soluzione nelle vicinanze di un punto, oppure se si conosce l’ordine di grandezza della soluzione, si pu`o pensare di distribuire le particelle normalmente attorno a questo punto. In questo modo le particelle non hanno limiti teorici sul loro posizionamento, ma in pratica si addenseranno nei pressi del punto fornito (vettore X0). `E necessario,

inoltre, fornire i valori della deviazione standard per ogni variabile del dominio, riassunti nel vettore σ, di dimensione n. Le particelle vengono quindi generate secondo la formula 2.3:

Pi = X0+ σ ∗ ri (2.3)

(18)

me-2.1 Descrizione dell’algoritmo 9 B1L B 1 U B2L B2 U

Figura 2.2: Porzione del dominio in cui vengono posizionate le particelle

dia nulla e deviazione standard pari a 1. Ovviamente la scelta di basse varianze `e del tutto analoga alla scelta di un dominio iniziale ristretto, con gli stessi vantaggi e svantaggi.

Dopo l’inizializzazione, per ogni particella viene calcolato il valore della funzione obiettivo.

2.1.2 Calcolo delle velocit`a

Il calcolo della velocit`a di ogni particella contiene tutti gli elementi chiave della metodologia a sciame di particelle.

Per determinare la direzione in cui si muover`a la particella si tiene conto di di-versi fattori. In primo luogo si considera il cosiddetto global best che rappresenta la miglior posizione (maggior valore della funzione obiettivo) mai raggiunta da qualsiasi particella dello sciame. Questo fattore simboleggia la tendenza della particella a seguire le informazioni che le pervengono dallo sciame. In secondo luogo si considera il particle best, la miglior posizione mai raggiunta dalla par-ticella considerata; questa rappresenta la fiducia della parpar-ticella in s´e stessa. Si considera inoltre anche l’inerzia della particella, che interviene attraverso un coef-ficiente ω che moltiplica la velocit`a della particella al passo precedente. Questo favorisce la casualit`a del movimento delle particelle, rendendo maggiormente cao-tica la ricerca. La velocit`a della particella i-esima al passo k-esimo risulta quindi essere:

vki = ω · vk−1i + c1· r1∗ (Xg− Pi) + c2· r2∗ (Xpi − Pi) (2.4)

nella quale vk−1i rappresenta la velocit`a della particella al passo precedente, Xg la migliore posizione mai raggiunta dallo sciame durante tutti i passi precedenti, e Xpi la migliore posizione raggiunta dalla particella stessa. I vettori r1 e r2,

(19)

2.1 Descrizione dell’algoritmo 10

parametri scalari molto importanti; generalmente la scelta pi`u comune `e porre c1 = c2 = 2. In questo modo la fiducia della particella nel gruppo ha lo stesso

peso della fiducia in s´e stessa. L’utilizzo del valore 2 ha, inoltre, un significato ben preciso: essendo i numeri casuali, che moltiplicano ciascuno dei contributi, distribuiti uniformemente tra 0 e 1, mediamente c1· rj1 = 1 e allo stesso modo

c2· r2j = 1. Ci`o significa che, per quanto riguarda i singoli contributi, in media la

particella tende a spostarsi sul global best o sul particle best. La velocit`a finale, somma dei vari elementi, porter`a quindi la particella in un punto dello spazio casuale, all’interno di un’area ben determinata. Nella figura 2.3 `e visibile lo spazio in cui la particella pu`o spostarsi, nel caso di dominio di dimensione 2 e, per semplicit`a, ω = 0. Se si sceglie c1 = c2= 1, si ha che, nel caso particolare in

cui global best coincide con particle best, la particella in media tende a spostarsi su questo punto. C2 ( X i p-P i ) C2( X g- Pi ) Xg Xip Pi

Figura 2.3: Lo spazio racchiuso dal parallelogramma `e la porzione di dominio in

cui la particella pu`o spostarsi, ogni punto interno `e equiprobabile. Per

semplicit`a rappresentativa, `e stato posto ω = 0; inoltre c1= c2= 2

Anche nel calcolo delle velocit`a `e possibile formulare una variante. Invece di scegliere coefficienti casuali uniformemente distribuiti, analogamente a quanto detto nel paragrafo precedente, per il posizionamento iniziale delle particelle, `e possibile utilizzare una distribuzione normale. In questo caso `e necessario fornire al programma il valor medio e la varianza della distribuzione di probabilit`a; coe-rentemente con quanto spiegato precedentemente, si pu`o scegliere di avere media unitaria. Per quanto riguarda la varianza, un alto valore favorisce una ricerca pi`u ampia, mentre un valore minore rende la convergenza pi`u veloce, ma con il

(20)

2.2 Inserimento dei vincoli 11

rischio di pervenire ad un massimo locale e non globale. La formula per il calcolo assume questa forma:

vki = ω · vk−1i + (m1+ σ1∗ r1) ∗ (Xg− Pi) + (m2+ σ2∗ r2) ∗ (Xpi − Pi) (2.5)

in cui i vettori m1 e m2 rappresentano il valor medio, σ1 e σ2 la deviazione

standard della distribuzione di probabilit`a.

2.1.3 Aggiornamento della posizione

Il calcolo della nuova posizione `e molto semplice:

Pki = Pk−1i + vki · ∆t (2.6)

Si noti che il fittizio passo di integrazione `e unitario (∆t = 1). Questa scelta non inficia la generalit`a, sarebbe ridondante infatti inserire un parametro che ha lo stesso effetto dei coefficienti ω, c1e c2; scalando proporzionalmente i tre termini

si ottiene lo stesso risultato. In poche parole, inserendo il parametro del passo di integrazione, i quattro coefficienti sono linearmente dipendenti.

2.2

Inserimento dei vincoli

Uno dei principali vantaggi dell’ottimizzazione a sciame di particelle `e la sempli-cit`a con la quale si possono inserire vincoli sul dominio di ricerca. `E sufficiente, infatti, limitare la libert`a di spostamento delle particelle, per impedire la ricer-ca all’infuori dello spazio desiderato. Inizialmente nel presente lavoro era stata adottata la seguente strategia:

• calcolo delle velocit`a

• controllo del soddisfacimento dei vincoli

• se la particella non esce dal dominio imposto viene spostata normalmente • se la particella esce dal dominio imposto, essa viene posizionata nel punto

di uscita

Questa metodologia per`o ha l’effetto sgradevole di addensare le particelle sui margini, inficiando la bont`a della ricerca stocastica. Si `e scelto pertanto di far rimbalzare le particelle che si spingono oltre i confini preposti, in modo da rende-re pi`u casuale il loro movimento; questa opzione `e stata giudicata soddisfacente, perci`o `e stata adottata in tutti i casi di ottimizzazione vincolata.

Vi sono casi per`o in cui i vincoli non sono applicabili direttamente al dominio, e quindi non semplicemente esplicitabili. Un esempio inerente all’oggetto del pre-sente lavoro `e rappresentato dal vincolo, implicito, che il sistema in ciclo chiuso sia stabile.

(21)

2.3 Criterio di convergenza 12

La possibilit`a di calcolare il margine di robustezza γ prescinde dalla stabilit`a del sistema (vedi paragrafo 1), ovviamente in caso di sistema instabile, non ha senso parlare di margine di robustezza e, sicuramente, la soluzione `e da scartare. Nel caso specifico considerato, si `e scelto di utilizzare una funzione di penalit`a che abbassa di molto il valore della funzione obiettivo, in caso di instabilit`a del siste-ma. In questo modo la soluzione, bench`e potenzialmente valida, viene scartata a causa del basso valore della funzione obiettivo.

`

E possibile facilitare le particelle a spostarti in zone migliori del dominio, sceglien-do il valore della penalizzazione proporzionalmente al modulo dei poli instabili. In questo modo le particelle tendono a spostarsi facilmente verso posizioni pi`u favorevoli. Scegliendo una aliquota di penalizzazione fissa, infatti, nell’ipotetico caso in cui tutte le particelle si vengano a trovare in una zona penalizzata, la ri-cerca avrebbe luogo su un plateu della funzione obiettivo, e quindi procederebbe casualmente.

2.3

Criterio di convergenza

Dopo aver definito l’algoritmo di base e l’applicazione dei vincoli, `e necessario formulare un criterio di convergenza.

L’ottimizzazione a sciame di particelle, infatti, in linea teorica potrebbe continua-re fino a quando tutte le particelle sono ferme nello stesso punto. Questo per`o, nella pratica, avviene dopo innumerevoli iterazioni. Inoltre non vi `e alcun van-taggio ad aspettare che tutti i componenti dello sciame si fermino, poich`e quando questo avviene l’ottimizzazione `e gi`a stata portata a termine da tempo.

Le opzioni possibili rimangono due, fermare l’ottimizzazione dopo un numero fis-so di iterazioni, oppure attendere la stabilizzazione del valore massimo trovato. Nel primo caso si fissa una quantit`a di passi iterativi, al termine dei quali viene scelta la miglior posizione mai raggiunta dalle particelle (global best ) come risul-tato dell’ottimizzazione.

Nel secondo caso, quando il global best non cambia per un certo numero di ite-razioni, cio`e l’algoritmo `e giunto ad un punto di stallo, si considera ultimata l’ottimizzazione.

2.4

Varianti all’algoritmo di base

Nel presente lavoro sono state formulate delle varianti all’algoritmo di base della PSO.

2.4.1 Particelle esploratrici

La prima variante `e l’introduzione di una classe di particelle, denominate esplo-ratori. La modifica `e stata pensata in analogia a quanto avviene negli algoritmi genetici, nei quali le varie particelle vengono ordinate in base al corrisponden-te valore della funzione obiettivo, e solo le prime si riproducono. Nella versione della PSO modificata, ad ogni passo dopo che le particelle sono state ordinate,

(22)

2.4 Varianti all’algoritmo di base 13

le ultime n diventano esploratori. Questo significa che esse hanno maggior li-bert`a di movimento, che si concretizza con un loro riposizionamento totalmente casuale all’interno del dominio, oppure con un aumento della casualit`a del lo-ro spostamento, aumentando i coefficienti c1, c2 e ω. In questo modo, ad ogni

passo iterativo, vengono esplorate nuove zone del dominio, favorendo una ricerca di tipo globale. Nell’eventualit`a in cui le particelle dello sciame siano poche e il posizionamento iniziale particolarmente svantaggioso, infatti, la ricerca potrebbe arrestarsi in un massimo locale. Con l’utilizzo degli esploratori, invece, si au-menta di molto il numero di volte in cui la funzione viene valutata in un punto casuale, a fronte di un lieve rallentamento della convergenza.

2.4.2 Affinamento finale

La seconda modifica `e stata pensata per affinare la ricerca nelle sue fasi finali. In particolare, se la condizione di stop dell’algoritmo `e a numero di passi fisso, durante gli ultimi passi i coefficienti c1 e c2 vengono dimezzati, e ω viene posto

uguale a 0.01.

In questo modo si favorisce l’addensarsi delle particelle nella zona in cui si trova il global best, rendendo possibile una ricerca di tipo fine.

Nel caso la condizione di stop non fosse a numero di passi fisso, ma seguisse un criterio di convergenza basato sullo stallo della soluzione (il global best non cam-bia per un certo numero di iterazione), `e possibile affinare la ricerca proprio in questa fase.

Ad esempio, se il criterio di convergenza prevede lo stop dell’algoritmo dopo 40 iterazioni senza sensibili miglioramenti della soluzione, `e possibile ridurre la velocit`a media delle particelle dopo le prime 20 iterazioni senza miglioramenti, addensandole nei pressi della possibile soluzione, per favorirne l’affinamento. Se poi l’algoritmo non giunge ad uno stop, poich`e viene trovata una soluzione con valore della funzione obiettivo maggiore, i parametri di movimento vengono ri-pristinati ai valori iniziali.

In figura 2.4 `e esemplificato il funzionamento dell’algoritmo modificato.

2.4.3 Dominio di ricerca logaritmico

La terza variante che `e stata formulata `e stata pensata appositamente per i pro-blemi di ottimizzazione dei sistemi di controllo, in particolare nella scelta dei guadagni.

Tenendo conto infatti che, generalmente, nella scelta di un guadagno, se ne cono-sce il segno del valore, rimane da determinare solamente il modulo. In mancanza di una prima stima, il modulo sar`a compreso tra 0 e +∞, `e quindi conveniente fare muovere le particelle dello sciame nello spazio generato dal logaritmo del modulo. In questo modo, lo spazio di ricerca si infittisce per valori prossimi allo 0 e si allarga all’aumentare del modulo. Intuitivamente si capisce infatti che la differenza che c’`e tra un valore del guadagno pari a 0.1 e 0.2 non `e la stessa che

(23)

2.5 Scelta delle opzioni dell’ottimizzatore PSO 14

vi `e tra 10.1 e 10.2.

In tabella 2.1 sono riportati dati statistici relativi all’utilizzo della variante.

Dominio di ricerca Logaritmico Lineare

Numero medio di iterazioni 54.83 54.6

Numero massimo di iterazioni 88 73

Numero minimo di iterazioni 41 43

Deviazione standard del numero di iterazioni 10.51 7.55

Valore medio della funzione obiettivo 0.4168 0.4152

Valore minimo della funzione obiettivo 0.4151 0.4150

Valore massimo della funzione obiettivo 0.4168 0.4154

Deviazione standard della funzione obiettivo 1.8 · 10−3 2.75 · 10−4

Tabella 2.1: Dati statistici sull’utilizzo del dominio di ricerca logaritmico

2.5

Scelta delle opzioni dell’ottimizzatore PSO

In questa sezione vengono presentati i risultati di alcune prove, volte a identificare il valore dei parametri di ottimizzazione ottimale e la scelta delle opzioni migliore.

La funzione di prova utilizzata `e la funzione obiettivo del primo esempio (vedi paragrafo 4.3).

2.5.1 Numero di particelle

In primo luogo `e stata verificata l’influenza del numero di particelle sulla velocit`a della convergenza e sulla precisione nella ricerca del minimo assoluto. In tabella 2.2 sono visibili dati statistici su velocit`a di convergenza e accuratezza. Si noti che il numero di particelle non sembra avere influenza sul numero di iterazioni necessarie alla convergenza, e nemmeno sul risultato finale.

(24)

2.5 Scelta delle opzioni dell’ottimizzatore PSO 15

Numero particelle 25 50 75

Numero medio di iterazioni 54.6 54.7 56.1

Numero massimo di iterazioni 73 80 68

Numero minimo di iterazioni 43 41 44

Deviazione standard del numero di iterazioni 7.55 8.04 6.33

Valore medio della funzione obiettivo 0.4152 0.4152 0.4152

Valore minimo della funzione obiettivo 0.4150 0.4150 0.4150

Valore massimo della funzione obiettivo 0.4164 0.4164 0.4164

Deviazione standard della funzione obiettivo 2.75 · 10−4 2.83 · 10−4 2.75 · 10−4

Tabella 2.2: Dati statistici sull’influenza del numero di particelle

2.5.2 Velocit`a iniziale

Dopo aver effettuato qualche prova, si `e notato che l’introduzione di una velocit`a iniziale delle particelle diversa da 0 influisce negativamente sul numero di itera-zioni necessarie, ma non sembra modificare significativamente il risultato finale. In tabella 2.3 sono riportati i dati statistici.

Velocit`a iniziale SI NO

Numero medio di iterazioni 64.8 56.9

Numero massimo di iterazioni 82 68

Numero minimo di iterazioni 50 46

Deviazione standard del numero di iterazioni 7.5173 5.7015

Valore medio della funzione obiettivo 0.4152 0.4151

Valore minimo della funzione obiettivo 0.4150 0.4150

Valore massimo della funzione obiettivo 0.4160 0.4156

Deviazione standard della funzione obiettivo 2.47 · 10−4 1.38 · 10−4

(25)

2.5 Scelta delle opzioni dell’ottimizzatore PSO 16

Inizializzazione particelle

Calcolo della funzione obiettivo

Calcolo delle velocità

Spostamento particelle

Ricalcolo della funzione obiettivo

Stallo della soluzione? FINE NO SI Spostamento esploratori Ripristino parametri iniziali Convergenza? Settaggio parametri per ricerca fine

SI

NO

(26)

Capitolo

3

Ottimizzazione mediante algoritmi genetici

Gli algoritmi genetici sono un altro esempio di metodi stocastici di ottimizzazio-ne. Si basano, come le metodologie particle swarm illustrate precedentemente, sull’utilizzo della capacit`a computazionale degli elaboratori per una ricerca di na-tura iterativa.

In questo caso la metodologia `e ispirata all’evoluzione di una colonia di batteri, in cui gli individui che hanno maggior accesso alle risorse alimentari si riproducono maggiormente, favorendo la crescita della popolazione nelle zone migliori. Analogamente a quanto avviene nella PSO, all’avvio dell’ottimizzazione la popo-lazione di individui viene inizializzata casualmente; ad ogni passo iterativo (detto anche ‘generazione’) vengono generati nuovi individui, figli degli individui della generazione precedente, fino al soddisfacimento della condizione di convergenza o al raggiungimento del numero massimo di passi.

3.1

Algoritmo

Gli individui, come nella PSO, rappresentano punti sul dominio della funzione da ottimizzare. Le singole componenti degli individui sono denominati ‘cromosomi’. Anche in questo caso, quindi, all’inizio si ha una matrice di dimensione n · p, le cui righe rappresentano i p individui inizializzati, ognuno dei quali `e formato dagli n cromosomi, ovvero i valori delle variabili da cui dipende la funzione obiettivo; si ha inoltre un vettore, di dimensione p, che rappresenta il valore della funzione obiettivo corrispondente ad ogni individuo.

Ad ogni generazione, gli individui vengono ordinati in base al corrisponden-te valore della funzione obiettivo; gli elementi che stanno nella parcorrisponden-te alta della classifica hanno maggiore probabilit`a di essere scelti come genitori. Come verr`a spiegato successivamente, i figli sono in qualche modo simili ai genitori, perci`o ad ogni generazione gli individui si addensano nelle zone migliori. In figura 3.1 `e presentato il diagramma di flusso dell’algoritmo di base.

(27)

3.1 Algoritmo 18

3.1.1 Inizializzazione degli individui

L’inizializzazione degli individui avviene in modo identico a quanto esposto nel paragrafo 2.1.1. Nel caso degli algoritmi genetici, il posizionamento iniziale degli individui `e maggiormente influente rispetto agli algoritmi a sciame di particelle, in quanto la nascita di figli all’infuori del dominio iniziale `e tendenzialmente pi`u difficile dello sconfinamento delle particelle.

3.1.2 Riproduzione degli individui

La formazione di ogni nuova generazione poggia su tre pilastri fondamentali, ciascuno dei quali `e necessario per il corretto funzionamento dell’algoritmo di ottimizzazione. Ogni generazione `e costituita da un numero di individui identico alla precedente, e per la creazione si procede in tre modi diversi.

Individui ´elite

In primo luogo i migliori k individui della generazione precedente sopravvivono, questo gruppo di elementi `e detto di ‘´elite’, generalmente k = 2. I rimanenti p − k vengono generati attraverso riproduzione per crossover e mutazione. Il primo in-dividuo del gruppo rappresenta anche la soluzione al problema di ottimizzazione, quando l’algoritmo giunge allo stop.

Riproduzione per crossover

La riproduzione per crossover consiste innanzitutto nella scelta casuale dei ge-nitori, i quali sono selezionati tra i membri della generazione precedente in base al corrispondente valore della funzione obiettivo; precisamente, gli individui sono ordinati in maniera decrescente, e per ogni posizione `e attribuita una probabi-lit`a di essere scelto come genitore, che diminuisce allo scorrere della classifica. Generalmente, il vettore che esprime la probabilit`a di riproduzione ha questa forma: P = "  1 1 k  1 2 k  1 3 k . . . 1 p k# (3.1)

Normalizzando il vettore P si ottiene la probabilit`a di ogni individuo. Il pa-rametro k `e una misura di quanto si vuole dare peso alla posizione nella classifica degli individui ordinati in base al valore della funzione obiettivo. Generalmente 0 < k < 1, la scelta di k = 1 significa favorire molto la riproduzione dei primi individui, mentre k = 0 assegna pari probabilit`a di riproduzione a tutti gli indi-vidui della generazione, rendendo la ricerca quasi completamente casuale.

Come `e stato spiegato precedentemente, le variabili che compongono gli in-dividui sono dette ‘cromosomi’. I due figli sono composti dagli stessi cromosomi dei genitori, mescolati tra loro. Ad esempio, dati i genitori A e B:

(28)

3.2 Inserimento dei vincoli 19

B = [b1 b2 b3. . . bp] (3.3)

i figli hanno la seguente forma:

C = [a1 a2 a3. . . ai bi+1 bi+2. . . bp] (3.4)

D = [b1 b2 b3. . . bi ai+1 ai+2. . . ap] (3.5)

L’esempio presentato riguarda un caso particolare, il crossover a singolo pun-to, infatti viene individuato un singolo punto oltre il quale i cromosomi vengono scambiati. `E possibile considerare pi`u punti di interscambio, effettuando un cros-sover a punti multipli. `E importante notare che la riproduzione per crossover non ha senso nel caso di ottimizzazione di una funziona a singola variabile. In questi casi, a causa di ci`o, perde significato l’intero algoritmo genetico, che si trasforma in una ricerca praticamente casuale all’interno del dominio. Questo non avviene nel caso negli algoritmi basati sulla PSO, i quali mantengono la loro funzionalit`a anche in caso di funzioni di singola variabile.

Le mutazioni

Il terzo ingrediente fondamentale degli algoritmi genetici `e la presenza di muta-zioni casuali. Una parte dei nuovi componenti viene infatti generata variando casualmente tutti o alcuni cromosomi dei membri esistenti. In particolare ogni cromosoma ha una probabilit`a assegnata di essere modificato, se questo avviene il nuovo valore, generalmente, viene scelto da una distribuzione gaussiana centrata sul cromosoma del genitore.

3.2

Inserimento dei vincoli

L’inserimento dei vincoli semplici (limiti superiore e inferiore) non complica mol-to l’algoritmo, `e solamente necessario, infatti, verificare che gli individui della nuova generazione siano generati all’interno della parte di dominio che soddisfa i vincoli semplici. Ogni nuova generazione `e composta innanzitutto dagli elitisti provenienti dalla generazione precedente, i quali sicuramente rispettano i vincoli; resta da verificare cosa succede agli individui generati per crossover e per muta-zione. Nel primo caso il soddisfacimento dei vincoli `e automatico, infatti, presi in considerazione gli individui A nell’eq. (3.2) e B nella (3.3) valgono le seguenti disuguaglianze:

Blk≤ ak ≤ Bk

u ∀k (3.6)

Blk≤ bk≤ Buk ∀k (3.7)

in cui Bl e Bu sono rispettivamente i margini inferiore e superiore del dominio.

`

E immediato stabilire che i figli C e D (vedi equazioni (3.4) e (3.5)) soddisfano anch’essi i vincoli semplici. Nel caso delle mutazioni, invece, utilizzando una

(29)

3.3 Condizione di convergenza 20

distribuzione di probabilit`a normale, `e possibile che gli individui generati non soddisfino i vincoli. `E necessario quindi adottare una diversa funzione densit`a di probabilit`a.

Per quanto riguarda invece vincoli di diversa natura, `e possibile utilizzare una funzione di penalizzazione, in maniera del tutto analoga a quanto esposto nel paragrafo 2.2.

3.3

Condizione di convergenza

Anche nel caso degli algoritmi genetici, l’ottimizzazione potrebbe, in teoria, anda-re avanti praticamente all’infinito. `E necessario definire una condizione di stop; in maniera del tutto analoga a quanto visto nel paragrafo 2.3, si pu`o fissare a priori un numero di passi iterativi, oppure si pu`o attendere lo stallo della soluzione. Il punto di forza degli algoritmi genetici `e nell’alto numero di iterazioni, `e lecito quindi aspettarsi che una prematura convergenza non sia una soluzione affidabile, perci`o `e stato introdotto un limite inferiore al numero delle iterazioni effettuate, per permettere agli individui di esplorare a sufficienza lo spazio circostante.

(30)

3.3 Condizione di convergenza 21

Inizializzazione individui

Calcolo della funzione obiettivo

Scelta degli individui Elite

Riproduzione per Crossover

Ricalcolo della funzione obiettivo

Convergenza?

FINE NO

SI

Riproduzione per Mutazione Scelta dei genitori in base al valore della funzione obiettivo

(31)

Parte II

(32)

Capitolo

4

Controllore della velocit`

a

angolare di

beccheggio

Il primo esempio di problema di ottimizzazione considerato `e un controllore della velocit`a angolare di beccheggio (preso da[2]), con dinamica approssimata al corto periodo, del velivolo General Dynamics F-16. Le varie metodologie di ottimiz-zazione, presentate nei capitoli precedenti, sono state applicate per la scelta dei guadagni del sistema di controllo, e i risultati sono stati confrontati tra loro.

4.1

Struttura del sistema di controllo

In figura 4.1 `e visibile la struttura del sistema di controllo. Il segnale di rife-rimento per la velocit`a angolare di beccheggio `e r, u `e la deflessione richiesta all’elevatore, δe `e la deflessione effettiva della parte mobile e con z si indica la

variabile in uscita che si intende controllare. Le grandezza misurate sono la ve-locit`a angolare di beccheggio q e l’incidenza α; a causa del fatto che le misure dell’incidenza sono in genere soggette a rumore, `e stato inserito un filtro passa-basso con una frequenza di cut-off di 10 rad/s; l’incidenza filtrata `e denominata αF. Per garantire errore a regime nullo `e stato inserito un integratore nel canale

di ingresso; l’uscita dell’integratore `e indicata con .

La dinamica del velivolo si riferisce ad una specifica condizione di volo (502 ft/s, altitudine 0 ft, baricentro al 35% della corda media aerodinamica) ed utilizza l’approssimazione di corto periodo.

Gli stati del sistema sono quindi:

x =       α q δe αF        (4.1)

(33)

4.1 Struttura del sistema di controllo 24 α q ε r u δe z x' = Ax+Bu y = Cx+Du Velivolo Step Scope -K-K_3 -K-K_2 -K-K_1 1 s Integratore 10 s+10 Filtro passa-basso 20.2 s+20.2 Dinamica attuatore -K-57.2958

Figura 4.1: Struttura del controllore

Le uscite misurate sono:

y =   αF q    (4.2)

Le uscite da controllare sono:

z = q (4.3)

L’ingresso di comando del sistema `e u, deflessione comandata all’elevatore (δe). Il segnare di riferimento `e r, che indica la velocit`a angolare di beccheggio

desiderata dal pilota.

La dinamica del sistema `e descritta dalle seguenti equazioni: ˙ x = Ax + B u + Gr y = C x + F r z = H x (4.4) in cui: A =       −1.01887 0.90506 −0.00215 0 0 0.82225 −1.07741 −0.17555 0 0 0 0 −20.2 0 0 10 0 0 −10 0 0 −57.2958 0 0 0       (4.5)

(34)

4.2 Il sistema in forma canonica 25 B =       0 0 20.2 0 0       (4.6) G =       0 0 0 0 1       (4.7) C =   0 0 0 57.2958 0 0 57.2958 0 0 0 0 0 0 0 1   (4.8) F =   0 0 0   (4.9) H =0 57.2958 0 0 0 (4.10)

Il feedback del sistema si realizza ponendo:

u = −Ky = − [K1 K2 K3] y = −K1α + K2q + K3 (4.11)

4.2

Il sistema in forma canonica

Il sistema, come presentato nella sezione precedente, non `e in forma canonica in variabili di stato. Per essere manipolato in MatLab, `e necessaria la conversione in una delle formulazioni standard previste dall’applicativo.

Considerando il sistema in ciclo aperto, vengono scelte come entrate il segnale di riferimento r e il comando di deflessione dell’elevatore u; come uscite, la velo-cit`a angolare di beccheggio q, l’incidenza α e l’errore integrale . In questo modo `

e possibile utilizzare le uscite per realizzare il feedback, ponendo semplicemente u = −Ky.

La scrittura matriciale del sistema in variabili di stato risulta quindi essere la seguente: ˙ x = Ax + [B G]u r  y = C x + [03×1 F ] u r  (4.12)

(35)

4.3 La funzione obiettivo 26

in cui le matrici A, B , G, C ed F sono le stesse del paragrafo precedente, e 03×1

rappresenta una matrice di zeri. Ponendo poi: u r  = −  K 01×3  y (4.13)

si ottiene il sistema in ciclo chiuso; K `e la matrice dei guadagni e 01×3 `e una

matrice di zeri. Con qualche passaggio algebrico si ottiene: ˙

x = (A − B KC ) x + (G − B KF ) r

y = C x + F r (4.14)

A questo punto `e possibile, inserendo in MatLab il sistema in variabili di stato, calcolare i poli in ciclo chiuso e le risposte agli ingressi, elementi necessari per la valutazione della funzione obiettivo (vedi paragrafo successivo).

4.3

La funzione obiettivo

Per quanto riguarda la formulazione della funzione obiettivo, sono stati considerati i seguenti indici di robustezza e prestazioni:

• Indice di robustezza γ

• Errore quadratico E integrale sulla risposta al gradino della velocit`a ango-lare di beccheggio

• Poli del sistema in ciclo chiuso

Il primo termine `e l’indice di robustezza di cui `e parlato nel paragrafo 1.1. Come `e stato detto, i valori che pu`o assumere γ sono compresi tra 0 e 1; inoltre si considerano soddisfacenti dei valori superiori a 0.3. Per questo motivo, valori di γ maggiori di 0.3 non vengono premiati maggiormente. Per fare un esempio, il contributo alla funzione obiettivo nel caso γ sia pari a 0.4 `e identico al caso in cui γ = 0.8.

Il secondo termine rappresenta l’errore quadratico (quindi la differenza tra il segnale di riferimento r e la velocit`a angolare di beccheggio q) integrato sulla risposta al gradino, calcolata tra 0 e 10 secondi. `E evidente come questa for-mulazione includa in s´e stessa gli altri parametri prestazionali generalmente con-siderati, tempo di salita, sovraelongazione e tempo di assestamento della risposta.

Il terzo termine `e necessario per stabilire se il sistema in ciclo chiuso `e stabile; in caso affermativo la grandezza non viene considerata e si passa al calcolo dei primi due termini; in caso negativo, la funzione obiettivo risulta semplicemente il modulo dei poli instabili sommato ad una quota fissa di penalizzazione.

(36)

4.3 La funzione obiettivo 27

In questo modo, in caso di poli instabili, non si perde tempo a calcolare il margine di robustezza γ (il calcolo infatti `e computazionalmente molto oneroso).

In figura 4.2 `e visibile la schematizzazione del calcolo della funzione obiettivo.

Calcolo dei poli del sistema

Calcolo della risposta al gradino

Ci sono poli instabili?

Calcolo del margine di robustezza γ

Calcolo dell’errore integrale

Somma dei contributi

Fine no

Calcolo del modulo dei poli instabili sì

Se γ > 0.3 si pone γ = 0.3

Figura 4.2: Schematizzazione del calcolo della funzione obiettivo

Nello specifico, la funzione obiettivo, nel caso di sistema stabile, assume questa forma:

f = Cγ+ CE (4.15)

nella quale Cγ e CE sono i due contributi, rispettivamente della robustezza del

sistema e delle prestazioni, illustrati nelle seguenti equazioni:

Cγ= ( −aγlnγγ 0  , se γ < γ0 0, se γ ≥ γ0 (4.16) CE = 1 E0 Z 10 0 eq(t)2dt (4.17)

E0, γ0 e aγsono costanti introdotte per normalizzare e rendere comparabili i

(37)

4.4 Definizione dei vincoli 28

E0 200

γ0 0.3

aγ 1

Tabella 4.1: Valori dei parametri di normalizzazione che compaiono nella funzione obiettivo

Nel caso di sistema instabile, invece:

f = P0+ P1·

X

i

|pi| (4.18)

in cui P0 `e una penalizzazione fissa, che serve per rendere qualsiasi soluzione

instabile svantaggiata rispetto ad una stabile, P1 una costante moltiplicativa e pi

i poli instabili. I valori di questi parametri non sono di interesse, l’importante `e assicurarsi che qualsiasi sistema instabile sia sufficientemente penalizzato.

4.4

Definizione dei vincoli

In linea di principio la scelta dei guadagni non `e vincolata, a livello di elettronica ovviamente non esistono limiti ai valori. In genere si limita l’intensit`a dei gua-dagni per fare fronte a problemi di saturazione del comando; in questo caso per`o `

e possibile tenere conto di questo problema analizzando direttamente la storia temporale della deflessione comandata all’elevatore e porre dei limiti numerici a quest’ultima.

Per quanto riguarda la stabilit`a del sistema, anch’essa `e un vincolo ma, co-me spiegato precedenteco-mente, esso `e stato introdotto attraverso una funzione di penalizzazione direttamente nel computo della funzione obiettivo.

4.5

Calcolo del margine di robustezza γ

Il sistema P , nell’architettura illustrata in figura 1.4, risulta essere il seguente: ˙

x = Ax + Bu

y = Cx (4.19)

La matrice dei guadagni K che chiude il feedback `e la stessa della 4.11.

4.6

Risultati dell’ottimizzazione a sciame di particelle

Il problema `e stato sottoposto al pacchetto di ottimizzazione numerico a sciame di particelle, illustrato al paragrafo 2. Nella tabella 4.2 sono elencati i principali parametri utilizzati.

(38)

4.6 Risultati dell’ottimizzazione a sciame di particelle 29

Di seguito sono presentati i risultati numerici e le risposte in ciclo chiuso, la deflessione dell’elevatore e rateo di beccheggio.

Il margine di robustezza γ ottenuto `e soddisfacente e pari a 0.3.

I valori dei guadagni ottenuti sono riassunti nella tabella 4.3.

I poli del sistema in ciclo chiuso sono elencati nella tabella seguente (tabella 4.4).

In figura 4.3 `e visibile la risposta in beccheggio al gradino unitario del sistema, ottenuto utilizzando i guadagni calcolati.

0 1 2 3 4 5 6 7 8 9 10 0 0.2 0.4 0.6 0.8 1 q t

Figura 4.3: Risposta della velocit`a angolare di beccheggio q (rad/s) al gradino

unitario, controllore ottenuto con PSO

In figura 4.4 `e visibile la storia temporale della deflessione comandata alla parte mobile durante la risposta al gradino. Si noti che la deflessione non ha mai entit`a eccessiva, rispetto al valore di regime.

(39)

4.7 Risultati dell’ottimizzazione mediante algoritmi genetici 30 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 −0.2 −0.1 0 0.1 0.2 0.3 0.4 u t

Figura 4.4: Storia temporale della deflessione u (rad) comandata all’elevatore, controllore ottenuto con PSO

4.7

Risultati dell’ottimizzazione mediante algoritmi

gene-tici

Il sistema di controllo preso in esame `e stato ottimizzato anche mediante algoritmi genetici, illustrati al paragrafo 3. Nella tabella seguente (4.5) sono elencati i principali parametri e le opzioni utilizzate per l’ottimizzazione.

Anche in questo caso, saranno presentati i risultati numerici, la risposta al gradino e la storia temporale della deflessione dell’elevatore.

I valori dei guadagni ottenuti sono riassunti nella tabella 4.6.

I poli del sistema in ciclo chiuso sono elencati nella tabella seguente (tabella 4.7

In figura 4.5 `e visibile la risposta in beccheggio al gradino unitario del sistema, ottenuto utilizzando i guadagni calcolati.

(40)

4.7 Risultati dell’ottimizzazione mediante algoritmi genetici 31 0 1 2 3 4 5 6 7 8 9 10 0 0.2 0.4 0.6 0.8 1 q t

Figura 4.5: Risposta della velocit`a angolare di beccheggio q (rad/s) al gradino

unitario, controllore ottenuto con GAO

In figura 4.6 `e visibile la storia temporale della deflessione comandata alla parte mobile durante la risposta al gradino. Si noti che anche in questo caso la deflessione non ha mai entit`a eccessiva, rispetto al valore di regime.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 −0.2 −0.1 0 0.1 0.2 0.3 0.4 u t

(41)

4.8 Ottimizzazione mediante algoritmi tradizionali 32

4.8

Ottimizzazione mediante algoritmi tradizionali

In questa sezione sono presentati i risultati ottenuti applicando metodologie tra-dizionali. In particolare, si fa riferimento alle metodologie illustrate in[2].

La prima di queste `e il Time-dependent weighting design, e fornisce i risultati riassunti nelle figure (numero 4.7 e 4.8) e nelle tabelle seguenti (tabelle 4.8 e 4.9).

0 1 2 3 4 5 6 7 8 9 10 0 0.2 0.4 0.6 0.8 1 q t

Figura 4.7: Risposta della velocit`a angolare di beccheggio q (rad/s) al gradino

uni-tario, utilizzando i guadagni ottenuti con il Time-dependent weighting design

La seconda metodologia presentata in[2] `e il Derivative weighting design, e

fornisce i risultati riassunti nelle figure 4.9 e 4.10 e nelle tabelle seguenti 4.10 e 4.11.

4.9

Dati statistici sull’ottimizzazione a sciame di particelle

I risultati presentati precedentemente non hanno grande valore se presi singolar-mente; si consideri infatti che gli algoritmi di tipo stocastico possono dare risultati diversi partendo dai soliti dati in ingresso. `E necessario perci`o fornire dei dati su un campione (numero di prove) statisticamente rappresentativo. Il problema `e stato quindi sottoposto all’ottimizzatore 50 volte2, memorizzando tutti i risultati delle singole prove.

2

Il numero di prove rappresenta un compromesso tra rappresentativit`a del campione statistico e durata temporale dell’intero processo

(42)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 33 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 u t

Figura 4.8: Storia temporale della deflessione u (rad) comandata all’elevatore, utilizzando i guadagni ottenuti con il Time-dependent weighting design

Per quanto riguarda i parametri dell’ottimizzatore, sono stati utilizzati i valori elencati in tabella 4.2.

Nella tabella 4.12 sono esposti i dati relativi ai valori della funzione obiettivo ottenuti, il numero di iterazioni necessarie alla convergenza, la robustezza γ.

Si noti che la dispersione sul valore della funzione obiettivo `e molto bassa ed il margine di robustezza γ `e sempre soddisfacente.

In figura 4.11 `e visibile la dispersione dei valori dei guadagni. Ogni punto nel grafico rappresenta una terna di guadagni ([K1 K2 K3]), corrispondente

ad uno dei 50 outputs dell’ottimizzazione.

4.10

Dati statistici sull’ottimizzazione mediante algoritmi

genetici

La stessa procedura illustrata nella sezione precedente `e stata applicata all’otti-mizzazione con algoritmi genetici.

In tabella 4.13 sono esposti i dati relativi ai valori della funzione obiettivo ot-tenuti, il numero di iterazioni necessarie alla convergenza, la robustezza γ. Anche in questo caso, i parametri utilizzati sono gli stessi illustrati in tabella 4.5

(43)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 34 0 1 2 3 4 5 6 7 8 9 10 0 0.2 0.4 0.6 0.8 1 q t

Figura 4.9: Risposta della velocit`a angolare di beccheggio q (rad/s) al gradino

unitario, utilizzando i guadagni ottenuti con il Derivative weighting design

In figura 4.12 `e visibile la dispersione dei valori dei guadagni, come mostrato nel caso precedente.

(44)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 35 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 u t

Figura 4.10: Storia temporale della deflessione u (rad) comandata all’elevatore, utilizzando i guadagni ottenuti con il Derivative weighting design

−0.15 −0.1 −0.05 0 −0.65 −0.6 −0.55 −0.5 −0.45 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 K 1 K 2 K 3

Figura 4.11: Rappresentazione grafica della dispersione dei risultati ottenuti mediante l’ottimizzazione a sciame di particelle

(45)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 36

problem.LowerBound −2 − 5 10−4

Limite inferiore al dominio di ricerca 1, vedi paragrafo

2.2

problem.UpperBound −10−4 − 10−4 10

Limite superiore al dominio di ricerca, vedi paragrafo 2.2

options.FixedSteps NO Numero di iterazioni totali

fissato, vedi paragrafo 2.3

options.StallSteps 40 Numero di passi per

giun-gere a convergenza, vedi paragrafo 2.3

options.LogDomain NO Dominio di ricerca

logarit-mico, vedi paragrafo 2.4.3

options.ScoutNumber 5 Numero di particelle

esplo-ratrici, vedi paragrafo 2.4.1

options.ParticleNumber 25 Numero totale di particelle

options.TolFun 10−5 Tolleranza sulla

convergen-za, vedi paragrafo 2.3

options.LimitedDomain NO Dominio di ricerca illimitato

options.StartingPlacement RANDU Posizionamento iniziale

par-ticelle distribuite uniforme-mente, vedi paragrafo 2.1.1

options.SpeedCoefficient RANDU Velocit`a calcolata con la 2.4

c1 2 Coefficiente velocit`a, vedi

equazione 2.4

c2 2 Coefficiente velocit`a, vedi

equazione 2.4

ω 0.7 Coefficiente velocit`a, vedi

equazione 2.4

Tabella 4.2: Riepilogo dei parametri e delle opzioni utilizzate nel presente esempio per l’ottimizzazione a sciame di particelle

K1 −0.0474

K2 −0.623

K3 1.425

γ 0.3

Tabella 4.3: Valori dei guadagni e margine di robustezza ottenuti con

(46)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 37

Poli Modulo Smorzamento

−9.80 + 2.83i 10.2 0.961

−9.80 − 2.83i 10.2 0.961

−1.06 1.06

-−8.44 8.44

-−3.20 3.20

-Tabella 4.4: Poli del sistema in ciclo chiuso, utilizzando i guadagni ottenuti con l’ottimizzazione a sciame di particelle

problem.LB NO Nessun limite inferiore al dominio di

ricerca

problem.UB NO Nessun limite superiore al dominio

di ricerca

options.PopulationSize 25 Numero di individui

options.CrossoverFraction 80% Numero di individui generati me-diante crossover, vedi paragrafo 3.1.2

options.EliteCount 2 Numero di individui Elite, vedi

paragrafo 3.1.2

options.TolFun 10−5 Tolleranza sulla convergenza, vedi

paragrafo 3.3

options.StallGen 40 Passi di stallo (variazione trascurabi-le della funzione obiettivo) richiesti per la convergenza, vedi paragrafo 3.3

Tabella 4.5: Riepilogo dei parametri e delle opzioni utilizzate nel presente esempio per l’ottimizzazione mediante algoritmi genetici

K1 −0, 0705

K2 −0, 586

K3 1, 1885

γ 0.3251

Tabella 4.6: Valori dei guadagni e margine di robustezza ottenuti con

(47)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 38

Poli Modulo Smorzamento

−10.6 + 2.52i 10.9 0.97

−10.6 − 2.52i 10.9 0.97

−7.35 7.35

-−1.03 1.03

-−2.79 2.79

-Tabella 4.7: Poli del sistema in ciclo chiuso, utilizzando i guadagni ottenuti con l’ottimizzazione mediante algoritmi genetici

K1 −0.046

K2 −1.072

K2 3.381

γ 0.17

Tabella 4.8: Valori dei guadagni e margine di robustezza ottenuti con il Time-dependent weighting design

Poli Modulo Smorzamento

−8.67 + 9.72i 13.0 0.666

−8.67 − 9.72i 13.0 0.666

−1.04 1.04

-−9.85 9.85

-−4.07 34.07

-Tabella 4.9: Poli del sistema in ciclo chiuso, utilizzando i guadagni ottenuti con il Time-dependent weighting design

K1 −0.0807

K2 −0.475

K2 1.375

γ 0.2486

Tabella 4.10: Valori dei guadagni e margine di robustezza ottenuti con il Derivative weighting design

(48)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 39

Poli Modulo Smorzamento

−3.26 + 2.83i 4.32 0.755

−9.80 − 2.83i 4.32 0.755

−1.02 1.02

-−1.07 1.07

-−1.41 1.41

-Tabella 4.11: Poli del sistema in ciclo chiuso, utilizzando i guadagni ottenuti con il Derivative weighting design

Numero medio di iterazioni 116.4

Numero massimo di iterazioni 169

Numero minimo di iterazioni 87

Deviazione standard del numero di iterazioni 18.07

Valore medio della funzione obiettivo 0.415874

Valore minimo della funzione obiettivo 0.415051

Valore massimo della funzione obiettivo 0.418253

Deviazione standard della funzione obiettivo 1.3032 · 10−3

Valore medio del margine γ 0.3215

Valore minimo del margine γ 0.3

Valore massimo del margine γ 0.3806

Deviazione standard del margine γ 3.4924 · 10−2

Tabella 4.12: Dati statistici relativi all’ottimizzazione a sciame di particelle

Numero medio di iterazioni 117.8

Numero massimo di iterazioni 266

Numero minimo di iterazioni 49

Deviazione standard del numero di iterazioni 44.2

Valore medio della funzione obiettivo −0.42611

Valore minimo della funzione obiettivo −0.41515

Valore massimo della funzione obiettivo −0.58069

Deviazione standard della funzione obiettivo 2.538 · 10−2

Valore medio del margine γ 0.34390

Valore minimo del margine γ 0.25402

Valore massimo del margine γ 0.40211

Deviazione standard del margine γ 3.483 · 10−2

(49)

4.10 Dati statistici sull’ottimizzazione mediante algoritmi genetici 40 −0.15 −0.1 −0.05 0 −0.65 −0.6 −0.55 −0.5 −0.45 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 K1 K2 K 3

Figura 4.12: Rappresentazione grafica della dispersione dei risultati ottenuti mediante ottimizzazione genetica

(50)

Capitolo

5

Wing-leveller

Il secondo esempio di problema di ottimizzazione considerato `e un wing-leveller (preso da[2]), con dinamica latero-direzionale del velivolo General Dynamics F-16. Anche in questo caso le varie metodologie di ottimizzazione sono state applica-te per la scelta dei guadagni del sisapplica-tema di controllo, e i risultati sono stati confrontati tra loro.

5.1

Struttura del sistema di controllo

In figura 5.1 `e visibile la struttura del sistema di controllo. Il controllore serve a mantenere le ali ad una data inclinazione, e provvedere a smorzare il dutch roll mantenendo nulla la velocit`a angolare di imbardata rw in uscita da un filtro

passa-alto (filtro di wash-out).

Il sistema ha due canali, nel canale superiore c’`e un feedback esterno, con gua-dagno unitario, sull’angolo di rollio φ, e un feedback interno della velocit`a angolare di rollio p. Questo canale presenta un compensatore proporzionale-integrale per annullare l’errore a regime nell’angolo di rollio. Il comando di controllo di questo canale `e la deflessione degli alettoni δa.

Il secondo canale consiste nel feedback della velocit`a angolare di imbardata rw in

uscita dal filtro passa-alto; il comando di controllo `e la deflessione del timone di direzione, δr. Il segnale di riferimento `e: rc =rφ rr  (5.1)

in cui rφ `e il segnale di controllo dell’angolo di rollio e rr il segnale di controllo

dell’imbardata in uscita dal filtro (rw). In generale, il compito del controllore

`

e seguire il segnale di riferimento; nella pratica rr = 0. L’errore `e indicato con

(51)

5.1 Struttura del sistema di controllo 42

eφ= rφ− φ

er= rr− rw

La dinamica del velivolo si riferisce alla condizione di volo dell’esempio pre-cedente (vedi 4.1). Il vettore degli stati del sistema `e il seguente:

x =             β φ p r δa δr rw              (5.2) nella quale: • β `e l’angolo di sideslip • φ `e l’angolo di rollio

• p `e la velocit`a angolare di rollio • r `e la velocit`a angolare di imbardata • δa `e la deflessione degli alettoni

• δr `e la deflessione del timone di direzione

• rw `e la velocit`a angolare di imbardata in uscita dal filtro passa-alto

•  `e il valore di eφdopo l’integratore

Le uscite misurate sono:

y =      er p eφ     (5.3)

Le uscite da controllare sono:

z = φ rw



(5.4) Gli ingressi di comando del sistema sono:

u =ua ur



(52)

5.1 Struttura del sistema di controllo 43

in cui ua `e la deflessione comandata agli alettoni e ur la deflessione comandata

al timone di direzione.

Gli ingressi di riferimento sono:

r =rφ rr



(5.6)

in cui il primo elemento `e il segnale di controllo dell’angolo di rollio e il secondo controlla la velocit`a di imbardata in uscita al filtro di wash-out.

In maniera identica all’esempio del capitolo precedente, il controllore `e de-scritto dalle seguenti equazioni:

˙ x = Ax + B u + Gr y = C x + F r z = H x (5.7) in cui: A =             −0.322 0.064 0.0364 −0.9917 0.0003 0.0008 0 0 0 0 1 0.0037 0 0 0 0 −30.6492 0 −3.6784 0.6646 −0.7333 0.1315 0 0 8.5395 0 −0.0254 −0.4764 −0.0319 −0.0620 0 0 0 0 0 0 −20.2 0 0 0 0 0 0 0 0 −20.2 0 0 0 0 0 57.2958 0 0 −1 0 0 −1 0 0 0 0 0 0             (5.8) B =             0 0 0 0 0 0 0 0 20.2 0 0 20.2 0 0 0 0             (5.9) G =             0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0             (5.10)

(53)

5.2 Il sistema in forma canonica 44 C =     0 0 0 0 0 0 0 1 0 0 0 −57.2958 0 0 1 0 0 0 1 0 0 0 0 0 0 −1 0 0 0 0 0 0     (5.11) F =     0 0 0 1 0 0 1 0     (5.12)

Il feedback del sistema si ottiene dalla seguente:

u = −K y = −K      er p eφ     (5.13) in cui K =k1 0 k3 k4 0 k2 0 0  (5.14)

5.2

Il sistema in forma canonica

Anche in questo caso il sistema `e stato manipolato per essere sottoposto all’ap-plicativo MatLab.

I comandi uae ur, assieme ai segnali di riferimento rφ e rr formano il vettore

delle entrate del sistema. Il sistema in forma canonica ha la seguente formulazione:

˙ x = Ax + [B G]     ua ur rφ rr     y = C x + [04×2 F ]     ua ur rφ rr     (5.15)

in cui le matrici sono le stesse indicate nel paragrafo precedente e 04×2rappresenta

una matrice di zeri.

Il feedback si realizza in questo modo:     ua ur rφ rr     = −K 02×4 y (5.16)

Figura

Figura 2.3: Lo spazio racchiuso dal parallelogramma ` e la porzione di dominio in
Figura 4.4: Storia temporale della deflessione u (rad) comandata all’elevatore, controllore ottenuto con PSO
Figura 4.7: Risposta della velocit` a angolare di beccheggio q (rad/s) al gradino uni-
Figura 4.8: Storia temporale della deflessione u (rad) comandata all’elevatore, utilizzando i guadagni ottenuti con il Time-dependent weighting design
+7

Riferimenti

Documenti correlati

Input data are used by the public procurer to formulate its business plan that represents the base for the competitive auction among private players; in such a case, standard

Antimicrobial inhibition zone diameter (cm) of seven Lactobacillus strains against L. Different letters represent significant statistical difference. Strains antimicrobial activity

The notion of slice-regularity, recently intro- duced by Gentili and Struppa (Adv. 216:279–301, 2007), for functions in the non-commutative division algebra H of quaternions

Foglio dalla Raccolta d’antiche iscrizioni siracusane di Cesare Gaetani conte della Torre (1760-70)... Iscrizione di Syros dalla catacomba di

Theoretical tides have been generated using a software which calculates the areal deformations (the same kind of superposition of components of the strain tensor measured by the

La scelta finale è ricaduta sul circuito di alimentazione ad induzione in quanto le batterie del satellite necessarie per il motore e per gli altri sottosistemi di

delle manifestazioni culturali, tra cui le rievocazioni storiche. Riunisce, al suo interno, gruppi di appassionati, gruppi storici professionali, associazioni

a) How are the rights and freedoms of third country nationals legally residing in a Member State impacted by the EU legal migration acquis and policy? When answering this