UNIVERSITÀ DEGLI STUDI DI CAGLIARI - Corsi

Pagina creata da Dario Grandi
 
CONTINUA A LEGGERE
UNIVERSITÀ DEGLI STUDI DI CAGLIARI - Corsi
UNIVERSITÀ DEGLI STUDI DI CAGLIARI

       FACOLTÀ DI INGEGNERIA E ARCHITETTURA

Corso di Laurea Triennale in Ingegneria Elettrica ed Elettronica

        Modellazione e controllo PD di un
        quadrirotore in presenza di disturbi

                    Settore Disciplinare: ING-INF/04

Relatore: Prof. Elio Usai
Correlatore: Ing. Mauro Franceschelli         Tesi di laurea di: Flavia Serri

                             23 Luglio 2015
UNIVERSITÀ DEGLI STUDI DI CAGLIARI - Corsi
Any sufficiently advanced technology is indistinguishable from magic.
                                                    -Arthur C. Clarke
UNIVERSITÀ DEGLI STUDI DI CAGLIARI - Corsi
Sommario

In questa tesi si tratta il problema del controllo di un quadrirotore, l’Asctec
Hummingbird, in condizioni di volo stazionarie. Si è utilizzato ed analiz-
zato il modello matematico della dinamica di un generico velivolo per poi
caratterizzarlo con i parametri del drone in questione. È stata calcolata la
matrice di inerzia dell’Hummingbird e si è tenuto conto di alcuni parametri
che caratterizzano la sua struttura e i suoi motori.
    Il modello matematico descrittivo della dinamica del quadrirotore, non
lineare, è stato linearizzato nell’intorno di un determinato punto di lavoro, e
l’assetto e la quota sono stati controllati tramite dei controllori PD.
    Il controllo così ottenuto è stato implementato in un modello Matlab/Simulink
più complesso, che tiene conto delle non linearità, in modo da confermare la
validità del controllo in un sistema il più simile possibile a quello reale.
UNIVERSITÀ DEGLI STUDI DI CAGLIARI - Corsi
Abstract

In this thesis the control problem of a quadrotor drone, the Asctec Humming-
bird, is investigated. A mathematical model for the quadrotor dynamics is
used and tuned with the specific parameters of the Asctec Hummingbird.
A PD control law has been developed to control attitude and height of the
drone. Simulations with Matlab/Simulink have been performed to validate
the control design for the achievement of stable hovering at a fixed height.
Indice

1 Introduzione                                                                                             2
  1.1 Stato dell’arte . . . . . . . . . . . . . . . . . . . . . . . . . . .                                2
  1.2 L’AscTec Hummingbird . . . . . . . . . . . . . . . . . . . . .                                       4
  1.3 Contributo e struttura della tesi . . . . . . . . . . . . . . . . .                                  7

2 Descrizione del modello matematico                                                                       9
  2.1 Movimenti fondamentali . . . . . . .        .   . . .       .   .   .   .   .   .   .   .   .   .    9
      2.1.1 Roll, Pitch e Yaw . . . . . . .       .   . . .       .   .   .   .   .   .   .   .   .   .    9
      2.1.2 Spinta . . . . . . . . . . . . .      .   . . .       .   .   .   .   .   .   .   .   .   .   10
  2.2 Il modello non lineare . . . . . . . . .    .   . . .       .   .   .   .   .   .   .   .   .   .   11
  2.3 Il modello linearizzato . . . . . . . .     .   . . .       .   .   .   .   .   .   .   .   .   .   14
  2.4 Parametri caratteristici . . . . . . . .    .   . . .       .   .   .   .   .   .   .   .   .   .   15
      2.4.1 Stima della matrice di inerzia        .   . . .       .   .   .   .   .   .   .   .   .   .   15
      2.4.2 Stima dei coefficienti di thrust      e   drag        .   .   .   .   .   .   .   .   .   .   18

3 Il problema del controllo                                                                               20
  3.1 I regolatori PID . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
  3.2 Il luogo delle radici . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   21
  3.3 Il controllo della quota . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   23
  3.4 Il controllo del rollio e del beccheggio    .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
  3.5 Il controllo dell’imbardata . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   30

4 Simulazioni                                                             33
  4.1 Implementazione dei parametri in un modello non lineare . . . 33
  4.2 Conclusioni e lavori futuri . . . . . . . . . . . . . . . . . . . . 36

Bibliografia                                                                                              37

                                       1
Capitolo 1

Introduzione

1.1     Stato dell’arte
L’uomo ha sempre avuto un grande interesse per le macchine volanti. Nella
figura 1 è mostrata una loro possibile classificazione. Ovviamente in questa
tesi tratteremo delle macchine motorizzate, e in particolare delle cosiddette
VTOL (Vertical Take-Off and Landing), cioè quelle con decollo e atterraggio
verticale.

                Figura 1.1: Confronto tra macchine volanti

   L’idea di un decollo e un atterraggio verticali non è nuova, Tesla nel 1928
brevettò Flivver, considerato probabilmente il primo velivolo VTOL. Oggi,
nonostante ci siano alcuni velivoli di grossa taglia a decollo verticale, VTOL
è un acronimo spesso accompagnato da UAV (Unmanned Aerial Vehicle) cioè
un velivolo senza pilota, un drone.

                                      2
I droni sono piccoli, agili, relativamente poco costosi, e meccanicamente
semplici ottimi per applicazioni militari e civili dei tipi più disparati. Avendo
pale corte e leggere il loro controllo viene raggiunto con una regolazione della
velocità dei rotori il che li rende sostanzialmente diversi dagli altri velivoli con
inerzie delle pale troppo grandi. Ci sono diverse tipologie di droni VTOL.
    Una importante distinzione è la possibilità o meno di cambiare il piano di
rotazione delle pale. È possibile ottenere il controllo del velivolo in entrambi i
modi, nel primo caso si devono usare meno motori ma è necessario controllare
anche l’orientazione del piano di rotazione, nel secondo caso il controllo si
basa solamente sulle variazioni di velocità. In questa tesi si tratterà di un
velivolo con piano di rotazione delle pale fisso.
    Una ulteriore distinzione dei velivoli UAV, VTOL e con asse fisso, può
essere fatta considerando il numero di rotori. Il numero più comune è si-
curamente quattro, ma esistono anche droni VTOL con sei rotori. In caso
di configurazione a quattro rotori si parla di "quadrotor" o "quadrocopter".
L’interesse per questa particolare struttura deriva dalla possibilità di con-
trollare piuttosto agevolmente il drone nello spazio, e allo stesso tempo avere
costi più contenuti e un minor peso rispetto alla configurazione a sei roto-
ri. Per di più ne deriva una minore occupazione dello spazio, e siccome una
caratteristica interessante di queste macchine volanti è proprio la possibilità
di essere piuttosto piccole, ogni possibile riduzione delle dimensioni è molto
apprezzata.
    In verità sarebbe possibile una configurazione di questi velivoli con due
rotori, e questo sicuramente andrebbe nella direzione della miniaturizzazione
e della riduzione del costo, ma si dovrebbe rinunciare al controllo dell’imbar-
data, e questo rende l’idea più interessante da un punto di vista concettuale
che pratico.
    Tra i diversi tipi di quadrotor proposti e studiati in letteratura, si trova
una certa varietà nelle dimensioni. Un esempio di questo è il Mesicopter [1]
studiato dalla Stanford University, un quadrirotore inscrivibile in un quadra-
to di lato 1.5 cm. Tralasciando però i casi particolari, le dimensioni di un
quadrotor si aggirano intorno ai 50 cm di lato.
    In tutti i casi però, come accennato, il controllo di questi velivoli agisce
sulle velocità dei quattro rotori che possono essere variate il modo da cam-
biare l’assetto del drone e i suoi angoli di roll pitch e yaw (rollio beccheggio e
imbardata rispettivamente), e la spinta verso l’alto che gli permette di salire
di quota.

                                         3
