Progetto di sensori virtuali per la stima dell'accelerazione longitudinale di un velivolo

69

Transcript of Progetto di sensori virtuali per la stima dell'accelerazione longitudinale di un velivolo

POLITECNICO DI TORINO

I Facoltà di Ingegneria

Corso di Laurea in Ingegneria Aerospaziale

Tesi di Laurea

Progetto di sensori virtuali per lastima dell'accelerazione longitudinale

di un velivolo

Relatore:

prof. Carlo Novara

Candidato:

Giovanni Francesco Pietrafesa

Dicembre 2012

Ringraziamenti

Desidero innanzitutto ringraziare il prof. Carlo Novara, relatore di questa tesi, per la

disponibilità dimostratami e per l'aiuto fornitomi durante la realizzazione di questo

elaborato e di tutto il lavoro che ne ha preceduto la stesura. Un doveroso ringra-

ziamento va a Paul Bizard, CTSB (Centre Scienti�que et Technique du Bâtiment),

per la realizzazione di tutto il materiale riguardante la simulazione di modelli di

aeromobili e l'analisi aerodinamica tramite AVL, che ho trovato molto utile per lo

sviluppo di questa tesi. Un sentito ringraziamento va alla mia famiglia e ai miei

nonni, che mi hanno concesso di raggiungere questo traguardo grazie al sostegno

economico e soprattutto psicologico che mi hanno fornito e che continuano a fornir-

mi tutti i giorni, nonostante le distanze che ci separano. Ringrazio il dott. Francesco

Lamberti, per l'aiuto, l'amicizia e la pazienza dimostrata durante questi mesi di la-

voro. Un ulteriore ringraziamento va anche a tutti i miei coinquilini, in particolare

Gaetano, Stefano e Vincenzo, che mi sopportano ormai da tre anni e senza i quali

non sarei diventato la persona che sono adesso. Inoltre, desidero condividere questo

importante risultato con i miei compagni di corso Alessandro, Carlotta, Giovanni,

Lorenzo e Malcolm, che con il loro aiuto hanno contribuito in modo attivo al com-

pletamento del mio percorso di studi e con la loro simpatia hanno contribuito a

rendere il Politecnico un posto più piacevole da frequentare.

iii

Indice

Ringraziamenti iii

Indice 1

Elenco delle �gure 3

Nomenclatura 5

Introduzione 8

1 Il problema del �ltraggio 11

1.1 Descrizione del problema . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2 Il �ltro di Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2.1 il sistema dinamico . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2.2 Il �ltro lineare . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.2.3 Il �ltro di Kalman esteso . . . . . . . . . . . . . . . . . . . . . 17

1.2.4 Limiti dell'EFK . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 L'aeromobile e le equazioni del moto 20

2.1 Forze e momenti agenti sul velivolo . . . . . . . . . . . . . . . . . . . 20

2.1.1 Azioni aerodinamiche - Aerodynamic Model . . . . . . . . . . 21

2.1.2 Contributo del peso - Weight Model . . . . . . . . . . . . . . . 24

2.1.3 Contributo della spinta - Thrust Model . . . . . . . . . . . . . 26

2.1.4 Forze e momenti totali . . . . . . . . . . . . . . . . . . . . . . 27

2.2 Equazioni del moto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1

INDICE

2.2.1 Fase 1: Equazioni del moto . . . . . . . . . . . . . . . . . . . 27

2.2.2 Fase 2: Variabili di stato . . . . . . . . . . . . . . . . . . . . . 29

2.2.3 Implementazione in Matlab/Simulink . . . . . . . . . . . . . . 33

2.3 La raccolta dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.1 Tempi di simulazione e blockset . . . . . . . . . . . . . . . . . 35

3 Risultati in simulazione 37

3.1 EFK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.1.1 Test1: EFK ideale . . . . . . . . . . . . . . . . . . . . . . . . 38

3.1.2 Introduzione degli errori . . . . . . . . . . . . . . . . . . . . . 38

3.1.3 Scelta delle matrici Q e R . . . . . . . . . . . . . . . . . . . . 41

4 Conclusioni 44

A Utilizzo di AVL 47

B Manovre 50

B.1 Descrizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

C Principali script Matlab 55

C.1 ffunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

C.2 hfunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

C.3 EFK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

D Risultati gra�ci dei �ltri implementati 61

Bibliogra�a 65

2

Elenco delle �gure

1.1 Tipica applicazione di un �ltro . . . . . . . . . . . . . . . . . . . . . . 11

2.1 UAV Scorpio Miss 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2 Implementazione in Simulink dell' Aerodynamic Model (equazioni 2.2) 24

2.3 Implementazione in Simulink del Weight Model (equazioni 2.3) . . . . 25

2.4 Implementazione in Simulink del Thrust Model (equazioni 2.4) . . . . 26

2.5 Il modello di equazioni del moto implementato in Simulink . . . . . . 33

2.6 Modello Completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.7 Simulazione della dinamica degli attuatori . . . . . . . . . . . . . . . 34

3.1 Esempi di Convergenza . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.2 Sensibilità alla variazione degli elementi di P e Q . . . . . . . . . . . 42

4.1 Andamento RMSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.2 Andamento RMSE con variazione dei parametri . . . . . . . . . . . . 45

A.1 AVL - Schermata iniziale di AVL . . . . . . . . . . . . . . . . . . . . 47

A.2 AVL - Schermata di con�gurazione d'assetto . . . . . . . . . . . . . . 48

A.3 AVL - Inserimento dei valori . . . . . . . . . . . . . . . . . . . . . . . 48

A.4 AVL - Derivate aerodinamiche e di controllo . . . . . . . . . . . . . . 49

B.1 Animazione ottenuta tramite simulink . . . . . . . . . . . . . . . . . 50

B.2 Manovra 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

B.3 Manovra 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

B.4 Manovra 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

B.5 Manovra 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

B.6 Manovra 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

B.7 Manovra 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3

ELENCO DELLE FIGURE

B.8 Manovra 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

B.9 Manovra 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

D.1 EKF- I risultati gra�ci del Test 1 . . . . . . . . . . . . . . . . . . . . 62

D.2 EKF- Discostamento massimo per ogni manovra . . . . . . . . . . . . 63

4

Nomenclatura

Assi e rifrimenti

Xb, Yb, Zb assi x, y e z solidali al corpo del velivolo, detti assi corpo

Xe, Ye, Ze assi x, y e z del riferimento inerziale, detti assi terra

α angolo di attacco

β angolo di deriva

Grandezze proprie del velivolo

m massa dell'aeromobile

I tensore d'inerzia del velivolo

Sref super�cie di riferimento utilizzata per calcolare i

coe�cienti

Bref apertura alare di riferimento utilizzata per de�nire i

momenti di rollio e imbardata

Cref corda di riferimento utilizzata per calcolare il momento

di rollio

Grandezze �siche

Vb=(u, v, w)T velocità lineare espressa in assi corpo

5

ELENCO DELLE FIGURE

ωb=(p, q, r)T velocità angolare espressa in assi corpo

Wb velocità del vento espressa in assi corpo

Va = (Vb −Wb)T Airspeed

Φ = (φ, θ, ψ)T angoli di Eulero

Ve=(ue, ve, we)T velocità lineare espressa in assi terra

Xe=(xe, ye, ze)T posizione del velivolo (centro di massa) espressa in assi

terra

Super�ci mobili

δa De�essione dell'alettone

δe De�essione dell'equilibratore

δr De�essione del timone

Π Manetta

Derivate aerodinamiche

CXq CZq Cmq

CYv CYp CYr

CLp CLr CLv

CNp CNr CNv

Derivate di controllo

CLδa CNδa CZδe

Cmδe CYδr CLδr

CNδr

6

Introduzione

L'importanza della sensoristica di bordo nei sistemi aerospaziali è indiscutibile. I

dati raccolti dai diversi sensori presenti a bordo di un aeromobile, di un satellite o

di qualsiasi altro sistema, sono infatti impiegati per diversi scopi:

