Uno sguardo longitudinale sulle nuove pratiche di intermediazione turistica via internet
Progetto di sensori virtuali per la stima dell'accelerazione longitudinale di un velivolo
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
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.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