Negli ultimi anni si è visto un interesse sempre crescente verso i quadrotor,
apprezzati da ricercatori ed amatori. Alcuni si sono interessati a controllare
il drone in condizioni di quasi stazionarietà [6] [7], ma una volta raggiunto
questo obiettivo si apre la strada ai controlli più disparati. Può per esempio
essere interessante far andare il drone da un punto all’altro seguendo una
traiettoria ottimale, come per esempio in [11]. Questo obiettivo può essere
anche più difficile da raggiungere se si considera un volo il luoghi chiusi, che
sono tipicamente più stretti e quindi richiedono movimenti più precisi [10].
    Ovviamente la chiave del controllo è la stima dello stato. Di solito i qua-
drirotori sono equipaggiati con un giroscopio, un accelerometro, un sensore
di pressione, una bussola e un GPS, ma possono anche avere una videoca-
mera da cui estrapolare lo stato. In questo caso la sfida è ottenere la stima
migliore usando i dati ricevuti dalla videocamera [12] [14]. In manovre ra-
pide stimare lo stato e la traiettoria diventa molto complicato ed è quindi
necessario programmare il drone stesso affinché faccia i tentativi giusti per
poi compiere la manovra [5].
    Un quadrotor ha quindi bisogno non solo di un buon controllo, ma anche
della giusta strumentazione di bordo che deve permettere costi e dimensioni
contenuti. Questa è una sfida che si sta vincendo e che permette di vedere
sempre più dispositivi di questo tipo in commercio per gli scopi più disparati
[13].

1.2     L’AscTec Hummingbird
Il drone su cui è basata questa tesi è un AscTec Hummingbird [2] un quadro-
tor e uno dei modelli più apprezzati della casa tedesca Asctending Technology.
    L’Hummingbird è inscrivibile in un quadrato di 54 cm, ed è alto 5.5 cm
nella sua configurazione di base. È dotato di batterie a polimeri di Litio,
che hanno un ottimo rapporto energia-peso, ed essendo il controllo del peso
sempre un problema in velivoli così piccoli, queste batterie sono le più adatte
perché permettono voli anche lunghi (10-20 minuti), senza dare sovracca-
richi. Sono inoltre batterie senza effetto memoria, quindi possono essere
ricaricate anche da mezze scariche, senza che questo le danneggi, e anzi è
necessario non permettere che la tensione scenda troppo, perché questo po-
trebbe danneggiarle. Le batterie a polimeri di Litio sono però da trattare
con cautela, perché rischiano di incendiarsi durante la ricarica, tanto che

                                       4
Figura 1.2: L’AscTec Hummingbird

insieme all’Hummingbird viene fornita una custodia non infiammabile per
proteggerle durante la carica.
    L’Hummingbird è dotato di due processori, uno di basso e uno di alto
livello, i quali ricevono informazioni dai sensori, secondo la struttura logica
indicata in figura 1.3. Il processore di basso livello riceve dati dal giroscopio a
tre assi, dall’accelerometro a tre assi, dal sensore di pressione, dalla bussola,
dal radiocomando e dai controllori dei motori. L’accelerometro permette
di misurare l’accelerazione nelle tre dimensioni dello spazio e quindi di avere
l’idea dello spostamento del drone nel tempo ed è essenziale nel controllo della
quota. Il giroscopio misura la velocità angolare del quadrotor, ed è quindi
fondamentale nel controllo dell’assetto, mentre la bussola lega il drone al
sistema di riferimento della terra permettendogli di orientarsi. Il sensore di
pressione riconosce la differenza di pressione tra il punto in cui vola il drone e
un punto di riferimento, ed è quindi in grado di stimare la quota del velivolo.
Infine il radiocomando permette al pilota di comandare il quadrotor per
spostarlo nello spazio. Il processore di basso livello, una volta ricevuti i dati,
li combina opportunamente e manda ai controllori dei motori i valori delle
velocità desiderate per ogni rotore. Il controllo delle velocità dei rotori non

                                        5
deve quindi essere fatto dall’utente che vuole implementare il suo algoritmo,
perché è già presente ed ottimizzato per i motori in uso sul drone [2].
    Al momento della consegna è quindi subito possibile far volare il quadro-
tor, ma quello che rende questo modello veramente interessante è la possibi-
lità, per l’utente, di implementare i propri programmi su un altro processore,
questa volta detto di alto livello. Il processore di alto livello riceve anche i
dati da un GPS e comunica con il processore di basso livello, il quale a sua
volta richiede ai controllori dei rotori di ottenere velocità tali da soddisfare
le richieste del programma che è stato caricato nel processore di alto livello.
    Come si vede nella figura 1.3 è anche possibile una comunicazione dei due
processori con il computer, tramite un cavo o due moduli XBee, molto usati
per le comunicazioni wireless.

              Figura 1.3: Schema logico dell’AscTec Autopilot

   Il processore di alto livello deve essere programmato in C. È possibile
creare il proprio codice usando le strutture dichiarate dal costruttore, o più
semplicemente ampliare alcuni dei programmi che vengono proposti a titolo

                                       6
di esempio. Tutte le strutture e gli esempi possono essere scaricati, insieme
ad Eclipse, dal sito della AscTec. Una volta creato il codice lo si trasferisce
sul drone usando un cavo USB.
    Grazie alla possibilità, su Matlab/Simulink, di tradurre un progetto in
codice C, è possibile creare velocemente programmi articolati dopo averli
ideati su Simulink. La stessa casa produttrice fornisce un primo scheletro
di schema a blocchi, che è possibile completare per realizzare, ad esempio, il
controllo dell’assetto.

1.3      Contributo e struttura della tesi
Il controllo dei quadrotor può essere progettato attraverso diverse tecniche, a
seconda delle esigenze. Il modello che descrive la dinamica di questi velivoli
è non lineare e può diventare molto complesso, per esempio se si prendono in
considerazione effetti come quello del terreno, che diventa rilevante per bassa
quota, o quello giroscopico, rilevante per velocità elevate.
    In letteratura vengono spesso usate tecniche di controllo non lineare come
nel caso di [3] che utilizza controllori di tipo Backstepping, che si basano sulla
scomposizione del sistema in sottosistemi che vengono stabilizzati con una
legge basata sul controllo del sottosistema precedente, e il controllo Sliding
mode che cerca di spingere il sistema su una superficie prefissata forzandolo
con un segnale discontinuo.
    Altri utilizzano ancora altre tecniche, come la MRAC [4] (Model Re-
ference Adaptive Control), utilizzato quando si hanno molte incertezze sui
parametri del sistema. L’idea fondamentale è costruire due loop di controllo,
uno è il classico loop che comprende il regolatore e il processo, l’altro com-
prende un modello che rappresenta quello che vorremmo ottenere e in base
al quale, vedendo la differenza tra l’uscita del modello e l’uscita del sistema
ideale, si tarano i parametri del regolatore.
    Nel caso di questa tesi, l’obiettivo è stabilizzare il quadrotor e farlo stazio-
nare in un punto dello spazio nonostante la presenza di eventuali disturbi, ad
esempio dati da errori di attuazione. Le tecniche non lineari citate prima so-
no quindi non necessarie perché come verrà dimostrato nei capitoli successivi,
considerando il sistema nell’intorno di un punto di equilibrio, esso è lineare.
Inoltre non si devono ottenere particolari traiettorie e non ci sono eccessive
incertezze nella determinazione dei parametri del drone. È quindi sufficiente

                                         7
utilizzare dei controllori PID, come spesso è stato già fatto in letteratura [7]
[6].
     Nel capitolo 2 viene descritta la fisica del quadrotor e viene mostrato il mo-
dello non lineare del sistema, per poi considerarlo nell’intorno di uno specifico
punto. Sono inoltre ricavati i parametri caratteristici dell’Hummingbird.
     Nel capitolo 3, dopo una breve introduzione sui controllori PID e sulle