� vi è innanzitutto la necessità di conoscere lo scenario in cui il sistema in que-

stione sta operando: velocità lineari, velocità angolari, posizione rispetto a

un certo riferimento e assetto dell'oggetto sono informazioni fondamentali a

governare il sistema e a determinare se sono veri�cate le condizioni necessarie

allo svolgimento di un certo task ;

� fornendo i dati raccolti in real time ad opportuni strumenti, è possibile operare

il fault detection and identi�cation, ovvero veri�care la presenza di problemi

operativi durante il compimento di una certa operazione e, in caso ci fosse

la possibilità, di operare il recovery, parziale o totale, per garantire il rag-

giungimento dell'obiettivo �nale o provvedere a terminare prematuramente la

missione;

� in presenza di avanzati sistemi di bordo, come l'autopilota, i sensori sono

fondamentali per fornire allo strumento i dati necessari ad operare il controllo

istante per istante.

Vasta è la varietà di possibili sensori presenti a bordo di un sistema aerospaziale,

sia per il numero di dati da misurare, sia per il livello di ridondanza delle apparec-

chiature. Questo implica un costo in termini di peso che incide, seppur in maniera

limitata, sulle prestazioni di alcuni velivoli, se solo si pensa alla classe degli small

8

ELENCO DELLE FIGURE

UAVs. Inoltre, sensori molto accurati comportano anche un dispendio economico

maggiore.

Per ovviare almeno in parte a queste problematiche, sono state già realizzate

soluzioni basate su calcolo informatizzato: i cosiddetti sensori virtuali sono già una

realtà, e i più di�usi sono i ben noti �ltri di Kalman.

Anche l'approccio virtuale però manifesta i suoi problemi: i sistemi che descri-

vono il moto di un corpo rigido in 6 gradi di libertà sono generalmente non lineari,

cosa che complica di molto l'implementazione di un �ltro di Kalman.

In aggiunta a questa problematica, v'è poi da precisare che di norma questi tipi di

algoritmi vengono realizzati grazie alle informazioni ricavate da un modello che già

di per sè non è uno specchio perfetto della realtà, ma approssima quest'ultima con

un certo grado di incertezza. In questo modo si delinea un approccio di tipo two step

per la realizzazione del �ltro: una prima fase riguarda infatti la costruzione di un

modello che approssimi la realtà; in secondo luogo si procede con l'implementazione

di un �ltro non lineare (Filtro di Kalman esteso).

Questo approccio dà luogo alla nascita di un errore dipendente da due compo-

nenti che nascono nelle due fasi di approssimazione del modello e della linearizza-

zione operata dall'algoritmo del �ltro. Errore che non sempre può essere ritenuto

trascurabile o poco in�uente sulla stima delle variabili interessate.

9

Capitolo 1

Il problema del �ltraggio

1.1 Descrizione del problema

Figura 1.1: Tipica applicazione di un �ltro

Il problema del �ltraggio, generalizzato in �gura 1.1 può essere schematizzato

come segue.

Siano {x(k + 1) = f(xk, uk, wk)

y(k) = h(xk, uk)(1.1)

le equazioni che rappresentano la dinamica di un generico sistema non-lineare tempo

variante, dove:

� x ∈ Rn è il vettore degli stati del sistema

� f (. . . ) de�nisce la dinamica del sistema

� u ∈ Rm è il vettore degli ingressi

11

1 � Il problema del �ltraggio

� w è il vettore dei rumori del sistema

Descrizione del problema

� y ∈ Rr è il vettore delle uscite

� h(. . . ) de�nisce le uscite del sistema

� v è il vettore degli errori di misura

Supponendo di conoscere:

- le funzioni f, h, i rumori w, v le condizioni inziali

- l'ingresso u

- il set di misure y

il problema sta nell'ottenere la migliore stima dello stato xk.

Ciascun genere di �ltro tenta di ottenere una stima ottima delle quantità deside-

rate, processando dati ricavati da un ambiente a�etto da rumore. Il concetto di sti-

ma ottima sta tutto nel determinare la bontà della stessa, tramite la minimizzazione

dell'errore di stima e�ettuata rispetto a determinati criteri.

Dal punto di vista della Teoria di Bayes, il �ltro propaga la funzione densità di

probabilità - in inglese pdf : probability density function - delle quantità stimate,

condizionate dalla conoscenza dell'attuale insieme di dati provenienti dai diversi

dispositivi di misura coinvolti. In altre parole, il �ltro valuta e propaga la pdf.

p(xk|yk=1, . . . , yk, uk=0, . . . , uk−1) (1.2)

per valori di k crescenti. La pdf esprime una misura della precisione della stima

di x(k). Considerando che, per un dato istante k, la sequenza dei passati ingressi e

delle passate misure può essere indicata come1

U0k−1 = {u0, u1, . . . , uk−1}

Y1k = {y1, y2, . . . , yk}

(1.3)

1si intenda ui = u(i); yi = y(i);xi = x(i)

12

1 � Il problema del �ltraggio

L'intera evoluzione del sistema e il processo di �ltraggio possono quindi essere

riassunti in step successivi:

� Dato x0, ovvero lo stato all'istante k=0,

- l'ambiente impone il rumore w0

- al sistema è imposto lo stato u0

- lo stato evolve in x1

- si e�ettua la misura ottenendo y1

→ La migliore stima di x1 a questo step è data da p(x1|Y11, U00)

� Dato x1, ovvero lo stato all'istante k=1,

- l'ambiente impone il rumore w1

- al sistema è imposto lo stato u1

- lo stato evolve in x2

- si e�ettua la misura ottenendo y2

→ La migliore stima di x2 a questo step è data da p(x2|Y12, U01)

� (. . . )

� Dato xk−1,

- l'ambiente impone il rumore wk−1

- al sistema è imposto lo stato uk.1

- lo stato evolve in xk

- si e�ettua la misura ottenendo yk

→ La migliore stima di xk a questo step è data da p(xk|Y1k, U0k−1)

In questo modo, puntando ad ottenere la migliore stima dello stato, il �ltro propaga

la pdf per crescenti valori di k, e per ciascun valore di k si ottiene la stima xk che

ottimizza un certo criterio precedentemente scelto. La scelta di criteri diversi per

13

1 � Il problema del �ltraggio

l'ottimizzazione della stima conduce chiaramente a di�erenti stime del vettore degli

stati. Molteplici sono i criteri di scelta possibili: algoritmo dei minimi quadrati (LS:

least square) e suoi derivati, Maximum a posteriori (MAP), minimizzazione della

norma in�nito e svariati altri.

1.2 Il �ltro di Kalman

Nonostante sia certa una precedente formulazione dell'algoritmo da parte di Thor-

vald Nicolai Thiele2 - e Peter Swerling3, il �ltro prende il nome da Rudolf Emil

Kalman, ingegnere e matematico statunitense di origini ungheresi. Le sue teorie,

inizialmente accolte con grande scetticismo, furono prese in grande considerazione

verso la �ne degli anni 60 dalla NASA, tanto da essere incluse nel programma Apollo.

1.2.1 il sistema dinamico

Il generico �ltro di Kalman (in seguito KF ) è applicabile a sistemi a dinamica lineare,

che possono essere visti come sistemi del tipo 1.1 sui quali vengono fatte opportune

assunzioni. Il sistema rappresentato dalla 1.1 diventa infatti:{xk = Fkxk−1 +Bkuk + wk

yk = Hkxk + vk(1.4)

Per poter utilizzare la teoria di Kalman, bisogna impostare il sistema in accordo

con la sintassi del KF. In questa con�gurazione si assume:

� Fk la funzione di evoluzione dello stato, che viene applicata allo stato dello

step precedente xk−1

� Bk la matrice dei coe�cienti dell'ingresso, applicata al vettore degli ingressi uk

2*24/12/1838 †26/09/1910 - astronomo e matematico danese3*04/03/1929 †25/08/2000 - matematico americano

14

1 � Il problema del �ltraggio

� wk il vettore dei rumori sul sistema

All'istante k, la misura yk è legata allo stato vero xk tramite Hk ed è a�etta dal

rumore di misura vk. Per un funzionamento ottimale del �ltro, è bene che i rumori

wk e vk abbiano valore atteso nullo e distribuzione normale, ovvero:

wk ∼ N (0, Qk)

vk ∼ N (0, Rk)(1.5)

dove Qk e Rk rappresentano le matrici di covarianza rispettivamente di wk e vk. Lo

stato iniziale x0 e i vettori del rumore wk e vk sono supposti essere scorrelati.

Purtroppo gran parte dei sistemi dinamici non si comportano esattamente come

schematizzato �n qui. In questi casi, dinamiche di sistema non tenute in consi-

derazione dal �ltro tendono a degradare le performance dello stesso. Ciò dipende

dal fatto che le dinamiche non tenute in considerazione dipendono fortemente dal-

l'ingresso al sistema, e possono quindi condurre l'algoritmo di stima all'instabilità.

D'altro canto, segnali di rumore bianco scorrelati non comportano la divergenza

della stima.

1.2.2 Il �ltro lineare

Il KF sfrutta un algoritmo ricorsivo. Ciò implica che, per ottenere la stima dello

stato all'istante k occorre conoscere lo stato all'istante k - 1 e la misura dell'uscita

all'istante k, ovvero

xk ← {xk−1, yk}.A di�erenza di altri algoritmi di stima, non è necessario fornire al KF informa-

zioni relative alle precedenti evoluzioni dello stato del sistema, cioè: per stimare lo

stato all'istante k (xk) non occorre fornire al �ltro dati relativi agli istanti k − n,con n > 1.

Lo stato del �ltro è rappresentato da due variabili:

� xk|k la stima dello stato all'istante k dovuta alle informazioni relative all'istante

k ;

15

1 � Il problema del �ltraggio

� Pk|k la matrice di covarianza dello stato

Nonostante l'algoritmo del KF possa essere scritto come una singola equazione,

si tende solitamente a distinguere due fasi distinte all'interno del processo di stima:

la fase di predizione (Prediction) e la fase di aggiornamento (Update).

Prediction. La fase di predizione utilizza le informazioni di stima relative all'i-

stante k-1 per ottenere la stima dello stato all'istante corrente k. La stima così

ottenuta è anche detta a priori poichè, sebbene rappresenti una stima dello stato

all'istante attuale, essa non tiene conto delle informazioni riguardanti il corrente

passo temporale.

xk|k−1 = Fkxk−1|k−1 +Bkuk Stima dello stato a priori

Pk|k−1 = FkPk−1|k−1FkT +Qk Stima della covarianza a priori

(1.6)

Update. Nella fase di aggiornamento, quella che è stata de�nita stima a priori viene

combinata con le misure yk ottenute all'istante attuale, in modo da perfezionare la

stima dello stato. La nuova stima così ottenuta è detta stima a posteriori.

y = yk −Hkxk|k−1 Aggiornamento dell′errore di misura

Sk = HkPk|k−1HkT +Rk Argomento della covarianza

Kk = Pk|k−1HkTSk

−1 Guadagno ottimo di Kalman

xk|k = xk|k−1 +Kkyk Stima dello stato a posteriori

Pk|k = (I −KkHk)Pk|k−1 Stima della covarianza a posteriori

(1.7)

Nel caso in cui il modello utilizzato dal KF sia accurato, e i valori di x0|0 e P0|0

ri�ettano perfettamente la distribuzione dello stato iniziale, si veri�ca che4:

� E[xk − xk|k] = E[xk − xk|k−1] = 0, E[yk] = 0

� Pk|k = cov(xk − xk|k), Pk|k−1 = cov(xk − xk|k−1), Sk = cov(yk)

4Gli operatoti E [·] e cov(·) indicano rispettivamente valore medio e la covarianza delle variabilia cui sono applicati

16

1 � Il problema del �ltraggio

É inoltre noto dalla teoria di Kalman che il KF ottiene massime prestazioni nel

caso in cui

a) il modello ricalchi perfettamente il sistema;

b) i rumori in ingresso siano bianchi;

