UNIVERSITÀ DEGLI STUDI DI CAGLIARI - Corsi
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
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
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.
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