tecniche del luogo delle radici, vengono tarati i controllori per l’assetto e la
quota in modo da non dare inutili oscillazioni e andare a regime nei tempi
permessi dai motori.
     Nel capitolo 4 sono infine mostrati i risultati delle simulazioni ottenute
con Matlab/Simulink.

                                        8
Capitolo 2

Descrizione del modello
matematico

2.1      Movimenti fondamentali
Il quadrotor ha sei gradi di libertà: si può muovere secondo i tre suddetti
angoli di roll, indicato con Φ, pitch, indicato con Θ e yaw, indicato con Ψ, e
modificare così il suo assetto, ma può anche spostarsi nelle tre direzioni dello
spazio X, Y e Z. Tutti questi movimenti sono ottenuti variando le velocità
Ω dei quattro rotori. I motori anteriore e posteriore fanno girare le pale in
senso orario, mentre quelli di destra e sinistra, in senso antiorario.

2.1.1     Roll, Pitch e Yaw
Il rollio è il movimento che può far oscillare il quadrotor da destra a sinistra
e viceversa. E’ ottenuto lasciando invariata la velocità dei motori anteriore
e posteriore, e aumentando (diminuendo) di una certa quantità la velocità
del motore di destra, e diminuendo (aumentando) la velocità del motore di
sinistra in modo che la spinta verso l’alto non cambi. La relazione tra la
spinta e la velocità dei rotori ha un andamento quadratico, quindi per piccoli
angoli desiderati, le variazioni di velocità dei rotori saranno circa uguali.
    Il beccheggio è molto simile al rollio, infatti se quest’ultimo fa ondeggiare
il quadrotor da destra a sinistra, il beccheggio lo fa oscillare tra fronte e retro.
Come è facile intuire, per ottenere questo movimento l’idea è la stessa del
rollio, ma si usano i motori anteriore e posteriore. Quindi si cambiano le

                                         9
velocità dei rotori anteriore e posteriore di una quantità tale da mantenere
inalterata la spinta. Per angoli piccoli le due variazioni sono uguali.

                       Figura 2.1: Rollio e Beccheggio

    L’imbardata è probabilmente il movimento più complesso dei tre. L’idea
fondamentale è cambiare il momento rispetto all’asse z, immaginato uscente
dal piano dei rotori, e mantenere costante la spinta verso l’alto. Per ottenere
questo, si aumenta la velocità dei rotori di due motori opposti, e si diminuisce
la velocità dei due restanti rotori. In questo modo si avranno, per esempio,
due rotori che girano velocemente in senso orario, e due che girano più lenta-
mente in senso antiorario. Nel complesso ci sarà dunque un momento che fa
girare il drone intorno all’asse z. Se le velocità sono opportunamente scelte,
non ci sarà un cambiamento della spinta verso l’alto. Come nei casi prece-
denti, per piccole variazioni desiderate dell’angolo di imbardata, le variazioni
di velocità dei rotori sono uguali. La figura 2.2 riassume quanto detto.

                            Figura 2.2: Imbardata

2.1.2    Spinta
L’ultimo movimento fondamentale che può essere controllato è la spinta verso
l’alto. Come già accennato, la spinta è legata al quadrato della velocità

                                      10
angolare dei rotori da una costante che dipende dall’aria e da come sono fatti
i rotori. Per aumentare la spinta verso l’alto, si aumentano le velocità di tutti
i rotori di una stessa quantità, in modo da non creare differenze che possano
modificare l’assetto. La figura 2.3 mostra il concetto.

                              Figura 2.3: Spinta

2.2     Il modello non lineare
Il modello matematico di quadrotor si può trovare con diversi formalismi,
quali quello di Newton-Eulero e quello di Lagrange. È un modello noto in
letteratura ed è stato spiegato approfonditamente in diversi lavori, ad esempio
in [6] e [7]. Si definiscono due sistemi di riferimento, uno a terra e uno con
l’origine nel centro di massa del drone e gli assi corrispondenti con gli assi
principali di inerzia.
    Si avranno quindi VB e ωB rispettivamente vettori velocità lineare e an-
golare nel sistema di riferimento B del drone. Γ rappresenta invece il vettore
di posizione lineare e ΦE il vettore con gli angoli di roll pitch e yaw rispetto
al sistema di riferimento terra.
                                               T
                               VB = u v w                                  (2.1)
                                         T
                               ωB = p q r                                  (2.2)
                                         T
                               ΓE = x y z                                  (2.3)
                                          T
                               ΘE = φ θ ψ                                  (2.4)
I due sistemi di riferimento sono legati da una matrice di rotazione R che
mette in relazione Γ̇E e VB , e da una matrice T che mette in relazione Φ̇E e
ωB .

                                       11
Γ̇E = R · VB                              (2.5)
                                 Φ̇E = T · ωB                              (2.6)
   dove
                                                                            
         cosφcosψ sinφsinθcosψ − cosφsinψ cosφsinθcosψ + sinφsinψ
  R = sinψcosφ cosφcosψ + sinφsinθsinψ sinθcosφsinψ − sinφcosψ 
           −senθ               cosθsinφ                       cosθcosφ
                                                                           (2.7)
e                                                         
                               1 sinφtangθ cosφtangθ
                       T = 0         cosφ         −sinφ                  (2.8)
                                       sinφ           cosφ
                               0       sinθ           cosθ
    L’effetto giroscopico consiste nella tendenza di un qualsiasi sistema rotan-
te a mantenere il suo asse di rotazione. Risulta quindi più difficile cambiare
l’assetto, ma siccome l’effetto è tanto più forte quanto più la velocità di
rotazione è grande, e in questo caso non ci sono grandi velocità, l’effetto
è trascurabile. Si può dimostrare che trascurandolo, il modello può essere
quindi scritto con il seguente sistema di equazioni nel sistema di riferimento
del drone.
                     
                     
                       u̇ = (vr − wq) + gsinθ
                     
                     
                       v̇ = (wp − ur) − gcosθsinφ
                                                           U1
                     
                     
                        ẇ = (uq − vp) − gcosθsinφ +
                     
                     
                     
                     
                                                          m
                              IY Y − IZZ          U2
                     
                        ṗ =                qr +                           (2.9)
                                 IXX            IXX
                              IZZ − IXX           U3
                     
                     
                     
                     
                       q̇ =                pr +
                     
                     
                                 IY Y           IY Y
                              IXX − IY Y          U4
                     
                     
                      ṙ =
                                           pq +
                                  IZZ            IZZ
    dove               
                       
                          U1 = b(Ω21 + Ω22 + Ω23 + Ω24 )
                           U2 = lb(−Ω22 + Ω24 )
                       
                                                                          (2.10)
                       
                          U3 = lb(−Ω21 + Ω23 )
                           U4 = d(−Ω21 + Ω22 − Ω23 + Ω24 )
                       

   Nell’equazione (2.9) sono presenti i termini IXX IY Y IZZ . Questi sono gli
elementi diagonali della matrice di inerzia che, visto un sistema tridimensio-
nale, è una 3x3. Siccome per ipotesi l’origine del sistema di riferimento del

                                      12
drone è nel suo centro di massa e gli assi corrispondono agli assi principali di
inerzia, la matrice di inerzia è diagonale, quindi è espressa nella forma
                                               
                                 IXX 0       0
                                0 IY Y      0                          (2.11)
                                  0    0 IZZ
    Nell’ equazione (2.10) sono stati introdotti i coefficienti b e d. Il primo è
un coefficiente che lega la spinta alla velocità angolare secondo l’equazione
seguente.
                                          T
                                    b= 2                                    (2.12)
                                         Ω