c) le covarianze dei rumori siano completamente note.

1.2.3 Il �ltro di Kalman esteso

Si è dunque visto che il generico KF è applicabile ai sistemi a dinamica lineare. Una

versione generalizzata del KF, che possa essere applicata ai sistemi non lineari, è il

�ltro di Kalman esteso (EKF, dall'inglese Extended Kalman Filter ), che opera una

linearizzazione ad ogni passo k di avanzamento.

Per l'applicazione dell'algoritmo dell'EKF non é necessario che F e H siano fun-

zioni lineari, come visto nella 1.4. É invece richiesta la condizione di di�erenziabilità

delle funzioni f e h de�nite come:{xk = f(xk−1, uk−1) + wk−1

yk = h(xk) + vk(1.8)

dove si assumono per wk e vk le stesse condizioni della 1.5.

Così come presentante, le funzioni f e h possono essere direttamente utilizzate

per ottenere stima a priori dello stato e dell'errore di misura, ma non è possibile

applicarle alla covarianza dello stato P come richiesto dall'algoritmo. In questo

caso, ad ogni istante k di iterazione, viene calcolata la matrice delle derivate parziali

(Jacobiano), che viene utilizzato nello stesso modo delle matrici F ed H nel caso del

KF. Questo processo sostanzialmente linearizza le funzioni non lineari intorno alla

corrente stima dello stato ottenuta dal �ltro stesso nella fase di predizione.

Prediction

xk|k−1 = f(xk−1|k−1, uk−1) Stima dello stato a priori

Pk|k−1 = Fk−1Pk−1|k−1Fk−1T +Qk−1 Stima della covarianza a priori

(1.9)

17

1 � Il problema del �ltraggio

con Fk−1 =∂f

∂x

∣∣∣∣xk−1|k−1,uk−1

Update

y = yk − h(xk|k−1) Aggiornamento dell′errore di misura

Sk = HkPk|k−1HkT +Rk Argomento della covarianza

Kk = Pk|k−1HkTSk

−1 Guadagno ottimo di Kalman

xk|k = xk|k−1 +Kkyk Stima dello stato a posteriori

Pk|k = (I −KkHk)Pk|k−1 Stima della covarianza a posteriori

(1.10)

con Hk =∂h

∂x

∣∣∣∣xk|k−1

1.2.4 Limiti dell'EFK

É importante sottolineare che l'EKF non è un �ltro ottimo, poichè implementato

su un insieme di approssimazioni. A causa di ciò, le matrici Pk|k e Pk|k−1 non rap-

presentano la vera covarianza della stima dello stato. Inoltre, le matrici associate

alle funzioni linearizzate Fk e Hk dipendono dalla stima al passo precedente e quindi

dalle misurazioni, per cui il guadagno Kk di Kalman non può essere calcolato o�-line

come avviene nel KF. Per tutte queste ragioni, l'EKF può divergere se la lineariz-

zazione eseguita dal �ltro stesso non approssima abbastanza fedelmente il modello

reale con un buon livello di incertezza. In aggiunta a queste considerazioni, va ri-

cordato che l'EKF(così come anche il KF ) è basato sull'assunzione che le equazioni

che determinano il sistema siano ben note, condizione che nella maggior parte delle

applicazioni pratiche non è veri�cata.

Inoltre l'EKF (come anche il KF per sistemi lineari) è basato sull'assunzione che

le equazioni che governano il sistema siano esattamente note. Questa assunzione

non è tuttavia veri�cata nella maggior parte delle applicazioni pratiche.

18

Capitolo 2

L'aeromobile e le equazioni del moto

Autonomous small unmanned aerial vehicles and micro aerial vehicles (SUAVs and

MAVs) are at the forefront of interest in many surveillance and rescue applications

for their attractive combination of light weight, low cost, low operator burden, and

up-close low altitude operation. However, lightweight and low-cost vehicles typically

restrict the available sensing hardware to low-end, consumer-grade devices that o�er

limited precision and therefore higher uncertainty when performing tasks[. . . ].

Non avendo a disposizione delle osservazioni e�ettuate su un velivolo reale, le

misure sono state ottenute da un modello di aeromobile realizzato con l'ausilio di

Matlab/Simulink. Per le simulazioni è stato utilizzato un modello basato sui dati

geometrici di un UAV (unmanned aerial vehicle), più precisamente il modello Scorpio

Super Miss 2 riportato in �gura 2.1.

2.1 Forze e momenti agenti sul velivolo

Nota la geometria del velivolo, sono state e�ettuate delle simulazioni preliminari

tramite software per analisi aerodinamica, in questo caso AVL (Athena Vortex Lat-

tice). Per diverse con�gurazioni d'assetto del velivolo, sono state ricavate le derivate

aerodinamiche e le derivate di controllo necessarie allo studio del comportamento

20

2 � L'aeromobile e le equazioni del moto

Figura 2.1: UAV Scorpio Miss 2

del velivolo per diverse manovre. Dalle varie simulazioni sono stati ricavati i valori

delle derivate aerodinamiche e di controllo riportati in tabella 2.1.

Una volta ottenute le derivate aerodinamiche e di controllo, è stato possibile

generare le forze in ingresso al velivolo attraverso la somma dei contributi di tre

modelli, che vengono riportati di seguito.

2.1.1 Azioni aerodinamiche - Aerodynamic Model

Il modello aerodinamico riceve in input la manetta e le azioni sulle super�ci di

controllo (δa, δe e δr) e restituisce in output le forze e i momenti aerodinamici a cui

è sottoposto l'aeromobile. Per la semplicità del velivolo considerato, non sono state

valutate tutte le possibili derivate aerodinamiche, ma solo quelle che intervengono

signi�cativamente sulle dinamiche di volo dell'UAV Scorpio Miss 2.

21

2 � L'aeromobile e le equazioni del moto

Tabella

2.1:

Derivateaerodinamiche

edi

controllo

calcolateconAVL

α-180.

-90.

-5.

0.5.

10.

15.

90.

180

CZtot

0.10.

0.102580

-0.382560

-0.864950

-1.339350

-1.876470

-10.

0.CXtot

0.03

0.-0.060470

-0.054540

0.003010

0.075230

-0.109600

0.0.03

Cmtot

0.2.

0.097340

0.036740

-0.047230

-0.137480

-0.110850

-2.

0.CZq

0.0.

-9.116812

-8.745563

-8.333030

-7.894211

-7.541241

0.0.

CZδe

-0.0067

-0.0067

-0.0067

-0.0067

-0.0067

-0.0067

-0.0067

-0.0067

-0.0067

CXq

0.0.

-0.507980

-0.147635

0.201468

0.570160

1.026440

0.0.

Cmq

-12.3

-12.3

-12.3

-12.3

-12.3

-12.3

-12.3

-12.3

-12.3

Cmδe

-0.0180

-0.0180

-0.0180

-0.0180

-0.0180

-0.0180

-0.0180

-0.0180

-0.0180

CYv

0.0.

-0.204297

-0.201261

-0.208921

-0.263082

-0.644075

0.0.

CYp

0.0.

-0.217328

-0.145848

-0.074906

-0.009213

0.015563

0.0.

CYr

0.0.

0.049136

0.076784

0.103757

0.129586

0.152006

0.0.

CYδr

-0.0016

-0.0016

-0.0016

-0.0016

-0.0016

-0.0016

-0.0016

-0.0016

-0.0016

Cl v

0.0.

-0.098934

-0.137640

-0.176627

-0.217863

-0.281340

0.0.

Cl p

-0.5000

-0.5000

-0.5000

-0.5000

-0.5000

-0.5000

-0.5000

-0.5000

-0.5000

Cl r

0.0.

0.064176

0.123690

0.182594

0.241567

0.304727

0.0.

Cl δa

0.0.

0.0.

0.0.

0.0.

0.Cl δr

-0.000045

-0.000045

-0.000045

-0.000045

-0.000045

-0.000045

-0.000045

-0.000045

-0.000045

Cnv

0.0.

0.011072

0.000613

-0.009400

-0.018783

-0.019168

0.0.

Cnp

0.0.

0.027829

-0.031472

-0.087978

-0.137944

-0.158838

0.0.

Cnr

0.0.

-0.041685

-0.040010

-0.043374

-0.056065

-0.120576

0.0.

Cnδa

0.0.

0.0.

0.0.

0.0.

0.Cnδr

0.0.

0.000628

0.000668

0.000698

0.000717

0.000725

0.0.

22

2 � L'aeromobile e le equazioni del moto

Input

δa

δe

δr

Va

ω

Output

Fa =

Fax

Fay

Faz

Ma =

La

Ma

Na

In realtà, anche l'angolo di deriva β è un input al sistema, ma può essere ricavato

dalle rimanenti grandezze, in particolare dalla velocità lineare, come

β = sin−1v

‖Va‖

Per semplicità di espressione, si de�nisce ora la pressione dinamica Q, utile per

il calcolo di tutte le azioni aerodinamiche, dipendente dalla velocità Va variabile ad

ogni istante di simulazione, e dalla densità ρ assunta per semplicità costante e pari

a ρ = 1.205[kg/m3] .

Q =1

2ρ‖Va‖2 (2.1)

Sono anche note le quantità geometriche Sref , Bref , Cref , le derivate aerodina-

miche, le componenti delle velocità lineari e angolari e l'angolo di deriva β, ma non

è ancora possibile de�nire analiticamente le azioni aerodinamiche sul velivolo.

Per far questo, infatti è prima necessario convertire le look-up tables che vengono

usate in Simulink in funzioni implementabili in matlab. Questa conversione avviene

tramite il comando interp1(x, Y, xi), che interpola funzioni ad una variabile. Questo

comando restituisce un vettore yi contenete gli elementi corrispondenti agli elementi

di xi detrminati dalla interpolazione dei vettori x ed Y. Al comando, inoltre, viene

anche assegnato il metodo 'cubic', che consente di avere una maggiore precisione, e

al risultato dell'interpolazione viene dato il nome di fderivata.

Sotto queste condizioni è possibile de�nire le azioni aerodinamiche sul velivolo:

23

2 � L'aeromobile e le equazioni del moto

Fax = [fCXtot + fCXq (12qCref

1‖Va‖)]QSref

Fay = [fCYvβ + fCYp (12pBref

1‖Va‖) + fCYr (

12rBref

1‖Va‖) + fCYδr δr]QSref

Faz = [fCZtot + fCZq (12qCref

1‖Va‖) + fCZδeδe]QSref

La = [fClvβ + fClp (12pBref

1‖Va‖) + fClr (

12rBref

1‖Va‖) + fClδaδa]QSrefBref

Ma = [fCmtot + fCmq (12qCref

1‖Va‖) + fCmδeδe]QSrefCref

Na = [fCnvβ + fCnp (12pBref

1‖Va‖) + fCnr (

12rBref

1‖Va‖) + fCnδaδa+ Cnδrδr]QSrefBref

(2.2)

Figura 2.2: Implementazione in Simulink dell' Aerodynamic Model (equazioni 2.2)

2.1.2 Contributo del peso - Weight Model

La massa dell'aeromobile, assunta �ssa e concentrata nel centro di massa dello stes-

so, genera una componente di forza peso lungo l'asse Ze inerziale. Di conseguenza,

24

2 � L'aeromobile e le equazioni del moto

siccome le equazioni del moto sono riferite agli assi corpo del velivolo, sarà necessa-

rio esprimere istante per istante la forza peso P nelle sue componenti in assi corpo.

Questa trasformazione si ottiene attraverso gli angoli di eulero Φ. Essendo la massa e

l'accelerazione di gravità parametri intrinsecamente de�niti nel sistema e assunti �s-

si, il Weight Model riceverà in ingresso solo gli angoli di Eulero, restituendo in uscita

le componenti della forza peso W desiderate. Per cui, le equazioni implementate nel

modello saranno:

Input

Φ

Output

W =

Wx

Wy

Wz

Wx = −mg sin θ

Wy = mg sin θ cosφ

Wz = mg cos θ cosφ

(2.3)

Figura 2.3: Implementazione in Simulink del Weight Model (equazioni 2.3)

25

2 � L'aeromobile e le equazioni del moto

2.1.3 Contributo della spinta - Thrust Model

Ai precedenti contributi, è da sommare l'azione della spinta del velivolo. La posizione

del motore viene convenzionalmente assunta in modo che la spinta generata sia

parallela e concorde con l'asse Xb, ovvero l'asse X solidale al corpo del velivolo. Per

ottenere la spinta, vengono forniti in input la velocità lineare Va e la manetta Π . Il

modello restituisce in output la spinta F, diretta come spiegato sopra ed espressa in

Newton.

Input

Va

Π

Output

F

F = Tmax

(Π− ||Va||

Vmax

)(2.4)

Figura 2.4: Implementazione in Simulink del Thrust Model (equazioni 2.4)

26

2 � L'aeromobile e le equazioni del moto

2.1.4 Forze e momenti totali

A questo punto, avendo ricavato i singoli contributi dai vari modelli, è possibile

ottenere le forze e i momenti totali che agiscono sul velivolo, e che sono riportati

come segue:

Fx = Fax +Wx + T

Fy = Fay +Wy

Fz = Faz +Wz

L = La

M = Ma

N = Na

(2.5)

per cui:

Ftot = F =

Fx

Fy

Fz

Mtot =M =

L

M

N

(2.6)

2.2 Equazioni del moto

Una volta strutturato il modello delle forze e dei momenti in ingresso, si è provveduto

a implementare le equazioni del moto, necessarie alla simulazione. Queste sono poi

state riscritte in variabili di stato per facilitare la scrittura dei successivi algoritmi

di stima di cui si è discusso nella sezione 1.2 a pagina 18.

2.2.1 Fase 1: Equazioni del moto

Con la nomenclatura �nora adottata, e de�nita nella sezione introduttiva a pagina

5, si riportano le equazioni del moto non lineari per un velivolo a sei gradi di libertà.

m(dVbdt

+ ω × Vb)

= F (2.7)

Idω

dt+ ω × (Iω) =M (2.8)

27

2 � L'aeromobile e le equazioni del moto

Φ = R(Φ)ω (2.9)

dove

R =

1 sinφ tan θ cosθ tanφ

0 cosφ −sinφ0 sinφ

cosφcosφcosφ

rappresenta la relazione che intercorre tra gli angoli di Eulero e i ratei angolari p

q ed r. Per poter ottenere le equazioni in variabili di stato, come passo preliminare

si esplicitano le ultime rispetto alle varie componenti.

Dalla 2.7 u = rv − qw + Fx/m

v = pw − ru+ Fy/m

w = qu− pv + Fz/m

(2.10)

Dalla 2.8: In forma matriciale, tenendo conto di tutti i momenti d'inerzia, il

tensore d'inerzia si esplicita come:

I =

Ixx −Ixy −Ixz−Ixx Iyy −Iyz−Izx −Izy Izz

che, sotto l'ipotesi di velivolo simmetrico diventa:

I =

Ixx 0 −Ixz0 Iyy 0

−Izx 0 Izz

(2.11)

Combinando quindi l'equazione 2.8 con la condizione 2.11 si ottiene:p = IxzIyy(N+q(Ixxp−Ixzr)−Iyypq)

IxxIyyIzz−IxzIyyIzx + IzzIyy(L+q(Izxp−Izzr)−Iyyqr)IxxIyyIzz−IxzIyyIzx

q = − (IxxIzz−IxzIzx)(r(Ixxp−Ixzr)−M+p(Izxp−Izzr))IxxIyyIzz−IxzIyyIzx

r = IxxIyy(N+q(Ixxp−Ixzr)−Iyypq)IxxIyyIzz−IxzIyyIzx + IzxIyy(L+q(Izxp−Izzr)−Iyyqr)

IxxIyyIzz−IxzIyyIzx

(2.12)

28

2 � L'aeromobile e le equazioni del moto

Dalla 2.9 φ = p+ q sinφ tan θ + r cosφ tan θ

θ = q cosφ− r sinφ

ψ = q sinφcosθ

+ r cosφcosθ

(2.13)

Ricomponendo le equazioni ottenute in un unico sistema, si ottiene

u = rv − qw + Fx/m

v = pw − ru+ Fy/m

w = qu− pv + Fz/m

p = IxzIyy(N+q(Ixxp−Ixzr)−Iyypq)IxxIyyIzz−IxzIyyIzx + IzzIyy(L+q(Izxp−Izzr)−Iyyqr)

IxxIyyIzz−IxzIyyIzx

q = − (IxxIzz−IxzIzx)(r(Ixxp−Ixzr)−M+p(Izxp−Izzr))IxxIyyIzz−IxzIyyIzx

r = IxxIyy(N+q(Ixxp−Ixzr)−Iyypq)IxxIyyIzz−IxzIyyIzx + IzxIyy(L+q(Izxp−Izzr)−Iyyqr)

IxxIyyIzz−IxzIyyIzx

φ = p+ q sinφ tan θ + r cosφ tan θ

θ = q cosφ− r sinφ

ψ = q sinφcosθ

+ r cosφcosθ

(2.14)

con

Fx = [fCXtot + fCXq (12qCref

1‖Va‖)]QSref −mg sin θ + Tmax(Π− ‖Va‖

Vmax)

Fy = [fCYvβ + fCYp (12pBref

1‖Va‖) + fCYr (

12rBref

1‖Va‖) + fCYδr δr]QSref +mg sin θ cosφ

Fz = [fCZtot + fCZq (12qCref

1‖Va‖) + fCZδeδe]QSref +mg cos θ cosφ

L = [fClvβ + fClp (12pBref

1‖Va‖) + fClr (

12rBref

1‖Va‖) + fClδaδa]QSrefBref

M = [fCmtot + fCmq (12qCref

1‖Va‖) + fCmδeδe]QSrefCref

N = [fCnvβ + fCnp (12pBref

1‖Va‖) + fCnr (

12rBref

1‖Va‖) + fCnδaδa+ Cnδrδr]QSrefBref

Il tutto è facilmente riscrivibile in variabili di stato.

2.2.2 Fase 2: Variabili di stato

In variabili di stato, la dinamica del modello è rappresentata dal sistema di equazioni:{x = f(x, u)

y = h(x)(2.15)

29

2 � L'aeromobile e le equazioni del moto

dove f(. . . ) e h(. . . ) sono rispettivamente la funzione dello stato e la funzione

delle uscite.

Funzione dello stato f

Prima di procedere, occorre de�nire l'ingresso u al sistema e le variabili di stato x

in gioco.

Ingresso. Per il vettore degli ingressi u si tengono in considerazione la ρ, le

azioni sulle super�ci di controllo, la spinta e la velocità del vento. In de�nitiva il

vettore degli ingressi è il seguente:

u =(u1 u2 u3 u4 u5 u6 u7 u8

)T=(ρ δa δe δr Π Wx Wy Wz

)T(2.16)

Stato. Lo stato sarà invece rappresentato dalle componenti dei vettori velocità

lineare e angolare espresse in assi corpo, Vb e ω, e dagli angoli di Eulero Φ. Il

sistema avrà quindi nove stati.

x =(x1 x2 x3 x4 x5 x6 x7 x8 x9

)T=(u v w p q r φ θ ψ

)T(2.17)

Funzione f in variabili di stato. É ora possibile scrivere il sistema 2.14 in

variabili di stato, come segue:

x1 = x6x2 − x5x3 + Fx/m

x2 = x4x2 − x6x1 + Fy/m

x3 = x5x1 − x4x2 + Fz/m

x4 = IxzIyy(N+x5(Ixxx4−Ixzx6)−Iyyx4x5)IxxIyyIzz−IxzIyyIzx + IzzIyy(L+x5(Izxx4−Izzx6)−Iyyx5x6)

IxxIyyIzz−IxzIyyIzx

x5 = − (IxxIzz−IxzIzx)(x6(Ixxx4−Ixzx6)−M+x4(Izxx4−Izzx6))IxxIyyIzz−IxzIyyIzx

x6 = IxxIyy(N+x5(Ixxx4−Ixzx6)−Iyyx4x5)IxxIyyIzz−IxzIyyIzx + IzxIyy(L+x5(Izxx4−Izzx6)−Iyyx5x6)

IxxIyyIzz−IxzIyyIzx

x7 = x4 + x5 sinx7 tanx8 + x6 cosx7 tanx8

x8 = x5 cosx7 − x6 sinx7x9 = x5

sin x7cos x8

+ x6cos x7cos x8

(2.18)

30

2 � L'aeromobile e le equazioni del moto

con

Fx ={

[fCXtot + fCXq (12x5Cref

1‖Va‖)]QSref −mg sinx8 + Tmax(Π− ‖Va‖

Vmax)}

Fy ={

[fCYvβ + fCYp (12x4Bref

1‖Va‖) + fCYr (

12x6Bref

1‖Va‖) + fCYδr δr]QSref +mg sinx8 cosx7

}Fz =

{[fCZtot + fCZq (

12x5Cref

1‖Va‖) + fCZδeδe]QSref +mg cosx8 cosx7

}L =

{[fClvβ + fClp (1

2x4Bref

1‖Va‖) + fClr (

12x6Bref

1‖Va‖) + fClδaδa]QSrefBref

}M =

{[fCmtot + fCmq (

12x5Cref

1‖Va‖) + fCmδeδe]QSrefCref

}N =

{[fCnvβ + fCnp (1

2x4Bref

1‖Va‖) + fCnr (

12x6Bref

1‖Va‖) + fCnδaδa+ Cnδrδr]QSrefBref

}Funzione dell'uscita h

Il vettore dell'uscita y conserva le informazioni dello stato x e inoltre contiene i

vettori posizione e velocità del baricentro del velivolo, espressi in un sistema di

riferimento inerziale denominato assi terra. Tali vettori,

Xe =

xe

ye

ze

e Ve =

ue

ve

we

=

xe

ye

ze

(2.19)

sono ricavati dalla velocità in assi corpo Vb, opportunamente combinata con

una matrice di rotazione detta DCM, ovvero Direct Cosine Matrix, dipendente dagli

angoli di Eulero, che ad ogni istante temporale viene ricalcolata in base alla rotazione

del velivolo.

DCM =

cosψ cos θ sinψ cos θ −sinθ

cosψ sin θ sinφ− sinψ cosφ sinψ sin θ sinφ+ cosψ cos θ cosθ sinφ

cosψ sin θ sinφ+ sinψ cosφ sinψ sin θ sinφ− cosψ cos θ cosθ cosφ

che in variabili di stato è uguale a

cosx9 cosx8 sinx9 cosx8 −sinx8

cosx9 sinx8 sinx7 − sinx9 cosx7 sinx9 sinx8 sinx7 + cosx9 cosx8 cosx8 sinx7

cosx9 sinx8 sinx7 + sinx9 cosx7 sinx9 sinx8 sinx7 − cosx9 cosx8 cosx8 cosx7

(2.20)

31

2 � L'aeromobile e le equazioni del moto

La relazione che intercorre tra Vb e Ve può quindi essere espressa come:

Ve = DCMTVb (2.21)

Mentre Xe può essere ottenuto come

Xe =

∫ t

0

Ve dx (2.22)

Per cui, il vettore y dell'uscita è così de�nito:

y =(y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15

)T=(u v w p q r φ θ ψ xe ye ze ve we ze

)T(2.23)

La funzione delle uscite h(. . . ) può essere quindi scritta come segue:

y1 = x1

y2 = x2

y3 = x3

y4 = x4

y5 = x5

y6 = x6

y7 = x7

y8 = x8

y9 = x9

y10 = xe

y11 = ye

y12 = ze

y13 = ue

y14 = ve

y15 = we

(2.24)

32

2 � L'aeromobile e le equazioni del moto

2.2.3 Implementazione in Matlab/Simulink

Una volta scritte le equazioni in variabili di stato, è stata e�ettuata l'implemen-

tazione del modello in Matlab/Simulink. In �gura 2.5 sono evidenziati i blocchetti

Interpreted Matlab Function associati alle funzioni descritte nelle pagine precedenti.

In particolare, in rosso il blocchetto contenente la ffunction come espressa dalla 2.18

e in blu il blocchetto della hfunction espressa dalla 2.24. Terminata la stesura dei

modelli e delle equazioni del moto, i blocchetti �nora descritti sono stati interfac-

ciati tra di loro grazie al toolbox Simulink, creando così il sistema completo per la

simulazione del volo dell'aeromobile. Per poter analizzare diverse situazioni di volo e

di assetto, sono stati realizzati dei segnali di input δa, δe, δr e Π al sistema comples-

sivo, tali da simulare delle manovre più o meno realistiche, per ottenere osservazioni

riguardanti gli stati del sistema più signi�cativi al �ne della stima dell'accelerazione

longitudinale u.

Figura 2.5: Il modello di equazioni del moto implementato in Simulink

In �gura 2.6 è possibile vedere il modello completo di tutti i suoi componenti.

L'unico input, il blocchetto giallo denominato Commands, contiene i quattro segnali

di cui sopra. Si può notare la presenza di un altro blocchetto evidenziato di cui non

si è parlato, ovvero il blocco delle Dinamiche degli attuatori. La funzione di tale

parte del sistema è quella di simulare l'e�ettiva dinamica dei componenti �sici che

33

2 � L'aeromobile e le equazioni del moto

realizzano il movimento della super�cie mobile o del motore, tenendo conto del

tempo di trasmissione del segnale e di altri parametri. Al di sotto della maschera,

il modello si presenta come in �gura 2.7.

Figura 2.6: Modello Completo

Figura 2.7: Simulazione della dinamica degli attuatori

2.3 La raccolta dei dati

Una volta realizzato il modello ampiamente descritto in questo capitolo, sono state

e�ettuate delle simulazioni per diversi assetti di volo1.

1Manovre descritte in Appendice B

34

2 � L'aeromobile e le equazioni del moto

2.3.1 Tempi di simulazione e blockset

I segnali di input sono stati creati in modo da realizzare manovre �nite (ad esempio

un'intera virata di 90° o 180°) in un tempo di 36 s. Dalla simulazione, grazie al

blocco Simulink Signal To Workspace sono stati raccolti i dati utili alla realizzazioni

dei �ltri: gli angoli di Eulero Φ, la velocità Vb,la velocità angolare ω, e i valori di

ρ, Π e Wb. Una volta collezionati, questi segnali sono stati manipolati in modo

opportuno per l'implementazione dei �ltri.

35

Capitolo 3

Risultati in simulazione

3.1 EFK

Allo scopo di stimare l'accelerazione longitudinale tramite EKF, si è in primo luogo

immaginato di conoscere perfettamente le equazioni del modello, e su di esse, appli-

cando la teoria sopra citata, è stato costruito un EKF che, ricevendo in ingresso un

determinato numero di parametri potesse stimare la grandezza desiderata.

Inizialmente si è provato ad implementare un �ltro che ricevesse in ingresso 4

uscite del sistema: quelle relative alle velocità v e w e quelle relative ai ratei angolari

r e q. Sotto queste ipotesi, si immaginava di conoscere ad ogni istante t la forza

Fx che appare nell'equazione 2.14, che veniva data come input nel �ltro tramite il

blocchetto to workspace.

Questo primo tentativo di implementazione, tuttavia, non ha prodotto i risultati

sperati, in quanto le uscite erano troppo poche per poter garantire una valida fase

di Update e, come risultato, la variabile stimata non seguiva l'andamento di quella

reale.

Come secondo tentativo, allora, si è deciso di usare tutte le uscite del sistema

nell'implementazione del �ltro, ma questa soluzione portava a risultati accettabili

solo nel caso di alcune manovre, e non di altre.

Molto probabilmente questo è dovuto al fatto che non tutte le uscite sono neces-

sarie alla stima di u, e quindi quelle in eccesso portano solo ad avere una maggiore

37

3 � Risultati in simulazione

propagazione dell'errore.

Alla �ne si è deciso di utilizzare nella fase di Update solo le uscite direttamente

coinvolte nell'equazione 2.14 per la stima dello stato u, e la bontà della stima viene

veri�cata grazie al calcolo del RMSE (root mean square error), espresso dalla formula

3.1.

RMSE =‖y − y‖√

N(3.1)

dove y rappresenta il segnale misurato, �y il segnale stimato e N la lunghezza del

vettore y.

3.1.1 Test1: EFK ideale

L'EKF conserva nell'algoritmo alcuni dati �sici relativi all'aeromobile, come massa

e tensore d'inerzia. In un primo momento, il �ltro è stato realizzato considerando

di conoscere perfettamente e in ogni minimo dettaglio il modello al quale applicare

l'algoritmo. In tabella 3.1 sono riportati i valori degli RMSE per le varie manovre.

Tabella 3.1: RMSE - Test 1

RMSE·100EFK

Manovra 1 2,0215Manovra 2 1,8960Manovra 3 1,7927Manovra 4 1,7978Manovra 5 2,1900Manovra 6 1,8983Manovra 7 1,8716Manovra 8 3,3056

3.1.2 Introduzione degli errori

È chiaro che nella pratica, una situazione simile a quella presentata nella sezione

3.1, seppur auspicabile, non è mai veri�cata. Si sono allora introdotti degli errori su

38

3 � Risultati in simulazione

alcuni parametri del �ltro, per rendere la simulazione più prossima alla realtà.

Test 2.1: Introduzione degli errori sulle derivate aerodinamiche

Come primo passo si è immaginato che i valori delle derivate aerodinamiche calco-

lati con AVL non coincidessero con quelli reali, e quindi si è deciso di introdurre

un'errore1 del 10% sui suddetti valori.

Sotto queste ipotesi, per evitare che i risultati fossero troppo in�ciati dal caso,

sono state fatte 10 simulazioni per ogni manovra, e nella tabella 3.2 sono riportate

le medie dei relativi RMSE.

Tabella 3.2: RMSE - Test 2.1

RMSE·100EFK

Manovra 1 2,0411Manovra 2 1,9116Manovra 3 1,8064Manovra 4 1,8115Manovra 5 2,2158Manovra 6 1,9157Manovra 7 1,8779Manovra 8 3,3561

Test2.2: Introduzione degli errori sui parametri e sulle condizioni iniziali

In questa sottosezione, a di�erenza della precedente, sono stati introdotti degli er-

rori sui dati �sici all'interno del �ltro, per rendere la simulazione più prossima alla

realtà. Più precisamente, sono stati introdotti degli errori del 10, 20, 30, 40 e 50%

sulla massa e sui vari elementi del tensore d'inerzia. Anche in questo caso ogni simu-

lazione, poi, è stata ripetuta per 10 volte, per evitare che i risultati fossero troppo

in�ciati dalla casualità. Per maggiore chiarezza è stata poi fatta una media tra le

1Gli errori sono stati generati tramite la funzione di matlab rand

39

3 � Risultati in simulazione

dieci ripetuzioni al �ne di avere un'idea più precisa di come vari e�ettivamente la

stima del segnale per ognuna delle 5 simulazioni. Questi valori sono mostrati nella

tabella 3.3.

Tabella 3.3: RMSE - Manovre

Errore Man. 1 Man. 2 Man. 3 Man. 4 Man. 5 Man. 6 Man. 7 Man. 8

10% 7,2811 20,9990 11,1037 9,0082 8,7961 16,2814 60,2307 18,348220% 8,5608 37,2381 12,4813 9,7765 9,0817 29,7157 82,0836 22,453430% 8,9971 24,1188 10,6381 10,4903 10,7138 34,6599 72,0315 17,260040% 9,5621 40,4066 11,7988 8,3691 8,4095 19,8846 84,2538 16,400750% 6,2349 24,2551 15,2197 11,1078 11,1788 14,4907 88,6310 25,6812

Come passo ulteriore si è anche deciso di introdurre degli errori relativi alle

condizioni iniziali del �ltro stesso, e in particolare si è deciso di introdurre delle

variazioni che vanno dal 10% �no al 100%, con uno step tra una simulazione e l'altra

del 10%, e in questo modo sono state e�ettuate 10 simulazioni per ogni manovra.

Anche in questo caso, per evitare che i risultati fossero in�ciati troppo dal caso,

ogni simulazione è stata reiterata per 10 volte. Tuttavia a causa della velocità con

cui il segnale simulato segue l'andamento reale dello stesso, è possibile veri�care

variazioni dell'RMSE solo per quanto riguarda la sesta cifra decimale, in quanto,

anche perturbando le condizioni iniziali del 200%, l'e�etto del disturbo iniziale viene

meno dopo appena poche iterazioni, come si può facilmente vedere nella �gura 3.1.

Figura 3.1: Esempi di Convergenza

40

3 � Risultati in simulazione

3.1.3 Scelta delle matrici Q e R

Un'altra considerazione va fatta per quanto riguarda la scelta delle matrici Q e R,

ovvero rispettivamente la Matrice di Covarianza del disturbo sullo stato e la Matrice

di Varianza del rumore sulle misure.

La prima rappresenta la variabilità statistica del vettore dei disturbi sullo stato,

ovvero la potenza del disturbo introdotto nel sistema che devia l'andamento delle va-

riabili di stato rispetto a quello prevedibile dalla conoscenza del vettore degli ingressi

e dalla legge lineare che ne governa l'evoluzione. La seconda, invece, rappresenta

la variabilità statistica del vettore dei disturbi di misura (vettore a media nulla) e

rappresenta la potenza del disturbo sulla misura introdotta su ciascuna delle misure

accessibili;

Nel caso del �ltro implementato, sono state scelte come matrici Q e R due matrici

identità, dove la prima è stata moltiplicata per un coe�ciente unitario, mentre la

seconda è stata moltiplicata per il tempo di campionamento Ts.

La scelta di questi coe�cienti moltiplicativi è stata fatta rispettando l'ordi-

ne di grandezza della maggior parte degli elementi delle matrici FkPk−1|k−1FkT e

HkPk|k−1HkT a cui si vanno a sommare.

Successivamente sono stati anche modi�cati ad uno ad uno gli elementi delle due

diagonali, in modo da vedere a quali variazioni il �ltro è più sensibile.

Ad esempio, in tabella 3.4, si possono notare le variazioni dell'RMSE per la

manovra 8, in cui ogni elemento è stato prima diviso e poi moltiplicato per 10:

Nella �gura 3.2 si può capire meglio i risultati della suddetta tabella.

Si vede infatti che il �ltro è molto sensibile alla variazione del 4° elemento delle

due matrici e abbastanza sensibile alla variazione del secondo elemento, mentre la

modi�ca degli altri 7 elementi non contribuisce molto alla propagazione dell'errore.

41

3 � Risultati in simulazione

Tabella 3.4: Variazione RMSE per diversi valori degli elementi di P e Q

Elemento coe�ciente Modi�ca in Modi�ca inmodi�cato moltiplicativo P Q

(1,1) 0.1 3,3095 3,3016(1,1) 10 3,3052 3,3288(2,2) 0.1 6,4421 3,3217(2,2) 10 3,1236 5,8154(3,3) 0.1 3,3097 3,3056(3,3) 10 3,3052 3,3056(4,4) 0.1 19,9685 0,5993(4,4) 10 0,6164 30,0140(5,5) 0.1 3,2864 3,3145(5,5) 10 3,3119 3,2215(6,6) 0.1 3,1833 3,3329(6,6) 10 3,3271 3,0860(7,7) 0.1 3,3053 3,3069(7,7) 10 3,3062 3,3050(8,8) 0.1 3,3054 3,3056(8,8) 10 3,3074 3,3078(9,9) 0.1 3,0701 3,3319(9,9) 10 3,3321 3,0538

Figura 3.2: Sensibilità alla variazione degli elementi di P e Q

42

Capitolo 4

Conclusioni

Ciò che appare dai risultati in simulazione, mostrati nel precedente capitolo 3 e che

possono essere consultati in maniera più approfondita nell'appendice D, è che il Fil-

tro di Kalman esteso approssima molto bene l'andamento del segnale da ricostruire,

specialmente nel caso ideale in cui si conosce in modo completo il modello a cui

applicare il �ltro, come mostrato in �gura 4.1.

Figura 4.1: Andamento RMSE

É inoltre importante sottolineare che l'alto numero di uscite utilizzate nella rea-

lizzazione del �ltro, ha notevolmente contribuito ad irrobustirlo, al punto tale che

l'errore commesso nella stima dello stato è quasi indipendente dall'errore che si

commette sulle condizioni iniziali.

44

4 � Conclusioni

Un altro aspetto da notare è il peggioramento del �ltro nel caso in cui si intro-

ducano importanti errori sui parametri,come mostrato in �gura 4.2.

Figura 4.2: Andamento RMSE con variazione dei parametri

Questo peggioramento è tuttavia normale, in quanto si ipotizza che il �ltro riceva

in ingresso dei parametri ben diversi da quelli reali, (in alcuni casi anche del 50%),

ed è inoltre da notare che, nella maggior parte dei casi, il �ltro riesce comunque a

ricostruire il segnale desiderato con un'ottima approssimazione.

45

Appendice A

Utilizzo di AVL

Figura A.1: AVL - Schermata iniziale di AVL

Athena Vortex Lattice è un software per l'analisi aerodinamica e delle dinamiche

di volo di corpi rigidi in con�gurazione arbitraria.

Noti i dati geometrici (super�ci alari, fusoliera, ecc.) e i dati �sici (massa, inerzia,

ecc.) dell'aeromobile in questione, e salvati in �le compatibili con il software (ovvero

�le con estensione .avl per i dati geometrici e .mass per con�gurazioni di massa e

inerzia), è possibile e�ettuare l'analisi aerodinamica.

47

A � Utilizzo di AVL

Una volta caricati i dati preliminari, la schermata del software si presenta come

mostrato in �gura A.2.

Figura A.2: AVL - Schermata di con�gurazione d'assetto

Per procedere con la simulazione, occorre inserire i valori desiderati delle variabili

α, β, ecc. così come mostrato dalla schermata. In questo caso dimostrativo, viene

impostato un angolo α di 15° e si procede con la simulazione.

Figura A.3: AVL - Inserimento dei valori

Impostata questa con�gurazione, lasciando invariati tutti gli altri valori, tramite

il comando eXecute si avvia la simulazione. Dopo che il software avrà completato

48

A � Utilizzo di AVL

l'operazione, saranno disponibili i valori di body-axis derivates desiderati per quella

particolare condizione di assetto.

Ripetendo questa simulazione per i desiderati valori di assetto, si ottiene un

completo set di coe�cienti e derivate aerodinamiche, come presentate dalla tabella

3.1, tramite le quali è possibile implementare l'Aerodynamic Model.

Figura A.4: AVL - Derivate aerodinamiche e di controllo

49

Appendice B

Manovre

In questa appendice sono inseriti i gra�ci dei piani XY , XZ e YZ generati durante

simulazione per le diverse manovre realizzate. In fase di simulazione, oltre alle

osservazioni sulle uscite, è stato possibile valutare le manovre realizzate anche grazie

al blocco MATLAB Animation dell'Aerospace Toolbox di Simulink (�gura B.1).

Figura B.1: Animazione ottenuta tramite simulink

50

B � Manovre

B.1 Descrizione

Le diverse manovre sono state realizzate con la logica di emulare possibili situazioni

reali. Dopo un brevissimo transitorio iniziale, uguale per tutte le situazioni simula-

te, le diverse manovre rappresentano quindi plausibili assetti di volo, che vengono

descritti nei paragra� successivi.

Manovra 1 La Manovra 1 (�gura B.2) rappresenta una spirale ascendente, du-

rante la quale la manetta varia con andamento sinusoidale. Questa variazione della

manetta provoca anche un sensibile beccheggio da parte dell'aeromobile.

Manovra 2 La Manovra 2 (�gura B.3) rappresenta un looping, ovvero un cer-

chio verticale descritto nel piano XZ.

Manovra 3 e 4 La Manovra 3 e la Manovra 4 (�gure B.3 e B.4) rappresentano

due situazioni di virata, rispettivamente di circa 180° e 90° nel piano XY .

Manovra 5 La Manovra 5 (�gura B.5) rappresenta una spirale dapprima di-

scendente, poi ascendente, durante la quale, a di�erenza della Manovra 1, non ci

sono variazioni della manetta.

Manovra 6 La Manovra 6 (�gura B.6) rappresenta una fase di volo in cui il

velivolo e�ettua prima una salita e successivamente, dopo una brusca manovra di

picchiata, una discesa.

Manovra 7 La Manovra 7 (�gura B.7) rappresenta una fase di volo in cui il

velivolo e�ettua una serie di looping stretti, che provocano sensibili variazioni del-

l'accelerazione longitudinale.

Manovra 8 La Manovra 8 (�gura B.8) rappresenta una fase di volo in cui il ve-

livolo e�ettua una serie manovre non meglio de�nite, che possono essere paragonate

51

B � Manovre

a delle acrobazie.

Di seguito sono riportati i gra�ci che presentano le manovre appena descritte,

nei 2 piani di moto XY e XZ.

Figura B.2: Manovra 1

Figura B.3: Manovra 2

Figura B.4: Manovra 3

52

B � Manovre

Figura B.5: Manovra 4

Figura B.6: Manovra 5

Figura B.7: Manovra 6

53

B � Manovre

Figura B.8: Manovra 7

Figura B.9: Manovra 8

54

Appendice C

Principali script Matlab

C.1 ffunction

55

C � Principali script Matlab

56

C � Principali script Matlab

57

C � Principali script Matlab

C.2 hfunction

58

C � Principali script Matlab

C.3 EFK

59

C � Principali script Matlab

60

Appendice D

Risultati gra�ci dei �ltri

implementati

In questa sezione vengono riportati gli esiti gra�ci dei �ltri realizzati, dove la traccia

blu indica l'andamento del segnale reale e la traccia celeste indica l'andamento del

segnale ricostruito dal �ltro.

61

D � Risultati gra�ci dei �ltri implementati

Figura D.1: EKF- I risultati gra�ci del Test 1

62

D � Risultati gra�ci dei �ltri implementati

Figura D.2: EKF- Discostamento massimo per ogni manovra

63

Bibliogra�a

[1] Unscented Filtering and nonlinear estimation. Proceedings of the IEEE, pages

401-422, (2004).

[2] Stephen Nuske, Michael Dille, Ben Grocholsky, and Sanjiv Singh. Representing

substantial heading uncertainty for accurate geolocation by small uavs. Technical

report, Robotics Institute, Carnegie Mellon University, 8 (2010).

[3] Maria Isabel Ribeiro. Kalman and extended kalman �lters: concept, derivation

and properties. Technical report, Institute for Systems and Robotics, Instituto

Superior Tècnico, (2004).

[4] Guillermo Hereida and Anibal Ollero. Virtual sensor for failure detection, iden-

ti�cation and recovery in the transition phase of a morphing aircraft. Sensors,

MDPI.com.

[5] Giulio Avanzini. Fondamenti di dinamica del volo del velivolo rigido. Technical

report, Politecnico di Torino, (2010).

[6] L. Mangiacasale. (1998).

[7] Paul Bizard. Matlab/Simulink/AVL simulator. DIY drones, 12 (2011).

[8] Mark Drela and Harold Youngren. AVL 3.30 User Primer. MIT Aero and Astro,

8 (2010).

65