Dove T è la spinta verso l’alto data da un motore, e Ω la velocità di un
generico rotore. Viene misurato in [N s2 ] ed è considerato costante e uguale
per tutti i motori. La spinta totale verso l’alto è descritta quindi da U1
nell’equazione (2.10).
    Il coefficiente d viene detto coefficiente di drag. Quando le pale di un
rotore girano in un verso, una forza dovuta alla resistenza del vento nascerà
nel verso opposto. Ci sarà quindi un momento dovuto a questa forza. Nella
dinamica del quadrotor, il coefficiente d incide sull’angolo di yaw, perché que-
sto è l’angolo legato alla variazione dei momenti. Anche questo coefficiente
è considerato costante, si misura in [N ms2 ] ed è definito come

                                           Q
                                      d=                                      (2.13)
                                           Ω2
dove Q è il momento della forza di trascinamento. U4 , nell’equazione (2.10)
tiene conto del contributo del momento della forza di trascinamento di tutti
i rotori.
    U2 e U4 sono invece legati rispettivamente agli angoli di roll e pitch, infatti
U2 è legato alla differenza delle spinte date dai motori due e quattro, cioè ai
prodotti b · Ω22 e b · Ω24 , moltiplicata per il braccio l, mentre U3 è simile a U2 ,
ma interessa i motori di pedice dispari.
    Se ora volessimo scrivere il modello con riferimento al sistema terra E,
ricordando le equazioni(2.5) e (2.6), otteniamo il seguente sistema di equa-
zioni.

                                         13
                                 U1
                  Ẍ = (sinψsinφ + cosψsinθcosφ)
                                                   m
                 
                 
                 
                 
                                                    U1
                   Ÿ =  (−cosψsinφ +  sinψsinθcosφ)
                 
                 
                                                     m
                 
                 
                 
                                         U1                            (2.14)
                   Z̈ = −g + (cosθcosφ)
                 
                                        m
                   φ̇ = p + sinφtangθq + cosφtangθr
                 
                 
                 
                 
                   θ̇ = cosφq + cosθsinφr
                 
                 
                 
                 
                 
                   ψ̇ = −sinφq + cosθcosφr
     Nonostante il modello sia già stato approssimato, perché si è trascurato
l’effetto giroscopico, esso risulta chiaramente non lineare.

2.3     Il modello linearizzato
Lo scopo finale è permettere al drone di stazionare parallelamente al suolo.
Si è quindi interessati ad un particolare punto di lavoro, caratterizzato da
tutti gli angoli di assetto pari a 0.
                                   
                                    φ0 = 0
                                      θ0 = 0                           (2.15)
                                      ψ0 = 0
                                   

    Nell’intorno del punto di lavoro considerato, ricordando lo sviluppo in
serie di Taylor del seno e del coseno, i seni contenuti nell’equazione 2.14
diventano approssimabili a 0, come anche le tangenti, mentre i coseni sono
approssimabili a 1.

                       x3    x5          (−1)n x2n+1
          sen(x) = x −    +      + ... +             + o(x2n+1 )
                        6   120           (2n + 1)!
                       x2 x4            (−1)n x2n
          cos(x) = 1 −    +     − ... +           + o(x2n )
                       2    24            (2n)!

   Il modello può dunque essere riscritto come segue.

                                     14

                                         U1
                             Z̈ = −g +
                         
                         
                                         m
                         
                         
                         
                            φ̇ = p
                         
                         
                         
                         
                         
                         
                         
                         
                           θ̇ = q
                            ψ̇ = r
                         
                         
                                 IY Y − IZZ         U2                   (2.16)
                           ṗ =              qr +
                                      IXX          IXX
                         
                         
                         
                         
                                I ZZ  −  IXX       U3
                            q̇ =              pr +
                         
                         
                                      IY Y         IY Y
                         
                         
                         
                                 IXX − IY Y         U4
                         
                         
                          ṙ =               pq +
                         
                         
                                      IZZ          IZZ
    Le velocità angolari p, q e r devono mantenersi il più piccole possibile
intorno al punto di lavoro, quindi i prodotti qr, pr e pq sono a maggior
ragione piccoli e prossimi allo zero.
    Il sistema è dunque riscrivibile come
                                               U1
                               
                               
                                  Z̈ = −g +
                               
                                               m
                                          U2
                               
                               
                                φ̈ =
                               
                               
                                         IXX                             (2.17)
                                         U3
                               
                                  θ̈ =
                               
                               
                                       IY Y
                                ψ̈ = U4
                               
                               
                               
                                         IZZ
    Si è ottenuto un sistema linearizzato e controllabile attraverso U1,2,3,4 .

2.4     Parametri caratteristici
Nel modello ottenuto compaiono gli elementi diagonali della matrice di iner-
zia del quadrotor e, nella definizione di U1,2,3,4 sono stati utilizzati b, d ed
l. Ognuno di questi parametri caratterizza un determinato quadrotor, ed
essendo questa tesi basata sull’AscTec Hummingbird, è necessario dare una
stima di questi valori.

2.4.1     Stima della matrice di inerzia
Si sono immaginati gli assi di inerzia corrispondenti con gli assi principali del
drone. Quindi IXX corrisponde al momento di inerzia quando il quadrotor

                                         15
ruota rispetto all’asse x, IY Y è il momento di inerzia rispetto all’asse y e
infine IZZ è il momento rispetto all’asse z.

              Figura 2.4: Schematizzazione di un quadrirotore

    Nella figura 2.4 si è indicato un asse che va dal rotore anteriore al poste-
riore, e si è schematizzata la forma del drone con una croce greca. Le aste che
collegano il centro C ai motori sono tutte uguali e di lunghezza L, mentre l
indica la larghezza di un’asta. Lo spessore delle aste è molto piccolo e quindi
trascurabile.
    Considerando una rotazione intorno all’asse, è possibile calcolare diversi
contributi dati alla matrice di inerzia e poi sommarli. Ci sono tre contributi:

  1. Il momento di inerzia dell’asta longitudinale intorno all’asse

  2. Il momento di inerzia dell’asta trasversale intorno all’asse

  3. Il momento di inerzia di un motore intorno all’asse.

    Per quanto riguarda l’asta longitudinale, il suo momento di inerzia è quello
di un rettangolo di lunghezza L e larghezza l intorno ad un asse che passa per
il suo centro. Ipotizzando di avere una distribuzione omogenea della massa,
definendo ρ come la densità superficiale e ma come la massa dell’asta, vale
ρ = mSa = mlLa .

                                      16
Per il calcolo del momento di inerzia vale
                                     N
                                     X
                                           mk rk2                       (2.18)
                                     k=1

   Considerando un corpo continuo, si può passare dalla sommatoria all’in-
tegrale. La massa in un generico punto può essere riscritta in funzione della
posizione in base alla relazione precedente ma = ρLdr.
                     l
                                         r3 2l      l3
                 Z
                     2                                 1
                         ρLr2 dr = [ρL     ]− l = ρL = ma l2            (2.19)
                  − 2l                   3 2        12 12

    Per quanto riguarda l’asta longitudinale, il ragionamento è molto simile.
Si considera sempre un rettangolo, ma non si deve contare la parte in comune
tra l’asta trasversale e la longitudinale. E’ quindi sufficiente considerare il
rettangolo compreso tra L− 2l = L0 ed L e moltiplicare la sua inerzia per due,
per considerare la parte destra e la sinistra. L’integrale risultante è molto
simile al precedente.
                           Z L
                                        2          L3
                         2     ρlr2 dr = ma (L2 − 0 )                   (2.20)
                            L0          3          L
    Infine il momento di inerzia di un motore è molto semplice da calcolare
se lo si approssima come un punto distante L dall’asse di rotazione. Per un
solo motore di massa mm l’inerzia è semplicemente il prodotto della massa
per il quadrato della distanza dall’asse. In questo caso due motori giacciono
sull’asse, quindi il loro momento di inerzia è nullo, mentre due motori sono
a distanza L. L’inerzia dei motori data al sistema è dunque

                                     2mm L2                             (2.21)

   Sommando tutti i contributi si ottiene finalmente IXX . Il suo valore è
uguale a IY Y per simmetria.
                                   2                1
              IXX = IY Y = 2mm L2 + ma (L2 − L20 ) + ma l2              (2.22)
                                   3                12
    Per quanto riguarda il calcolo di IZZ , il procedimento è simile, con la
complicazione che ora il momento è fatto rispetto ad un asse che attraversa
l’asta in un punto, quindi nell’integrale non si possono più considerare l o

                                           17
L costanti. Per calcolare il momento di inerzia di un’asta rispetto all’asse si
definisce r1 la posizione sulla larghezza dell’asta, che varia quindi da − 2l a
l
2
  , e r2 la posizione sulla lunghezza dell’asta, che varia quindi tra L e L. La
massa in un punto, considerando costante la densità superficiale ρ, dipende
quindi dalle due distanze dall’asse z e vale

                                        mk = ρdr1k dr2k                        (2.23)

La generica distanza del punto dall’asse è banalmente ottenuta con il teorema
di Pitagora. Passando all’integrale se ne ottiene uno doppio ma piuttosto
semplice.
                 Z LZ l
                         2                         ma l2
                            ρ(r12 + r22 )dr1 dr2 =   ( + 2L2 )          (2.24)
                   −L − 2 l                        3  2
   Per quanto riguarda l’altra asta, il suo momento di inerzia è simile, ma
non si devono considerare le parti in comune tra le aste, quindi l’integrale da
considerare ha estremi diversi e deve essere considerato due volte per tener
conto della parte destra e della sinistra dell’asta.
                             l
                     L
                                                          2 ma l3
                 Z       Z
                             2
             2                   ρ(r12 + r22 )dr1 dr2 =       ( + L3 − L30 )   (2.25)
                 −L0     − 2l                             3 L 4

    Raggruppando i contributi delle due aste e dei quattro motori si ottiene
finalmente IZZ .
                                      2ma l3              ma l2
            IZZ = 4mm L2 +               ( + L3 − L30 ) +   ( + 2L2 )          (2.26)
                                       3L 4               3 2
   I coefficienti b e d sono invece più difficili da trovare. Esistono delle
formule che li calcolano con buona precisione e sono usate per esempio in
lavori come [6]. Per calcolarli correttamente sono però necessarie misure sul
drone che non è stato possibile compiere durante questo lavoro di tesi. Ci si
limita quindi a stimarli approssimativamente.

2.4.2    Stima dei coefficienti di thrust e drag
Supponendo b costante e pari al rapporto tra la spinta e il quadrato della
velocità angolare di un rotore, è possibile stimare b se si conoscono queste
grandezze in una condizione. Siccome la spinta massima producibile dai mo-
tori, secondo i data sheet è 20N, e leggendo il codice C del SDK (Software

                                                18
Development Kit) del quadrotor viene dichiarata una velocità di rotazio-
ne massima, per i motori Hacker dell’Hummingbird, di 8600 rpm, si può
calcolare b.

                           5 · 602
                   b=                N s2 = 6.164 · 10−6 N s2             (2.27)
                        (8600 · 2π)2
     Dove si è supposta una spinta di 5N per ogni motore, immaginando che
tutti e quattro contribuiscano equamente alla spinta.
     Il calcolo del coefficiente di drag è molto più difficile. Come per il coef-
ficiente di thrust b, anche per d c’è una formula ricavata dalla teoria del-
l’elemento di pala, ma non è stato possibile misurare i valori richiesti dalla
formula, e nei data sheet non è presente nessun parametro indicativo. Non
resta quindi che prendere un valore di d calcolato per un altro quadrirotore si-
mile all’Hummingbird, supponendo che la robustezza del controllo compensi
i parametri poco precisi usati nella modellazione.

                              d = 7.5 · 10−7 N ms2                        (2.28)

                                       19
Capitolo 3

Il problema del controllo

3.1      I regolatori PID
I regolatori PID sono tra i regolatori lineari più usati. Sono semplici da co-
struire, sono in grado di controllare molti tipi diversi di processi ed è possibile
tararli automaticamente con delle tecniche che spesso danno buoni risultati
anche in presenza di incertezze sul modello del sistema che devono controllare.
    I regolatori PID agiscono sulla differenza tra ingresso e uscita di un si-
stema, quindi sull’errore. Il loro nome deriva dalle tre azioni di controllo
che possono svolgere: proporzionale (P), integrale (I) e derivativa (D). Non
è necessario che vengano usate tutte e tre in un controllo; ognuna ha uno
scopo diverso.
    L’azione proporzionale modifica semplicemente il guadagno del sistema.
Può servire a ridurre l’errore a regime e a rispettare specifiche diverse in un
sistema già stabile ma per esempio troppo lento.
    L’azione integrale è un polo nell’origine. Rende il sistema più lento e in
certi casi rischia di portarlo all’instabilità, ma ha il pregio di rendere nullo
l’errore a regime per ingressi costanti in sistemi senza poli nell’origine, e
annullare l’errore a regime dovuto a disturbi costanti. L’azione integrale può
anche causare un fenomeno detto "wind-up". Quando l’errore mantiene il suo
segno per un po’ di tempo, l’uscita dell’integratore aumenta sempre più finché
eventualmente non arriva a saturare l’attuatore posto dopo il controllore.
Anche se l’errore cambia segno, l’uscita del controllore non varia, ma continua
a mantenere il valore della saturazione finché l’integrale non assume valori
inferiori ad esso. Il risultato è che bisogna aspettare la scarica dell’attuatore

                                        20
prima di poter avere un’uscita diversa dal valore di saturazione superiore o
inferiore. Si parla infatti di "carica integrale" o, appunto, "integral wind-up".
    L’azione derivativa è uno zero nell’origine. Se l’errore tende ad aumenta-
re, l’azione derivativa aumenta il valore della variabile di controllo del sistema
in modo da aumentare l’uscita, se il guadagno del sistema è positivo, e quindi
diminuire l’errore. Intuitivamente l’azione derivativa può essere immaginata
come un’azione predittrice che può migliorare le prestazioni del controllore.
Allo stesso tempo, però, questa azione rende il sistema molto sensibile, e
può dare problemi in sistemi meccanici che non possono sopportare varia-
zioni troppo repentine negli ingressi. In particolare, se l’ingresso è costante,
l’azione derivativa provoca un andamento impulsivo della variabile di con-
trollo, che può portare alla saturazione degli attuatori. Si ovvia facilmente a
questo problema portando in ingresso al blocco derivativo non più l’errore,
ma l’uscita, che nella maggior parte dei casi ha evoluzioni molto più morbide
dell’ingresso.
    La struttura di un controllore PID ideale, detti u l’ingresso ed e l’errore,
è quindi la seguente:
                                           Z t
                                                          de(t)
                     u(t) = KP e(t) + KI       e(τ ) + KD                     (3.1)
                                            0              dt
    Come è facile notare, la struttura dell’equazione 3.10 non è causale, e
questo è dovuto all’azione derivativa. Per risolvere il problema è sufficiente
associare un polo anche all’azione derivativa. Passando al dominio di Laplace
risulta:
                                      KI        KD s
                       U (s) = KP +       +                              (3.2)
                                        s    1 + KKPDN s
    Al variare di N il polo associato all’azione derivativa diventa sempre più
lontano e quindi irrilevante ai fini della dinamica del sistema.

3.2      Il luogo delle radici
Il luogo delle radici è il luogo dei punti del piano complesso che sono radici
di un’equazione al variare di un parametro. Nel caso specifico dei control-
li automatici, le radici che si vogliono conoscere rappresentano i poli della
funzione di trasferimento tra ingresso e uscita, a ciclo chiuso, di un sistema
retroazionato. Con il luogo delle radici si può visualizzare con grande facilità
la posizione dei poli a ciclo chiuso al variare del guadagno del controllore e

                                        21
in dipendenza dei poli e degli zeri del sistema. E’ quindi possibile scegliere la
struttura del controllore in modo da ottenere poli a ciclo chiuso che rispettino
le specifiche.
    Di seguito si descriveranno brevemente le regole basilari per tracciare un
luogo delle radici, perché lo si è usato per tarare i controllori del sistema
considerato. Per spiegazioni più approfondite si rimanda ad un testo di
controlli automatici [8].
    Considerando un classico sistema in retroazione unitaria, con funzione
                                                        NL (s)
di trasferimento di catena diretta pari ad L(s) = K D    L (s)
                                                               si può scrivere la
funzione di trasferimento a ciclo chiuso come
                                          KNL
                             W (s) =                                (3.3)
                                       DL + KNL
    Bisogna annullare il denominatore per sapere dove giaceranno i poli a
ciclo chiuso. Per tracciare il luogo sono sufficienti poche regole:
  1. Detto n il numero dei poli di L(s), il luogo delle radici ha un numero di
     rami pari a 2n, metà di questi corrisponde a valori positivi di K (luogo
     diretto), l’altra metà a valori negativi (luogo inverso).
  2. Il luogo è simmetrico rispetto all’asse reale.
  3. I rami del luogo partono dai poli di L(s).
  4. Detto m il numero degli zeri di L(s), m rami del luogo, sia diretto che
     inverso, tendono verso gli zeri, gli altri rami quando presenti, tendono
     verso l’infinito.
  5. I rami che tendono verso l’infinito si intersecano sull’asse reale con
     angoli e in una posizione che dipendono dal numero di poli e zeri e
     dalla loro differenza.
  6. Fanno parte del luogo tutti i punti dell’asse reale che lasciano alla loro
     destra un numero dispari di poli e zeri.
  7. Quando i rami del luogo diretto e inverso si ricongiungono sull’asse
     reale, formano un punto doppio. I punti doppi, se presenti, possono
     essere calcolati con l’equazione:
                             m               n
                             X       1      X 1
                                          −             =0                 (3.4)
                             i=1
                                   s − zi   i=1
                                                s − p i

                                        22
dove si indicano con z gli zeri e con p i poli.

    Quelle presentate non sono tutte le regole di tracciamento del luogo, ma
solo quelle essenziali per avere una buona idea di come esso sarà.

3.3     Il controllo della quota
Dall’equazione (2.17) risulta il modello della spinta verso l’alto.
                                          U1
                                 Z̈ = −g +                               (3.5)
                                           m
Questa equazione dice semplicemente che l’accelerazione verso l’alto è la dif-
ferenza delle accelerazioni dovute alla spinta e alla forza peso, e questo è
sicuramente vero se non consideriamo effetti di resistenza dell’aria che sono
trascurabili per accelerazioni piccole.

          Figura 3.1: Modello Simulink per il controllo della quota

    La figura 3.1 mostra il modello Simulink per il controllo della quota. So-
no presenti un ingresso, che rappresenta la quota desiderata, un controllore
PID costituito dalla somma delle tre azioni di controllo (derivativa, integra-
le e proporzionale), due saturazioni, un blocco che contiene la funzione di
trasferimento quota-spinta del sistema, e uno scope per leggere i risultati.
L’azione di controllo proporzionale è rappresentata da una funzione di tra-
sferimento, perché comprende uno zero nell’origine e un polo lontano, che
rende il controllore causale.
    In ingresso alla dinamica c’è la spinta, e in uscita la quota, quindi la
funzione di trasferimento è:

                                       23
Z(s)      1
                                       =                                 (3.6)
                                 U (s)    ms2
     La saturazione sui valori massimi e minimi della spinta tiene conto del
fatto che non ci potrà mai essere una spinta negativa, ma al massimo essa
sarà nulla. Il valore massimo è dato dai data sheet dell’Hummingbird, ed è
pari a 20N [9]. Dagli stessi data sheet è data la velocità massima di risa-
lita del quadrotor in questione, che corrisponde a 5m/s e tiene conto della
forza d’attrito che contrasta la spinta e non permette al drone di accelerare
all’infinito, ma gli fa mantenere una velocità costante.
     Quando il quadrotor si alza di quota spingendo i motori al massimo, la
forza d’attrito viscoso, proporzionale alla velocità per mezzo di una costante
k, contrasta la spinta. Risulta quindi

                          Umax − m · g = Fa = k · v                       (3.7)
    Quindi k = 3. La massima velocità di discesa del drone sarà invece
più piccola, perché i motori non possono spingere verso il basso e forzare
quindi la caduta. In caduta libera, considerando che agisce solo la forza
peso, contrastata dalla forza di attrito, e utilizzando il valore di k appena
stimato vale:
                                m·g
                            v=         = 1.67ms−1                         (3.8)
                                  k
    La saturazione nella velocità ha quindi un valore di 5ms−1 per velocità
verso l’alto, e di 1.67ms−1 per velocità verso il basso.
    Nel modello Simulink sono inoltre presenti tre blocchi, compensazione,
peso e disturbo, e sia peso che compensazione contengono il prodotto mg.
Guardando infatti l’equazione (3.14) si nota subito che il modello non è linea-
re, perché −g non è moltiplicata per l’ingresso U1 . L’accelerazione di gravità
può però essere considerata un disturbo costante che è quindi possibile com-
pensare tanto più perfettamente quanto più si è certi del valore della massa
del drone.
    Per quanto riguarda il blocco disturbo, si è considerato un disturbo di
attuazione. Non è stato possibile conoscere la precisione nell’attuazione della
velocità da parte dei motori, per cui si è considerato un errore del 5%. Si
vuole avere una stima del disturbo, e per questo si considera il caso peggiore
cioè quando gli errori di attuazione dei vari motori si sommano e i rotori
ruotano al massimo della velocità. Indicando il disturbo con d, vale:

                                      24
U1 = b(Ω21 + Ω22 + Ω23 + Ω24 ) = 4b(Ω + d)2              (3.9)
    Il termine 4bΩ2 è la spinta desiderata, il resto è un disturbo. Svolgendo il
calcolo e ricordando i valori di b e Ωmax , in pochi passaggi si calcola il valore
massimo del disturbo.

                                 Dmax = 2.05N                              (3.10)
    Costruito il modello non rimane quindi che tarare il controllore. Si è
deciso di utilizzare un PD ideale, e la sua taratura si ottiene con il luogo
delle radici.
    Il sistema ha due poli nell’origine e nessuno zero, quindi il sistema a ciclo
chiuso è al limite di stabilità. Per ovviare a questo, è sufficiente mettere uno
zero a sinistra dell’asse immaginario. In questo modo ogni punto dell’asse a
sinistra dello zero, secondo le regole del luogo delle radici, fa parte del luogo.
Si formano due rami che tendono allo zero per un guadagno infinito, quindi
a seconda del guadagno i poli a ciclo chiuso sono complessi coniugati.
    Una sovraelongazione non avrebbe nessun effetto benefico, si chiederebbe
infatti ai rotori di aumentare e diminuire la velocità in maniera importante
in poco tempo e porterebbe ad inutili sollecitazioni meccaniche degli stessi.
Si regola quindi il guadagno in modo che i poli a ciclo chiuso siano sull’asse
reale e diano sovraelongazione nulla.
    Teoricamente è vero che uno zero posto a sinistra dell’asse immaginario
stabilizza il sistema, quindi si potrebbe pensare di metterlo molto a sinistra
per avere un tempo di assestamento molto piccolo. C’è da considerare però
la saturazione, che introduce delle non linearità e rende il comportamento
del sistema meno prevedibile.
    Scegliendo per esempio di mettere uno zero in s = −100, e regolando
opportunamente il guadagno in modo da avere le radici sull’asse reale, risulta
che la funzione di trasferimento da realizzare con il contollore è, ad esempio,
la seguente.

                              C(s) = 591(s + 100)                          (3.11)
   Il controllore PD realizza una funzione di trasferimento del tipo:

                               C(s) = Kp + Kd s                            (3.12)
   Quindi è immediato trovare i pesi da assegnare alle diverse azioni.

                                       25

                               Kp = 59100
                                Kd = 591                               (3.13)
                                Ki = 0
                              

      Figura 3.2: Confronto tra una risposta con e senza saturazione

    Come si può vedere nella figura 3.2 a sinistra, la saturazione causa un
comportamento oscillatorio smorzato nella risposta del sistema che sarebbe
altrimenti molto veloce e priva di sovraelongazione. Per risolvere il problema
è sufficiente mettere lo zero in corrispondenza di α meno negativi.
    Bisogna inoltre considerare che il controllore deve essere causale, e deve
quindi contenere almeno un polo e uno zero. Per ovviare a questo, si può
mettere un polo lontano in modo che non disturbi la dinamica principale. Il
polo deve essere quindi posto almeno ad una decade di distanza dallo zero.
    Come detto nel paragrafo sui regolatori PID, la funzione di trasferimento
del controllore assumerà la forma

                               KD s        KP + s( N1 + 1)KD
               C(s) = KP +               =                             (3.14)
                             1 + KKPDN s      1 + KKPDN s
   Per avere un polo lontano deve valere
                             1          10
                               (+ 1) >                                 (3.15)
                             N          N
   Quindi N > 11. Per esempio si può scegliere N = 15.

                                     26
Dopo diversi tentativi si sono impostati i seguenti guadagni:
                               
                               
                                 Kp = 27.5
                                  Kd = 10.3
                               
                                                                       (3.16)
                               
                                 Ki = 0
                                  N = 15
                               

    Siccome non stiamo usando un integratore nel controllore, ci sarà un
errore a regime non nullo. Nel peggiore dei casi, considerando l’errore di
attuazione, si ottiene un disturbo di 2.05N, come precedentemente calcola-
to. L’errore, come può essere facilmente dimostrato applicando il teorema
del valore finale alla funzione di trasferimento disturbo-uscita moltiplicata
per un ingresso a gradino di ampiezza nota, viene attenuato di un fattore
corrispondente a Kp . L’errore massimo a regime è quindi pari a
                                  Dmax
                         Emax =        = 0.0745N                       (3.17)
                                   Kp

Figura 3.3: Simulazione dell’andamento della quota per un ingresso a
gradino.

    Nella figura 3.3 è mostrato l’andamento della quota previsto dalla simu-
lazione quando si richiede al drone di sollevarsi di un metro rispetto alla
posizione attuale.

                                     27
3.4     Il controllo del rollio e del beccheggio
Dall’equazione (2.17), passando al dominio di Laplace, è possibile ottenere
la funzione di trasferimento che lega il rollio ad U2 e il beccheggio ad U3 .

                               Φ(s)       1
                                      =                                 (3.18)
                               U2 (s)   IXX s2
                               Θ(s)        1
                                      =                                 (3.19)
                               U3 (s)   IY Y s2
    Per simmetria IXX = IY Y . E’ possibile trovare questi valori secondo
l’equazione (2.22) dopo aver fatto qualche misura sul drone.

                             ma = 9 · 10−3 Kg
                             mm = 28 · 10−3 Kg
                             L = 0.17m                                  (3.20)
                             l = 1.5 · 10−2 m
                             L0 = 1.625 · 10−2 m

   Sostituendo nella formula si trovano i momenti di inerzia cercati.

                       IXX = IY Y = 3.28 · 10−3 Kg/s2
                                                                        (3.21)
                       IZZ = 3.43 · 10−3 Kg/s2
    Essendo il modello uguale, le tarature dei controllori sono uguali. An-
che in questo modello è presente una saturazione, infatti anche il rollio e
il beccheggio sono strettamente legati alla massima spinta producibile dai
motori.

                             U2 = lb(−Ω22 + Ω24 )                       (3.22)
   Se la spinta massima è 20N e ogni motore partecipa equamente ad essa,
ogni motore produce 5N di spinta.

                   U2max = lb(Ω24 ) = 0.17m · 5N = 0.85N                (3.23)

   Quando un motore è spento e l’altro ruota alla massima velocità. Sarà
ovviamente presente anche una saturazione per −0.85N quando i motori
scambiano il comportamento.
   Con lo stesso ragionamento fatto per il controllo della quota si cercano dei
valori di taratura del controllore tali che la sovraelongazione dell’uscita sia

                                      28
Figura 3.4: Modello Simulink per il rollio e il beccheggio.

nulla e il tempo di assestamento sia breve. Si è scelto di dare al controllore
la funzione di trasferimento

                                   0.2912(s + 18.75)
                          C(s) =                                      (3.24)
                                      1 + 0.0033s
   La funzione di trasferimento dell’equazione (3.24) corrisponde a dei gua-
dagni per le tre azioni del controllore PID.
                               
                               
                                  Kp = 5.46
                                   Kd = 0.273
                               
                                                                      (3.25)
                               
                                  Ki = 0
                                   N = 15
                               

    Per quanto riguarda l’errore a regime, si può considerare, come nel caso
della quota, un disturbo causato da un errore di attuazione. Il massimo di
questo errore si ha quando un motore è spento e l’altro gira al massimo della
velocità. Senza ripetere calcoli già fatti, si determina un valore massimo per
il disturbo pari a

                              Dmax = 0.087N m                           (3.26)
    Anche in questo caso si è usato un controllore PD, quindi l’errore a regime
non sarà nullo, ma riscalato di un fattore Kp . Quindi al massimo, l’errore a
regime sarà

                                      29
Dmax
                          Emax =        = 0.016rad                       (3.27)
                                    Kp

         Figura 3.5: Risposta del sistema per un ingresso a gradino

    La figura 3.5 mostra l’andamento degli angoli di rollio e beccheggio per un
gradino unitario in ingresso. Si può notare che, nonostante la saturazione, la
risposta di questi angoli dell’assetto è molto più pronta rispetto alla risposta
della quota allo stesso ingresso.

3.5     Il controllo dell’imbardata
L’ultimo angolo da controllare è quello di imbardata.
    Nella figura 3.6 è mostrato il modello Simulink usato per studiare la
risposta del sistema ad un ingresso a gradino. Anche in questo modello
è presente una saturazione, trovata supponendo che ogni motore possa al
massimo dare un contributo di spinta pari a 5N quando il rotore gira a
8600rpm.
    Ricordando la definizione di U4 :

                        U4 = d(−Ω21 + Ω22 − Ω23 + Ω24 )                  (3.28)
   Chiaramente è massimo quando i rotori di pedice dispari sono fermi e
quelli di pedice pari girano alla massima velocità.

                                      30
Figura 3.6: Modello Simulink per l’imbardata.

                       U4max = 2 · d · Ω2max = 1.217N m                   (3.29)
   La funzione di trasferimento tra angolo ψ e variabile di controllo U4 conte-
nuta nel blocco "Dinamica" è semplice e uguale a quella trattata nel paragrafo
precedente a meno del valore del momento di inerzia IZZ .

                               Ψ(s)        1
                                      =                                   (3.30)
                               U4 (s)   IZZ · s2
    Tenendo conto della funzione di trasferimento e della saturazione, si può
passare alla taratura del controllore. Si è scelto un controllore PD che realizza
la funzione di trasferimento:

                                     0.323(s + 9.37)
                            C(s) =                                        (3.31)
                                       1 + 0.0067s
                               
                               
                                Kp = 3.027
                                 Kd = 0.3027
                               
                                                                          (3.32)
                                i=0
                                K
                                 N = 15
                               

   Passando alla stima dell’errore di attuazione massimo, si considera come
caso peggiore il caso in cui due rotori ruotino al massimo della velocità e
due siano fermi. In questo caso con semplici passaggi si ricava il disturbo
massimo ottenibile.

                                       31
Figura 3.7: Risposta del sistema per un ingresso a gradino.

                              Dmax = 0.125N m                           (3.33)
   Il disturbo influisce sull’errore a regime, ma viene attenuato di un fattore
pari a Kp . L’errore massimo a regime risulta quindi
                                  Dmax
                         Emax =        = 0.041N m                       (3.34)
                                   Kp

                                      32
Capitolo 4

Simulazioni

4.1     Implementazione dei parametri in un mo-
        dello non lineare
I risultati ottenuti finora tramite delle semplificazioni, sono validi anche nel-
la realtà? Non potendo sperimentare sul drone vero e proprio, si possono
validare i risultati ottenuti, tramite delle simulazioni su un modello più com-
plesso di quelli usati fino ad ora, che si basa sul lavoro di tesi di dottorato
di S. Bouabdallah [7]. Il modello è chiamato "PD Control Quadrotor - Si-
mulink" ed è scaricabile gratuitamente in formato .zip direttamente dal sito
www.mathworks.com.
    È formato da due subsystems, uno che contiene i controllori ,chiamato
"PD controller", ed un altro con il modello del sistema, detto "Quadrotor
System". Quest’ultimo è a sua volta diviso in tre subsystems: "Angles", che
calcola gli angoli dell’assetto, "Displacement", che calcola la posizione nello
spazio, e "omegasqr calculator", che calcola le velocità dei rotori.
    Anche in questo caso vengono controllate le variabili U1,2,3,4 , dalle quali
è possibile ottenere le velocità dei rotori, se nel modello le si volesse limi-
tare. L’equazione 2.10 può infatti essere invertita per calcolare le velocità
necessarie ad attuare una certa combinazione di U1,2,3,4 . Questi ultimi, una
volta calcolati, sono mandati in ingresso al subsystem "Angles", che calco-
la la derivata seconda degli angoli dell’assetto, secondo le equazioni 2.9 e
2.14. Gli angoli dell’assetto, opportunamente combinati, sono poi utilizzati
nel subsystem "Displacement".

                                       33
Il modello Simulink realizza le equazioni non linearizzate del sistema, e
tiene conto anche dell’effetto giroscopico. Con pochi cambiamenti dovuti
alle diverse convenzioni di segno nel trattare il controllo della quota, e alle
saturazioni che caratterizzano l’Hummingbird rispetto ad un generico drone,
si ottiene in Simulink un modello meglio approssimato del comportamento
del quadrotor.

Figura 4.1: Confronto tra la risposta ad una variazione a gradino dell’angolo
di rollio/beccheggio nel modello linearizzato (a sinistra) e nel modello non
lineare(a destra)

Figura 4.2: Confronto tra la risposta ad una variazione a gradino dell’angolo
di imbardata nel modello linearizzato (a sinistra) e nel modello non lineare(a
destra)

    La differenza più grande tra il modello linearizzato e quello non lineare è
nella definizione della quota. Nel modello non lineare il coefficiente di spinta
è infatti moltiplicato per il prodotto di due coseni, quindi è come se qualsiasi
valore di spinta fosse più attenuato, visto che il prodotto di due coseni è

                                      34
Figura 4.3: Confronto tra la risposta ad una variazione a gradino della quota
nel modello linearizzato (a sinistra) e nel modello non lineare(a destra)

sempre minore o al massimo uguale ad uno. Ci si può aspettare quindi che la
dinamica nel modello non lineare, quando oltre ad un cambiamento di quota è
richiesto un cambiamento di assetto, sia più lenta ma si arrivi comunque allo
stesso valore di regime del modello linearizzato. Quando invece si comanda
un cambiamento di quota con un assetto sempre parallelo al suolo, i due
modelli si comporteranno allo stesso modo.
    Per quanto riguarda l’assetto, ci si aspetta che la sua dinamica non vari
molto tra i due modelli, per qualsiasi angolo desiderato. Le differenze tra
le equazioni dell’assetto nei due modelli possono sembrare grandi qualita-
tivamente, ma i termini che cambiano tra un modello e l’altro dipendono
dall’effetto giroscopico e dalla differenza tra due momenti di inerzia. La
costante che caratterizza l’effetto giroscopico è molto piccola, dell’ordine di
10−5 , e la differenza tra due momenti di inerzia, nel caso dell’Hummingbird,
è anch’essa piccola, come si può vedere dai parametri calcolati nel capitolo
2.
    Le simulazioni confermano questo ragionamento. La dinamica del rollio
e del beccheggio per ingressi uguali, è uguale per simmetria, per questo si
riporta solo un grafico per entrambi.
    Guardando la dinamica della quota, si nota invece come nel modello non
lineare questa, come atteso, sia più lenta. Inoltre nella figura 4.3 si nota
una certa sovraelongazione nel modello non lineare. Nella simulazione è
stato comandato al quadrotor di alzarsi di un metro e variare tutti gli angoli
dell’assetto di un radiante, cioè circa sessanta gradi. Nel modello linearizzato,
l’assetto e la quota sono completamente slegati, mentre nel modello non
lineare no, e questo si riverbera nella simulazione dando i risultati della figura.

                                        35
Nel modello non lineare la sovraelongazione è in parte dovuta alle saturazioni
e in parte è dovuta alla diminuzione del guadagno, il quale porta a valori di
smorzamento minori. Più si chiede al drone di salire velocemente, più sarà
grande la sovraelongazione.
    Usando un semplice script di Matlab, si può ottenere quale è il più grande
scostamento tra le risposte dei due progetti Simulink presi in considerazione.
Nel caso del rollio e del beccheggio, il massimo scostamento vale 0.0256.
Per l’imbardata il massimo scostamento vale invece 0.0423. I valori sono
estremamente vicini.

4.2     Conclusioni e lavori futuri
L’obiettivo di questa tesi è quello di controllare l’AscTec Hummingbird in
condizioni di volo stazionarie e permettergli di rigettare eventuali disturbi.
I risultati delle simulazioni sono soddisfacenti e mostrano come il drone sia
capace di mantenere la tua posizione e attenuare disturbi immaginati come
errori di attuazione. Niente vieta comunque di pensare il disturbo come una
piccola forza agente su uno dei rotori. La forza può essere data da diverse
cause, ad esempio un oggetto che passa velocemente al quadrotor causando
una differenza di pressione tra i due rotori. Il vento, a velocità costante
e costante nello spazio, non può invece essere considerato un disturbo che
modifica l’assetto o la quota, perché tende solo a far traslare il drone.
    Le simulazioni condotte sul modello Simulink che implementa le equa-
zioni non lineari del sitema, mostrano quindi che si è raggiunto l’obiettivo
prefissato, e questo sarà tanto più vero nella realtà quanto meglio sono stati
stimati i parametri che caratterizzano il drone. Inoltre, il controllo funziona
non solo quando il quadrotor è parallelo al suolo, ma, entro certi limiti, anche
quando è inclinato e quindi fuori dal punto di lavoro considerato.
    In futuro sarà sicuramente interessante testare il controllo qui progetta-
to, importandolo sull’Hummingbird. Si potrebbe anche arricchire il modello
utilizzato, studiando la dinamica dei motori. I motori sono sicuramente rapi-
di, ma non hanno una dinamica istantanea come quella ipotizzata in questo
lavoro.
    Se poi ci si volesse avventurare oltre lo studio di un drone stazionario,
non c’è che l’imbarazzo della scelta, si può ad esempio cercare di dare al
quadrotor una certa traiettoria da seguire, o anche studiare un algoritmo per
trovare la traiettoria migliore.

                                      36
Puoi anche leggere