Realizzazione e controllo di un elicottero...

93

Transcript of Realizzazione e controllo di un elicottero...

Page 1: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .
Page 2: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .
Page 3: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

Realizzazione e controllo di un elicottero

birotore

16 luglio 2012

Relatore CandidatoIng. Daniele Carnevale Cerroni Loris

1

Page 4: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

INDICE 2

Indice

1 Introduzione 4

2 Progettazione e realizzazione del velivolo 72.1 Struttura meccanica . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Modellazione e Controllo 283.1 Dinamica di un corpo rigido . . . . . . . . . . . . . . . . . . . . . 283.2 Modello dinamica rotazionale rispetto all'asse Z . . . . . . . . . 353.3 Sintesi del controllo di imbardata . . . . . . . . . . . . . . . . . . 353.4 Modello dinamica traslazionale lungo l'asse Z . . . . . . . . . . . 393.5 Sintesi del controllo di quota . . . . . . . . . . . . . . . . . . . . 413.6 Sintesi di un osservatore asintotico per la stima della velocità . . 48

4 Implementazione Hardware e Software 504.1 Arduino Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.2 Simulink Software . . . . . . . . . . . . . . . . . . . . . . . . . . 554.3 Modello per il controllo di quota . . . . . . . . . . . . . . . . . . 63

5 Risultati 655.1 Applicazione del controllo di imbardata . . . . . . . . . . . . . . 655.2 Applicazione del controllo di quota . . . . . . . . . . . . . . . . . 81

6 Conclusione e sviluppi futuri 88

Page 5: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

INDICE 3

Ringraziamenti

Il lavoro di una tesi nasce e riette il cammino arontato negli anni di studi

univeritari.

Desidero ringraziare i miei genitori e la mia ragazza che mi hanno sostenuto

durante questi anni di studio. Ringrazio l'Ing. Daniele Carnevale per aver-

mi dato la possibilità di intraprendere questo particolare tipo di tesi, per la sua

diponibilità, per avermi dato modo di conoscere meglio questo campo dell'Ingeg-

neria dell'automazione e per la possibilità di applicare su un sistema reale i

concetti teorici a lungo studiati. Ringrazio tutti i professori del dipartimento

che hanno insegnato in questi anni, poiché ognuno di loro ha contribuito alla

mia formazione.

Page 6: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

1 INTRODUZIONE 4

1 Introduzione

L'obiettivo di questa tesi è la realizzazione di un elicottero birotore coassiale,un tipo particolare di velivolo contraddistinto dall'utilizzo di due eliche contro-rotanti ed all'implementazione di un sistema di controllo atto alla stabilizzazionedel velivolo in fase di volo.

La prima idea di una macchina che potesse librarsi in volo fu di Leonardoda Vinci, aveva infatti compreso alcune nozioni, poi rivelatesi esatte, circa ilvolo, verosimilmente desumendole dallo studio degli uccelli. Osservando questianimali aveva concepito, tra le varie soluzioni, quella di un congegno in gradodi generare la portanza necessaria per mantenersi in volo grazie ad una spiraleche doveva essere tenuta in moto circolare continuo (Figura 1).

Figura 1: Elicottero di Leonardo da Vinci

La spirale, meglio nota come vite aerea, sfruttava inconsapevolmente al-cuni principi dell'aerodinamica, ma nella versione in cui era stata disegnata,non avrebbe potuto realmente volare, in quanto Leonardo non superò il prob-lema della controrotazione del corpo. Inoltre, ai suoi tempi non era disponibilela potenza suciente a sollevare un elicottero soprattutto a causa dello scar-so rendimento di quell'elica. Lo studio leonardesco inuenzò il nome attualedell'elicottero, poiché "helix" ha proprio il signicato di "spirale".

Il forte impulso allo sviluppo dell'aeronautica avvenuto nel periodo dellaseconda guerra mondiale, aveva fatto maturare grosse esperienze di volo congli aerei che potevano ormai fornire il necessario supporto per mettere a puntomacchine capaci delle prestazioni caratteristiche dell'elicottero.

Proprio con l'aereo ci si era ritrovati di fronte al problema della controro-tazione, per il caso dei monoelica, ma la presenza delle ali sse e la proporzionefra la portanza (dipendente dalla supercie alare) e le velocità di quei velivolirendeva agevole la soluzione. L'elicottero invece non aveva ali sse, e si dovetteattendere che qualcuno mettesse meglio a punto i concetti di eliche controrotantiper avere degli aeromobili stabilizzati.Negli elicotteri in volo a bassa velocità, la rotazione delle pale di un'elica fa sìche una quantità signicativa della massa d'aria che uisce attraverso il discodell'elica venga trasformata in un usso d'aria tangenziale o rotazionale. L'ener-gia di tale usso aerodinamico tangenziale alla direzione del moto è totalmente

Page 7: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

1 INTRODUZIONE 5

sprecata nello schema a singola elica e determina una riduzione del rendimentodell'elica stessa.

Per utilizzare parte di questa energia, una seconda elica posta dietro laprima, può estrarre energia anche dal usso d'aria perturbato che la investe. Seben progettato, un sistema ad eliche controrotanti non ha ussi d'aria di tiporotazionali in uscita e crea una spinta uniforme attraverso il disco dell'elica,causando minori perdite di portanza e producendo dunque un aumento delleprestazioni e del rendimento.

Inoltre, il usso d'aria tangenziale generato da un'elica singola, causa proble-mi di manovrabilità a basse velocità perché, se investe gli stabilizzatori verticali,cioè deriva e timone, genera una forza che tende a far imbardare l'aeromobileverso destra o sinistra, a seconda del verso di rotazione delle pale.

Il disegno a eliche controrotanti, serve anche a contrastare il momento imbar-dante asimmetrico detto P-factor, che si genera negli aeromobili ad elica quandoassumono un assetto non perfettamente orizzontale. Alcuni sistemi controrotan-ti vengono progettati per essere usati solo al decollo per ottenere la massimaspinta ed ecienza in quelle condizioni. Terminata la manovra, una delle elicheviene disconnessa durante il volo di crociera per aumentare l'autonomia di volo.

È stato vericato che i sistemi ad eliche controrotanti sono tra il 6% e il16% più ecienti dei sistemi con una sola elica convenzionale per questo negliultimi anni sono stati rivalutati. Di contro, la soluzione risulta molto rumorosa,con aumenti del rumore in asse (avanti e dietro) no a 30 dB e lungo direzionitangenziali, di 10 dB. La maggior parte del rumore supplementare può esseremisurata nel campo delle alte frequenze. Questo sostanziale problema di au-mento del rumore e la maggiore complessità meccanica ha limitato fortementela diusione di questa disposizione delle eliche nelle applicazioni aeronautichecommerciali no ad oggi.Le dicoltà incontrate durante lo sviluppo di questo lavoro di tesi sono statefondamentalmente relative alla ricerca di un compromesso tra prestazione, af-dabilità e robustezza del prototipo realizzato, sia nell'ambito dei controlli chein ambito progettuale con la scelta dei componenti. Non meno ostica è risultatal'analisi teorica riguardo il comportamento del velivolo la successiva implemen-tazione pratica sul sistema reale. Il prototipo realizzato è stato nominato Raim-bow 2.0 , come prosieguo del lavoro di tesi dell' Ing Daniele Zarelli , risultatomolto utile ai ni dello sviluppo complessivo del sistema.La presente trattazione è suddivisa in 6 capitoli principali:

Nel secondo capitolo verrà arontata la fase di progettazione dell'interolavoro , dunque sia del sistema complessivo sia della struttura meccani-ca. Verranno poi descritti in modo dettagliato i componenti Hardwareutilizzati nella realizzazione sica del velivolo

Il terzo capitolo è interamente dedicato allo studio del modello matem-atico atto a descrivere i comportamenti del velivolo. Lo sviluppo di talemodello è stato necessario per la progettazione delle leggi di controllo perla stabilizzazione e controllo del sistema. Verranno dunque ricavati duemodelli separati per ciò che riguarda la dinamica rotazionale e quella as-censionale e le rispettive leggi di controllo. Inoltre nel caso del controllo diquota verrà realizzato anche un osservatore per gli stati non eettivamentemisurabili del sistema.

Page 8: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

1 INTRODUZIONE 6

Nel capitolo quattro troviamo una descrizione del modo in cui è stato poirealmente implementato il software sia a bordo dell'elicottero che nel PCper le operazioni di analisi dei dati e controllo remoto.

Il capitolo cinque è invece dedicato alla descrizione e all'analisi della sta-bilità del sistema di controllo progettato.

. Verranno esaminati in dettaglio gli andamenti delle variabili in gioco edel controllo stesso dei motori.

Inne il capitolo sei contiene le conclusioni e dei possibili sviluppi futuriper il nostro lavoro.

Page 9: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 7

2 Progettazione e realizzazione del velivolo

Rainbow 2.0 è , come già accennato , un elicottero con birotore coassiale dallemedie dimensioni , la carlinga misura 70 cm ed è alta 40 cm per un peso com-plessivo di circa 900 g. Le due coppie di pale speculari tra loro misurano 60cmdi lunghezza e hanno una sezione massima di 5 cm.Si è pensato di progettare il sistema complessivo secondo lo schema illustrato ingura 2.

Figura 2: Schema di comunicazione generale

Il controllo dell'elicottero viene eettuato tramite un Joystick remoto colle-gato ad un computer. Il programma che analizza i dati ricevuti dal controllerè il Simulink, un software per la modellazione, simulazione e analisi di siste-mi dinamici, sviluppato dalla compagnia statunitense MathWorks, integrato nelsoftware Matlab. Il Joystick è un classico controller utilizzato per i giochi disimulazioni di volo, la scelta è ricaduta sul controller della Thrustmaster peril suo costo contenuto e per l'alto numero di pulsanti, utilizzabili nel progettoper richiamare le funzioni implementate. Simulink vede il Joystick come unanormale porta seriale con diversi canali di comunicazione , a cui arrivano i datiinviati dal controller. Tali dati sono inviati poi tramite una comunicazione se-riale attraverso un'interfaccia dati wireless, una collegata al PC una installatadirettamente a bordo del velivolo. In tale modo Raimbow 2.0 riceve i coman-di inviati tramite il controller remoto ed allo stesso tempo invia tutti i datiraccolti dai sensori di bordo al Pc , in tale modo è stato possibile monitorare

Page 10: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 8

l'andamento di tutte le variabili misurate e comprendere il comportamento e leproblematiche emerse durante la fase di creazione e messa a punto del controllo.Inoltre con poche piccole modiche è possibile interfacciare il sistema anche conaltri tipi di controller.Dal Joystick è possibile inviare i tradizionali comandi di volo, quali

Throttle , ovvero la potenza impressa ai motori e necessaria alla librazionedel velivolo;

Roll, movimento laterale dell'elicottero;

Pitch, ovvero il movimento di beccheggio che permette l'avanzamento ol'arretramento dell'elicottero;

Yaw, comando di imbardata che permette la rotazione dell'elicottero lungol'asse di rotazione delle eliche;

Accensione - Spegnimento motori , aggiunto come comando di sicurezzaper evitare partenze improvvise del velivolo.

Raimbow 2.0 è inoltre dotato di numerosi sensori di bordo per la lettura dellegrandezze fondamentali per il controllo del velivolo, oltre ad un microprocessoreche si occupa della gestione dei dati come ricezione, invio ed al calcolo delcontrollo implementato direttamente a bordo del velivolo.

Tra i sensori utilizzati troviamo un Sonar che permette di misurare la quo-ta del velivolo da terra da un massimo di 760 cm a un minimo di 25 cm , diun accelerometro e un giroscopio triassiali che misurano rispettivamente l'ac-celerazione lungo i tre assi e la velocità angolare dei tre piani perpendicolariai corrispettivi assi. Tali sensori sono completamente monitorati in Simulinktramite display graci che sono in grado di mostrare in tempo le misure ac-quisite. Oltre ai sensori, in simulink, è possibile osservare gli andamenti deicontrolli e l'andamento dello stato della batteria, come vedremo essenziale ai -ni del controllo di quota e che si ripercuote anche sulle prestazioni del controllodi imbardata. Il monitoraggio viene eettuato anche per i comandi impartititramite controller, potendo quindi osservare la potenza base impartita ai motoried i valori degli altri comandi.

Rainbow 2.0 monta sulla coda il microcontrollore e l'integrato atto allacomunicazione wireless. Si possono osservare due led di colore arancione erosso che permettono di riscontrare l'avvenuta accensione dell'elicottero e lacomunicazione tra il computer e il controllore a bordo.

2.1 Struttura meccanica

La struttura portante dell'elicottero è costituita essenzialmente da quattro pi-astre di alluminio e tre tubolari che costituiscono la coda di Raimbow 2.0.

Page 11: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 9

Figura 3: Struttura portante di Raimbow 2.0

All'interno di essa sono stati alloggiati tutti gli organi di controllo , propul-sione e comunicazione essenziali per il volo dell'elicottero.

La parte propulsiva dell'elicottero è composta da un sistema meccanico biro-tore comandato da due motori brushless alimentati da una batteria da 11.1V.La soluzione a rotori coassiali è realizzata con due eliche che ruotano in direzioneopposta montate due alberi di trasmissione coassiali. Il birotore, oltre ad elim-inare la necessità di un rotore posteriore anti-coppia, risolvono uno dei problemiche aiggono i sistemi a singola elica convenzionali durante alcune condizioni divolo traslato in avanti. Infatti, negli elicotteri a contro-rotori, la compensazionedelle portanze avviene sui due lati e si equilibra anche in queste condizioni divolo critiche per gli altri velivoli.

Page 12: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 10

Figura 4: Rotazione dei rotori e controcoppie

Di contro vi è una maggiore complessità meccanica del sistema rotore, che inquesta congurazione dovrebbe prevedere due distinti piatti oscillanti, uno deiquali deve comandare il rotore superiore con bielle che devono passare attraversoil rotore inferiore. Tale ultimo inconveniente è stato risolto dall'aggiunta diuno stabilizzatore costituito da un barra metallica con dei pesi posti alle sueestremità, all'asse di rotazione delle pale.

Figura 5: Rotori e barra stabilizzatrice

Tale barra (Figura 5), raggiunta una determinata velocità di esercizio , grazieai contrappesi ruota secondo una traiettoria relativamente stabile nel piano dirotazione del rotore ed essendo collegata con il piatto oscillante ne riduce leanomalie del moto, cosi che i rotori possano essere meno soggetti ai fenomenilegati al appeggio e brandeggio.

I propulsori sono due motori brushless Jem Motors da 11.1V (Figura 6), iquali sono in grado di generare 6800 rpmmassimi al minuto con un assorbimentodi 24A ed un peso di soli 900 g ciascuno. La trasmissione è portata all'albero

Page 13: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 11

tramite un doppio rapporto di ingranaggi con una riduzione di 7 : 1, ovvero allamassima potenza i rotori possono raggiungere circa i 1000 rpm. Per l'inserimentodei motori nell'alloggiamento è stato necessario modicare i supporti originaliche prevedevano il montaggio di ingranaggi a 9 denti , con quelli ad 11 dentiforniti insieme ai motori , dunque si è proceduto allo spostamento degli interassirelativi tra ciascun albero motore e l'albero di trasmissione , pari a 0.5mm .

Figura 6: Organi di distribuzione e propulsione

L'intero sistema di controllo e propulsione è alimentato da una cella Lipo da11.1V del peso di 200 g circa ed in grado di erogare 2200mAh di cui vedremoin dettaglio le peculiarità nel prossimo paragrafo.

Page 14: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 12

Figura 7: Raimbow 2.0

Figura 8: Rambow 2.0 dettaglio

2.2 Hardware

Per quanto riguarda la scelta hardware il lavoro è iniziato in collaborazionecon la STMicroelettronics con l'intento di voler utilizzare un microcontrolloreSTM32F4 Discovery a 32bit e la piattaforma Inemo dotata di numerosi sensorigià a bordo.

Page 15: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 13

Figura 9: ST32F4 Discovery

Queste due schede sono all'avanguardia per ciò che riguarda velocità di cal-colo, compattezza e rapporto prestazioni/prezzo. Infatti la F4 (Figura 9) montaal suo interno un processore ARM Cortex-M4 il quale è un core della famigliaARMv7 , nato come evoluzione del core ARM Cortex-M3, lo stesso utilizzato innumerosi smartphone e console come Nintendo. Il core M4 ore prestazioniavanzate di controllo digitale ,uno dei più potenti della sua categoria , cheraggiunge una velocità calcolo di 1.25MHz.

Figura 10: STM Inemo V2

Il modulo inerziale InemoV2 (Figura 10) è addetto esclusivamente al trat-tamento dei segnali ricevuti dai sensori montati su di essa, come giroscopio edaccelerometro a 3 assi, magnetometro, sensore di temperatura, sensore di pres-sione e contiene inoltre un ltro di Kalman per la stima dell'orientamento dellascheda nello spazio oltre ad un canale DSP dedicato per l'elaborazione delleimmagini.

Tale progetto è stato abbandonato per ragioni dovute a bug dei sistemi etempo necessario allo sviluppo di una applicazione funzionante, infatti essendotali schede di nuovissima generazione sono ancora poco utilizzate e dunque il

Page 16: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 14

materiale disponibile sul web per l'apprendimento delle loro funzioni è risulta-to scarso o quasi del tutto inesistente. Inoltre l'ostacolo principale è risultatoil fatto di dover modicare completamente il rmware della Inemo in quan-to è ancora in corso di sviluppo da parte della stessa ST, la possibilità di farcomunicare tale scheda tramite porta seriale con altri dispositivi, inoltre il pro-tocollo I2C della ST32F4 presentava dei bug, dunque era per questo impossi-bile da utilizzare anche usando sensori esterni alla Inemo. Si è cosi deciso dipassare alla piattaforma Arduino, meno performante delle precedenti ma alta-mente utilizzata da numerosi anni e dunque con un ridottissimo numero di buge malfunzionamenti.

L'hardware implementato a bordo dell'elicottero è stato progettato tenendoconto di diverse accortezze. Si è cercato di suddividere in tre sezioni lo schemaelettrico complessivo (Figura 11):

Gli azionamenti.

L'elettronica di potenza.

Microcontrollore e sensori

in modo tale da avere una visione più chiara dei componenti.

Page 17: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 15

Figura 11: Schema di funzionamento dell'Hardware On-Board

Il cuore del sistema è il microcontrollore Arduino Uno, un microcontrol-lore basato sul Chip ATmega328 (Figura 12). Possiede 14 pin digitali di in-

Page 18: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 16

put/output, dei quali 6 possono essere usati come uscite PWM, proprio quelleda noi usate per il controllo dei due motori brushless.

Figura 12: Arduino Datasheet

Monta al suo interno un oscillatore al quarzo a 16 MHz e possiede unaconnessione usb tramite cui è possibile la sua programmazione. Tale program-mazione potrebbe avvenire anche tramite seriale, quindi anche se al momentonon è disponibile online alcun materiale riguardo tale possibilità potrebbe es-sere auspicabile per i possibili sviluppi futuri, programmare Arduino via wirelessattraverso Xbee.

Page 19: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 17

Figura 13: Arduino Uno congurazione porte

Vediamo ora in dettaglio in che modo le porte di arduino sono state predis-poste per il trattamente dei dati, indicando in Figura 13 le connessioni eettuatecon la mappa dei colori utilizzati per il cablaggio. I pin A5 ed A4, sono stati pre-disposti per pilotare rispettivamente il segnale di Clock SCL ed il data streamingSDA, per lavorare con il protocollo di comunicazione I2C ideato dalla Philips, ilquale risulta essenziale per la comunicazione con i nostri sensori digitali. Questotipo di protocollo è sistema di comunicazione seriale bilare utilizzato molto co-munemente nei circuiti integrati e prevede generalmente un dispositivo mastered uno slave o come nel nostro caso un solo master ovvero Arduino e un multi-slave ovvero i sensori. Trattandosi di un protocollo seriale i vantaggi che oresono quelli di impegnare solo due linee e dunque solo due pin dei dispositivi chelo utilizzano. Un suo limite è la velocità di comunicazione che però nel nostrocaso non risulta essere un problema in quanto risulta comunque più rapida diquello che costituisce il collo di bottiglia per il sistema, la comunicazione wire-less tra Raimbow 2.0 ed il PC. Per il funzionamento di tale protocollo comesi può osservare in gura 9 è stato necessario l'inserimento di una coppia diresistenze di Push Pull tra il terminale positivo di alimentazione e i due segnaliche pilotano la I2C. Infatti l'accelerometro e il giroscopio installati sul velivoloessendo sensori digitali comunicano attraverso tale tipo di protocollo secondo leregole in gura 14 .

Page 20: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 18

Figura 14: Protocollo I2C

Viene inviato dapprima un segnale di apertura comunicazione sul bus condi-viso dai due sensori, dopo di che una volta occupato impostato il ag relativo albus di comunicazione come Busy, Arduino invia l'ID del dispositivo che desiderainterrogare, tale sensore risponde con un segnale di Acknowledgement. A talpunto il microcontrollore invia sul bus l'indirizzo del registro del sensore in cui èinserita l'informazione da lui desiderata ed il sensore risponde tramite il canaledi SDA inviando il contenuto di tale registro, il tutto è scandito tramite il seg-nale di clock inviato tramite il canale SCL. L'altro sensore inserito a bordo delbirotore è un Sonar necessario alla misura di quota, tale sensore utilizza undiverso tipo di protocollo per l'invio dei dati, ovvero un canale digitale D7 sucui il microcontrollore invia un segnale di Interrupt ad ogni ciclo di lavoro ed ilsensore sensore risponde con l'ultimo dato letto ed inserito nei registri.

I canali digitali 10 ed 11 (Figura 13) sono predisposti per l'utilizzo di unsegnale modulato PWM (pulse-width modulation) utilizzato per il controllodei nostri azionamenti. La modulazione di larghezza di impulso, è un tipodi modulazione digitale che permette di ottenere una tensione media variabiledipendente dal rapporto tra la durata del impulso positivo e di quello negativo.Il PWM è largamente utilizzato anche per regolare la potenza elettrica inviataad un carico, per esempio negli inverter, per regolare la velocità dei motori incorrente continua come nel nostro caso . La durata di ciascun impulso puòessere espressa in rapporto al periodo tra due impulsi successivi, implicando ilconcetto di ciclo di lavoro anche detto Duty Cycle.

Come si può intuire (Figura 15) , con un duty cycle pari a zero la potenzatrasferita è nulla, mentre al 100% la potenza corrisponde al valore massimotrasferito nel caso non sia presente il circuito di modulazione. Ogni valoreintermedio determina una corrispondente fornitura di potenza in uscita.

Il vantaggio di questa tecnica è di ridurre drasticamente la potenza dissipatadal circuito limitatore rispetto all'impiego di transistor controllati analogica-mente. In un semiconduttore la potenza dissipata è determinata dalla correnteche lo attraversa per la dierenza di potenziale presente ai suoi capi. In uncircuito PWM il transistor in un istante conduce completamente, riducendo alminimo la caduta ai suoi capi, oppure non conduce, annullando la corrente, edin entrambi i casi la potenza dissipata è minima.

Inoltre anche il Pin digitale 9 (Figura 13) è stato già predisposto per ilcontrollo del motore di coda ancora non collegato e che servirà per il controllodel pitch del velivolo.

Il Pin Analogico 0 è utilizzato per la lettura del valore di tensione dellabatteria. Ai ni di eettuare tale misurazione, essendo il massimo valore ditensione letto da Arduino pari a 7 V è stato necessario realizzare un piccolopartitore di tensione per trasformare la tensione in uscita dalla batteria di 12.6

Page 21: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 19

V in stato di pieno carica in un voltaggio inferiore a 5 V. In tale modo si è potutomonitorare il livello di carica della batteria da poter utilizzare come vedremoper il calcolo del controllo di quota.

Figura 15: Esempi di segnale PWM

Arduino comunica per via seriale ogni dato letto dai sensori alla perifericadi invio dati wireless detta XBee (Figura 16), che prende il suo nome da ZigBeeche in ambito delle telecomunicazioni identica una specica classe di proto-colli di comunicazione ad alto livello che utilizzano piccole antenne digitali abassa potenza e basato sullo standard IEEE 802.15.4 per wireless personal areanetworks (WPAN). I protocolli ZigBee sono progettati per l'uso in applicazioniembedded che richiedano un basso transfer rate e bassi consumi , dunque pro-prio ciò che faceva al caso nostro , trasferire velocemente ed in modo trasparenteun basso numero di dati , in modo tale da liberare il velivolo da vincoli dovutiai cablaggi.

Page 22: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 20

Figura 16: Xbee S1

Nel nostro caso specico è stato utlizzato Xbee S1 un prodotto specicata-mente progettato per essere programmato in modo rapido e semplice e che lavorasulla connessione di tipo seriale . Le dimensioni estremamente compatte, fan-no risparmiare spazio prezioso nelle applicazioni. Il modulo XBee opera nellabanda ISM alla frequenza di 2.4GHz. La congurazione di base supporta unavasta gamma di applicazioni di trasmissione dati. Utilizzando i comandi AT,è possibile ricongurare il modulo ed accedere a funzioni avanzate. I moduliXBee orono notevoli vantaggi. Il primo grande vantaggio consiste nel fatto chei moduli XBee sono bidirezionali, parecchi sistemi economici a 433MHz sonounidirezionali, con questo sistema il trasmettitore non ha idea se il ricevitorestia ricevendo i dati o meno. I moduli XBee invece, trasmettono e ricevono i datiin entrambe le direzioni, in questo modo è possibile testare facilmente (da en-trambe i lati) se il sistema sta funzionando correttamente. Tale comunicazionebiunivoca permette il monitoraggio a terra dell'elicottero e la comunicazione abordo del segnale di controllo manuale. Il secondo vantaggio consiste nell'indi-rizzamento univoco di questi moduli. Ogni XBee ha un numero seriale univoco.Questo signica che due o più unita possono essere settate per comunicare es-clusivamente tra loro, ignorando i segnali degli altri moduli. Il terzo vantaggioconsiste nella logica precostruita all'interno dei moduli XBee, infatti sono giàimplementati tutti i necessari controlli tipici di una trasmissione wireless, qualiad esempio l'error checking. Tramite la comunicazione Arduino-Simulink è statarealizzata un ulteriore controllo di bontà del segnale e un controllo sull'avvenu-ta comunicazione tra le parti prima di eettuare i setup sul Rainbow 2.0 e sulSimulink. Inne il protocollo XBee consente l'utilizzo di diversi numeri di canali,dunque settando dierenti unità in dierenti canali, possono essere minimizzateeventuali interferenze. Riassumiamo ora le principale caratteristiche tecniche diXbee S1:

Frequenza operativa 2.4GHz;

Potenza RF 1mW (0dBm) no a 100m di portata;

Range di Temperatura Industriale (-40,85C);

Approvato per utilizzo in Europa, USA e Canada;

Supportate modalità di rete avanzate e basso consumo;

Il dispositivo non richiede di norma congurazione per connessioni punto-punto.Per funzionalità avanzate il radio modem supporta un set esteso di comandi AT

Page 23: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 21

che possono essere inviati tramite la porta seriale. Per semplicare la congu-razione e la gestione dei radio modem ZigBee, la MaxStream fornisce gratuita-mente il programma X-CTU per ambiente Windows, che permette anche ditestare la rete radio per misurare il campo e i pacchetti persi ed integra an-che una GUI tramite cui l'utente può settare i principali parametro in modosemplice. Grazie al software X-CTU (Figura 17) è possibile eettuare anchel'upgrade del rmware dei moduli Xbee e XbeePRO.

Figura 17: X-CTU Software

I parametri di maggior interesse che devono essere settate correttamenteanché il sistemi lavori in modo trasparente sono i seguenti:

1. Denire la Function-set come XBee 802.15.4 , che permette al dispositivodi lavorare in trasparent mode;

2. Assegnare ad entrambe i dispositivi un indirizzo proprio ID-PAN, ad es-empio nel nostro casoXBee 1 = 1234 e XBee 2= 4567;

3. Denire per ciascun dispositivo il Destination Address High (DH) con l'ID-PAN dell'altro dispositivoXBee 1 DH = 4567 e XBee 2 DH= 1234;

Page 24: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 22

4. Denire per entrambe i dispositivi la stessa velocità di comunicazioneBaudRate (BD) ad esempio 38400;

5. Denire lo stesso canale di comunicazione CH per entrambe i dispositiviad esempio il 2;

A questo punto la comunicazione è attiva e funzionante sarà suciente collegareentrambe i dispositivi ai rispettivi canali di Rx e Tx.

Entriamo ora nello specico dei sensori utilizzati per la misura delle principaligrandezze in gioco nel sistema.

Il sonar, acronimo dell'espressione inglese sound navigation and ranging,impiega la propagazione del suono per calcolare distanze o rilevare la presenzae la posizione di oggetti, nel nostro caso specico è stato utilizzato per la let-tura della quota ed è un LV-MaxSonar-EZ4. Tale dispositivo presenta un buonaqualità di lettura, dimensioni compatte e basso consumo di corrente. Il Max-Sonar EZ4 riesce a rilevare ostacoli posti davanti ad esso come viene mostratoin Figura 18 sottostante.

Figura 18: Speciche Sonar

Il suo raggio di azione va da un minimo di 15cm ad un massimo di 645cm.Durante le varie simulazioni si è osservato che il suo comportamento risultaadabile al di sopra dei 22 cm. Il MaxSonar può essere alimentato da 2.5V a5.5V con una corrente max di 2mA. Il dispositivo può essere interrogato con unafrequenza che supera i 20Hz (50ms), e tramite diversi protocolli di comunicazionetramite i suoi pin:

TX-RX: transmit/receive, pin 3 e 4;

AN: letture analogiche, pin 5;

PW: pulse-width modulation, pin 6.

Nel caso in esame si è scelto di interrogare il sonar tramite il pin 6 (PWM)(Figura 13) in quanto la qualità del segnale risultava migliore essendo già pre-ltrato da un integrato interno al sonar, dunque il segnale risulta meno caricodi rumore.

Di seguito viene mostrato lo schema elettrico che presenta l'integrato delMaxSonar EZ4 (Figura 19).

Page 25: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 23

Figura 19: Schema elettrico SonarMax

Il sensore fondamentale per il controllo di imbardata è giroscopio ITG-3200della InvenSense a tre assi (Figura 20). Possiede al suo interno tre convertitoriAD a 16bit per digitalizzare le uscite del giroscopio , un ltro passa bassoselezionabile dall'utente e un'interfaccia I2C Fast-Mode (400kHz).

Page 26: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 24

Figura 20: ITG3200 Giroscopio

La comunicazione con il ITG-3200 come già accennato precedentemente, èrealizzata tramite il protocollo I2C diventato ormai uno standard per ciò cheriguarda l'utilizzo di sensori digitali. Il sensore dispone anche di una uscita diinterrupt, e un ingresso di clock opzionale che nel nostro caso non sono statiperò utilizzati. Un jumper sulla parte superiore della scheda permette di se-lezionare facilmente l'indirizzo I2C, ponendo il pin AD0 o a VCC o a GND (la scheda pone di default il pin a VCC) in tale modo è possibile utilizzare adesempio due giroscopi sullo stesso canale I2C avendo due indirizzi dierenti.Il giroscopio utilizzato vanta ottime caratteristiche tra cui l'uscita digitale cheporta l'informazione delle velocità angolari relative ai tre assi X, Y e Z, è l-trata digitalmente con un ltro selezionabile via software dall'utente prima diiniziarne l'interrogazione, e una misura della velocità angolare no ad un mas-simo di ±2000degsec .L'ultimo sensore installato sul velivolo è un accelerometro BMA180 della Bosch(Figura 21). Le sue dimensioni ridotte e la sua ottima qualità hanno fatto ri-cadere la scelta su questo modulo. Il BMA180 misura accelerazioni lungo i treassi X, Y e Z la cui lettura è possibile tramite l'uscita digitale a 14Bit o con ilprotocollo I2C o tramite i quattro pin che permettono la comunicazione SPI.Come nel caso del giroscopio la lettura avviene tramite il secondo protocollo,inviando sul bus di comunicazione un indirizzo dierente.

Page 27: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 25

Figura 21: BMA180 Accelerometro

L'ultima componente Hardware è costituita dall'unità di potenza, i due mod-uli Trixx Pro SBEC 45 , ovvero due regolatori di tensione in grado di erogare6A di potenza massima (Figura 22).

Figura 22: Regolatori di tensione TRIXX SBEC 45

La tensione di uscita è selezionabile tra 5 - 5,5 - 6V mentre in ingresso accettabatterie no a 6S LiPo. Tali regolatori di tensione trasformano la correntecontinua delle batterie nella corrente a tre fasi necessaria al funzionamento deimotori brushless, in tale modo si riescono ad ottenere prestazioni di controlloquasi superiori degli omologhi motori a scoppio, ma dall'altro lato l'autonomiae la potenza del velivolo ne risentono fortemente .

Tutto il sistema elettronico è alimento tramite una cella ai polimeri di Litioda 11.1 V, tale tipi di batterie hanno guadagnato popolarità nel mondo del-l'aeromodellismo, dove il duplice vantaggio di peso ridotto e tempo di lavoroaumentato può sucientemente giusticare il prezzo. Uno dei grandi vantaggidella tecnologia Li-Poly è che i costruttori possono sagomare la forma alle bat-terie più o meno come vogliono, questo può essere importante per i costruttori

Page 28: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 26

che costantemente lavorano su dispositivi sempre più piccoli, sottili e leggeri.Un altro vantaggio delle batterie ai polimeri di litio rispetto alle batterie Ni-Cd(nichel-cadmio) e NiMH (nichel-metalidruro) è che la corrente di scarica a vuotoè molto minore e hanno una durata in termini di cicli di carica scarica di granlunga superiore alle altre.

Dunque come si è visto la parte principale del progetto è costituita dai sen-sori e dal microcontrollore oltre che dall'unità di potenza.Il buon posizionamento di tali componenti è stato cruciale per avere un buon as-setto del velivolo, essendo quelli di peso maggiore, sono infatti quelli che inuis-cono maggiormente sul bilanciamento del carico ed il corretto posizionamentodel baricentro del velivolo. Infatti pur essendo stato sviluppato un sistema dicontrollo per la stabilizzazione dello stesso, la scelta ottimale della posizione ditali componenti determina un minore sforzo del controllo nelle fasi di equilibriodel velivolo e dunque una maggiore ecacia nelle condizione in cui è realmentenecessario il controllo, senza contare il notevole risparmio energetico dovuto allainattività dell'azione di correzione.

Dunque l'elettronica è stata posta nella parte sottostante gli azionamenticon i sensori posizionati come descritto di seguito.. Il giroscopio con l'asse Zcoincidente con l'asse di rotazione dei due rotori, dunque posizione approssima-tivamente in corrispondenza del centro di massa del velivolo, tra i due motori.Proprio per tale motivo si è cercato di schermare il sensore tramite una ap-posita gabbia metallica, in maniera tale da limitare il più possibile interferenzedi carattere magnetico che avrebbero potuto compromettere la letture dei datiproveniente da esso. L'accelerometro è stato invece posto sulla punta del ve-livolo in primo luogo poiché lo spazio all'interno della scocca non consentivaun montaggio comodo, in secondo luogo per evitare anche in questo caso diavvicinare il sensore, con misure già molto soggette a rumore, ai motori fontedi grandi interferenze elettromagnetiche. Tale scelta di posizionamente è perògiusticata dal fatto di volere inserire il sensore il più vicino possibile al baricen-tro del velivolo e con l'asse Z di lettura circa coincidente con l'asse di rotazionedelle eliche. Anche il sonar è stato posto sull'avantreno del velivolo tramite unapposito alloggiamento ricavato dalla scocca. Un ulteriore accorgimento è statoquello di porre l'elettronica di potenza al di sotto dei rotori, tale posizionamentopermette durante il periodo di volo un ottimo rareddamento dei vari integratiatti al pilotaggio degli azionamenti. Inne si è deciso di inserire la batteria cherisulta essere il carico unitario maggiore con i suoi 200 g di peso, leggermente piùavanti del motore anteriore, l'eetto che si è ottenuto è stato un quasi perfettobilanciamento dei pesi rispetto all'asse di rotazione dei rotori, in maniera tale dalimitare al minimo la futura azione di stabilizzazione di beccheggio del velivolo.

Page 29: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

2 PROGETTAZIONE E REALIZZAZIONE DEL VELIVOLO 27

Figura 23: Raimbow 2.0

Page 30: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 28

3 Modellazione e Controllo

Per la progettazione del sistema di controllo del nostro birotore è necessarioavvalersi di un modello matematico per descrivere la dinamica di volo. Perricavare tale modello dinamico si è pensato di partire dalle equazioni del motoche descrivono un corpo rigido nello spazio, aggiungendo ad esse l'inuenza delleforze e coppie aerodinamiche dipendenti dal moto dei due rotori.

Figura 24: Sistema di riferimento BodyFrame

Iniziamo con il denire in primo luogo i sistemi di riferimento convenzionaliche saranno utilizzati in questo capitolo (Figura 25), che sono appunto un sis-tema di riferimento inerziale chiamato Earth Frame e il sistema di riferimentosolidale con il birotore, con origine posto nel centro di massa e orientato perconvenzione come in Figura 24 , chiamato Body Frame. Si tenga conto cheanche il montaggio dei sensori a bordo del velivolo è stato eettuato in modotale da rispettare il sistema di riferimento solidale con il corpo.

3.1 Dinamica di un corpo rigido

Per un corpo rigido di massa m e inerzia I, la dinamica traslazionale e ro-tazionale è descritta dalle equazioni

~F =d~P

dt+ ~Ω× ~P (1)

~T =d ~M

dt+ ~Ω× ~M (2)

dove:

~F e la somma di tutte le forze esterne agenti sul corpo rigido

~P = m · ~V è la quantità di moto totale con ~V velocità suo del centro dimassa

Page 31: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 29

~M = I · ~Ω è il momento angolare del corpo rigido

~Ω è la velocità angolare del corpo

~T è la somma di tutte le coppie agenti sul corpo rigido.

Figura 25: Sistemi di riferimento Inerziale e di BodyFrame

Denite tali forze e coppie che agiscono sul corpo rigido in esame possiamoesprimere l'orientamento del corpo rigido con una terna di angoli di Eulero ~η =[φ, θ, ψ] che indicheremo rispettivamente come gli angoli di Rollio, Beccheggioed Imbardata .Indichiamo con R la matrice di rotazione che descrive l'orientamento del corponello spazio , sia inoltre ~ζ = [X, Y, Z] il vettore che identica la posizione delcentro di massa del corpo, si può quindi scrivere per il moto traslatorio che

~ζ = R · β ~V (3)

β ~V = −β~Ω × β ~V +β ~F

M(4)

dove l'apice β indica che le coordinate del vettore sono espresse rispetto alBody Frame.

Usando la terna di angoli di Eulero RPY (Roll, Pitch e Yaw), con ordine dirotazione XYZ, la matrice di rotazione R può essere esplicitata in funzione di[φ, θ, ψ] nel modo seguente:

R(η) = Rz(ψ) ·Ry(θ) ·Rx(φ) =

cψcθ cψsθsφ − sψcφ cψsθcφ + sψsφsψcθ sψsθsφ + cψcφ sψsθcφ − cψsφ−sθ cθsφ cθcφ

(5)

Per esprimere il moto rotatorio, bisogna fare uno sforzo in più in quantosi deve legare la terna di angoli di Eulero con il vettore di velocità angolare.Sia dunque S(~Ω) la matrice antisimmetrica detto generatore innitesimale dirotazione, la cui espressione è data da

Page 32: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 30

S(~Ω) =

0 −Ω3 Ω2

Ω3 0 −Ω1

−Ω2 Ω1 0

(6)

eseguendo dei semplici passaggi algebrici, si dimostra che dato un qualsiasivettore −→a vale la proprietà S(

−→Ω ) · −→a =

−→Ω ×−→a e quindi

R = S(~Ω) ·R = R · S(β~Ω) (7)

da cui si ricava

S(β~Ω) = RT · R (8)

Da queste relazioni e dalla forma di S(β~Ω) si trova una matrice chiamata RΩ

tale che

R−1Ω ~η =β ~Ω. (9)

Ad esempio per la terna di Eulero ~η = [φ, θ, ψ] con ordine di rotazione X−Y −Zsi ha che

RΩ =

1 sinφtanθ cosφtanθ0 cosφ −sinφ0 sinφ/cosθ cosφ/cosθ

(10)

Dunque è possibile scrivere le equazione del moto rotatorio nel modo seguente

~η = RΩ · β~Ω (11)

I ·β ~Ω = −β~Ω× (I ·β ~Ω) +β ~T (12)

Una volta denite le equazioni di un corpo rigido generico bisogna denire ivettori β ~T e β ~F , che dipenderanno esclusivamente dalla struttura , quindidall'airframe e dalle forze aerodinamiche in gioco sul birotore.

Per semplicità notazionale si esprimeranno da adesso in poi tutte le forze e lecoppie come ~F = β ~F e ~T = β ~T , ovvero sono tutte grandezze vettoriali riferiteal sistema di riferimento solidale con il corpo, ovvero il BodyFrame.

Le forze complessive che agiscono sul moto dell'elicottero si possono es-primere come somma di forze aerodinamiche più l'eetto della forza di gravità

~Ftot = ~Faereo + ~Fg (13)

dove

~Fg = RT

00−mg

(14)

con g ≈ 9.81ms2 costante di accelerazione di gravità.

Page 33: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 31

Figura 26: Forze totali agenti sul velivolo

A seconda dell'airframe le forze aerodinamiche in gioco cambiano, per loscopo di questa tesi verranno descritte soltanto le forze e coppie aerodinamichegenerate dai propulsori ad eliche. Senza approfondire ulteriormente la teoriariguardo tutte le forze aerodinamiche generate da un' elica, si considererannosoltanto due forze aerodinamiche principali (Figura 26), quella di spinta verticaledell'elica chiamata Thrust, la forza di Drag dovuta alla resistenza dell'aria. Inrealtà esistono altre forze aerodinamiche che però possono essere trascurate perquesto tipo di applicazione.

La forza di Thrust, è una forza aerodinamica diretta lungo l'asse di rotazionedell'elica ed è dovuta alla spinta verticale generata dalle pale rotanti, essa puòessere approssimata nel seguente modo

~FT = ραTR2ω2

β (15)

La forza di Drag è invece una forza aerodinamica diretta lungo la direzioneopposta del moto del velivolo, non è altro che l'attrito dell'aria agente sullasupercie del corpo e del rotore, la si può esprimere come

~FD = ραDAV2β (16)

in cui

ρ è la densità dell'aria

A è l'area della supercie che incontra il usso di aria, quindi dipendedalla geometria del corpo e dal suo orientamento

αT è chiamato coeciente di Thrust, dipende dalla geometria dell'elicae da tanti altri fattori come ad esempio l'orientamento che ha la paladell'elica rispetto alla velocità relativa dell'aria , in alcuni casi, bisogna

Page 34: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 32

considerare tutti questi fattori, in altri può essere approssimato da unacostante.

αD è coeciente di Drag che agisce su tutto l'elicottero e che si supponesia costante

R raggio del Rotore

ωβi è la velocità angolare di rotazione dell'elica i=esima espressa nel sis-tema di riferimento solidale con il corpo.

Adesso bisogna far entrare queste forze aerodinamiche nel modello ro-tazionale e traslazionale. Sia Rbi la matrice di rotazione che descrive l'ori-entamento dell'elica rispetto al Body frame, e sia ~FTi = ραTiAiR

2iω

2βi~uz

la forza dovuta al Thrust espressa nel sistema di riferimento dell'elica,quindi sempre diretta lungo l'asse z, allora per la dinamica traslazionale,le forze aerodinamiche generate dalle eliche si possono scrivere come

~Faero = ~Fthrust + ~Fdrag (17)

~Fthrust = −∑i

Rbi ~FTi (18)

~Fthrust = αD

−AxV 2Bx

−AyV 2By

−AzV 2Bz

(19)

La forza di Thrust consente la librazione del velivolo avvero il così detto Lift,tale forza però non presenta una distribuzione uniforme su tutta la superciedei rotori , bensì presenta delle asimmetrie. Si può suddividere la supercie deirotori in tre sezioni distinte (Figura 27):

Diven Region, costituisce la parte più esterna della lama, generalmente il30% della sua lunghezza, anche detto zona propulsive in quanto ruotandoad una velocità maggiore , impartisce anche una maggiore forza di Thrust.Le forze dinamiche complessivamente agenti in questo punto creano unleggero incurvamento della lama verso l'alto, ciò incrementa ulteriormentela forza di Lift generata ma allo stesso tempo ne aumenta la forza di Dragche si oppone alla rotazione della pala e tende dunque a rallentarla;

Driving Region, costituisce la parte centrale della pala generalmenteil 60% della sua lunghezza ed è anche detta zona autorotativa, conferisceuna media portanza ed è mediamente soggetta alla forza di drag in quantole forze aerodinamiche in gioco tendono ad incurvare la lama in avantitendendo ad accelerarne il moto;

Stall Region, è la zona più vicina all'asse di rotazione ed è soggettaanche essa a forti forze di drag ma inuisce poco sulla forza propulsiva delvelivolo.

Page 35: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 33

Figura 27: Distribuzione delle Forze aerodinamiche

Tale distribuzione contribuisce inoltre ad una deformazione dei rotori chevengono curvati da un lato verso l'altro per la forza di lift e quella peso chesi oppongono tra loro, dall'altro lato la forza centrifuga agente sulle lame con-tribuisce a raorzare la tensione e dunque la loro rigidezza.

Per ciò che riguarda le coppie agenti sul velivolo si devono considerare oltrealle coppie aerodinamiche agenti sul corpo anche gli eetti meccanici dovutialla rotazione delle eliche stesse (Figura 28).

Page 36: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 34

Figura 28: Coppie agenti sul velivolo

Sia −→ω bi e Ibi la velocità angolare e l'inerzia dell'elica i-esima rispettiva-mente, tutte e due espresse nel sistema di riferimento solidale all'elica stessa,allora il moto rotatorio delle pale genera due coppie meccaniche, una dovuta all'eetto giroscopico della pala e una dovuta alla controcoppia generata da essa.Considerando questi due eetti, si può scrivere la coppia totale come

~Ttot = ~Taero + ~Tgyro + ~Tct (20)

dove

~Taero = ~Tthrust + ~Tdrag =∑i

~li × (Rbi · ~FTi) +∑i

~li × (Rbi · ~FDbi) (21)

~Tgyro = −∑i

β~Ω× (Ibi ·β ~Ωbi) (22)

~Tct = −∑i

Ibi ·β ~Ωbi (23)

dove ~li sono vettori che individuano la distanza dei centri delle eliche dall'o-rigine del Body frame.

Con coppia aerodinamica invece si intende qualsiasi tipo di coppia gener-ata dalla struttura stessa del velivolo e dovuto ad esempio a azioni di dis-turbo esterne ad esempio folate di vento laterali che potrebbero imprimereun'accelerazione rotatoria al corpo.

Partendo da tali equazioni è possibile riscrivere due modelli più semplici perciò che riguarda la dinamica traslazionale e rotazionale del corpo e dunque piùidonei ad essere trattati per lo sviluppo di una legge di controllo.

Page 37: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 35

3.2 Modello dinamica rotazionale rispetto all'asse Z

Un modello approssimato della dinamica rotazionale rispetto all'asse Z puòessere descritta dalla seguente equazione dierenziale del 2° ordine

θIz = −Cθ (24)

dove considerando pari a zero le velocità angolari ωx, ωy rispetto ai dueassi restanti, possiamo considerare l'accelerazione del velivolo lungo l'asse Zdipendente da:

l'inerzia I del corpo rispetto a tale asse Z

un costante C dipendente dall'attrito viscoso che si oppone al moto dirotazione.

Il modello dunque può essere riscritto nel seguente modoθ1 = θ2

θ2 = −CI θ2(25)

in cui

θ1 rappresenta la posizione angolare del velivolo nello spazio rispetto al-l'asse Z;

θ1 = θ2 la velocità angolare del birotore nello spazio rispetto all'asse Z,unico dato eettivamente disponibile dalla lettura del giroscopio installatoa bordo;

θ2 l'accelerazione angolare del corpo nello spazio rispetto all'asse Z.

3.3 Sintesi del controllo di imbardata

Partendo dalle equazioni precedentemente descritte è possibile sintetizzare unalegge di controllo il cui scopo è annullare la velocità di imbardata del velivolo,dunque le equazioni di dinamica rotazionale rispetto all'asse Z possono esserecosì ridenite

θ1 = θ2

θ2 = −CI θ2 + ControlloImbardata(u1, u2)(26)

dove

u1, u2 rappresentano la potenza impartita rispettivamente a ciascuno deidue motori, nello specico abbiamo

u1 = uup = Throttle+ u

u2 = udown = Throttle− u

ControlloImbardata(u1, u2), inizialmente pari a zero ControlloImbardata(0, 0) =0

Page 38: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 36

Dunque possiamo semplicare le equazioni considerando il Throttle, ovvero lapotenza ssa impartita ai motori tramite il controller esterno e necessaria permantenere il velivolo ad una determinata quota da terra, come trascurabilein quanto il controllo agirà su di essa indipendemente dal suo valore , andan-do rispettivamente sottrarsi e sommarsi in maniera speculare. Dunque saràpossibile scrivere che

θ1 = θ2

θ2 = −CI θ2 + uI

(27)

Deniamo ora un sistema di errore così fatto˙θ1 = θ2

˙θ2 = −CI θ2 + u

I

(28)

con

θ1 = θref1 − θ1 (29)

˙θ1 = θ2 = θref2 − θ2 (30)

˙θ2 = θref2 − θ2 (31)

Si può pensare a tal punto di costruire un controllo che assegni la dinamicada noi desiderata , ad esempio scegliendo

u = −αθ1 − βθ2 (32)

L'unico dato misurabile è però la velocità angolare dell'elicottero letta dalgiroscopio, dunque possiamo pensare di costruire un osservatore della variabilea noi non nota andando ad integrare il valore di θ2 istante per istante.

θ1(t)− θ1(0) =

t∫0

θ2(τ)dτ (33)

Abbiamo ricavo in tale modo il valore stimato di posizione come

θ1(t) =

t∫0

θ2(τ)dτ + θ1(0), con θ1(0) = 0 (34)

Figura 29: Struttura del controllo

Page 39: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 37

Possiamo quindi descrivere il nostro sistema controllato (Figura 29) come˙θ1 = θ2

˙θ2 = −CI θ2 − α

I θ1 − βI θ2 = −αI θ1 − (CI + β

I )θ2

(35)

Il sistema così controllato risulta dunque asintoticamente stabile in quantoesprimendo il sistema in forma matriciale

˙θ =

[0 1

−αI −(CI + βI )

] [θ1

θ2

](36)

ci accorgiamo che gli autovalori di della matrice di sitema a ciclo chiusosaranno a parte reale negativa per qualsiasi scelta di α e β maggiori di zero.

Si è pensato di trattare il segnale letto da giroscopio con un opportunoltro passa banda (Figura 30) che permetta il taglio a basse ed alte frequenzelasciando passare solo valori che variano con una velocità compresa tra ω1 edω2

del tipo

k · s

(τ1s+ 1) · (τ2s+ 1)con ωi =

1

τi(37)

Figura 30: Filtro passa banda

Il ltro da noi scelto è quello illustrato in gura 30, consente un il passaggiodelle frequenze comprese tra ω1 = 0.1 rad

s e ω2 = 10 rads .

Il ltro presenta la seguente funzione di trasferimento

Ffiltro(s) =12s

s2 + 10.1s+ 2(38)

Page 40: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 38

passiamo ora alla conversione della funzione di trasferimento a tempo dis-creto, la quale sarà necessaria per essere implementata a bordo del sistema dicontrollo.

Il collo di bottiglia, per la scelta della frequenza di campionamento Ts èrappresentata dalla velocità massima di comunicazione tra Arduino ed il PCimpostata a 46ms dunque proprio questa sarà la frequenza di campionamentodel sistema, otteniamo così

Ffiltro(z) =b1z + b0

z2 − a1z + a0=

0.4412z − 0.4412

z2 − 1.625z + 0.6284=y(z)

u(z)(39)

da cui è stato possibile calcolare l'uscita del ltro antitrasformando neldominio Z e ricavando la seguente implementazione del ltro a tempo discreto

y(k) = −a1y(k − 1)− a0y(k − 2) + b1u(k − 1) + b0u(k − 2) (40)

y(k) = −1.625·y(k−1)−0.6284·y(k−2)+0.4412·u(k−1)+0.4412·u(k−2) (41)

In Rainbow 2.0 il sistema di controllo di imbardata è stato tarato sperimen-talmente, in quanto solo i valori della massa erano noti con esattezza, ssandol'elicottero su una piattaforma girevole appositamente realizzata per la taraturadel controllo di imbardata Il ltro da noi scelto è quello illustrato in (Figura31).

Figura 31: Struttura per la taratura del controllo di imbardata

Tale struttura ha permesso di vincolare l'elicottero al solo movimento diimbardata così da riuscire a tarare il sistema di controllo senza l'eetto di forzecausate da altri movimenti, per lo meno in linea teorica, in realtà l'elicotterodurante tale fase risente fortemente delle vibrazioni della struttura dovute adun piccolo disassamento dei due rotori e alla non perfetta simmetria dei rotori.

Page 41: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 39

A causa di leggere dierenze tra i due motori la taratura è iniziata con ilcalcolo di un coeciente correttivo per fare in modo che i due motori iniziasseroa muoversi a parità di potenza impartita.

Si sono immediatamente notati gli eetti del controllo, aumentando gradual-mente il termine proporzionale all'errore di velocità, si è evinto che l'elicotteroruota con maggiore facilità in un senso a causa della dinamica dei rotori cheessendo coassiali generano portanze dierenti relativamente alle pale superioried inferiori. Infatti le due lame incontrano aria con densità diversa oltre al fattodi avere una diversa inerzia delle pale dovuta allo stabilizzatore posto sul rotoresuperiore. Tali eetti si ripercuotono sul sistema in particolar modo in fase didecelerazione del rotore superiore, dunque è stata necessaria una precompen-sazione software. Si è vista dunque la necessità di denire due tipi di guadagnoproporzionale: uno positivo ed uno negativo necessari appunto come già appenadetto, a compensare delle dierenze tra i due rotori. Nel caso reale aumentaretroppo i guadagni non si ha solamente una destabilizzazione del sistema, ma siintroduce in primo luogo un'amplicazione signicativa del rumore di misurache si ripercuote fortemente sul controllo , inoltre comporta la saturazione delsegnale di controllo anche per piccole variazioni del segnale di errore.

Per evitare dunque la saturazione del segnale di controllo e la conseguenteapertura dell'anello di controreazione inserendo un controllo sulla saturazionedel segnale limitandone la crescita nel caso superi il valore massimo degli at-tutatori.

Tale legge di controllo è stata tarata e testata su simulink ma poi implemen-tata direttamente sul micro controllore Arduino installato sul velivolo, per farin modo che il calcolo della legge di controllo fosse più rapido e non risentissedei ritardi di comunicazione tra il birotore e simulink.

3.4 Modello dinamica traslazionale lungo l'asse Z

Un modello approssimato della dinamica di quota può essere descritto dallaseguente equazione dierenziale del 2° ordine

M · x = FThrustZ −Mg − FDragZ (42)

Dove x rappresenta la quota del velivolo, nel nostro caso particolare la forzadi Drag essendo proporzionale al quadrato delle x , ed essendo questa di entitàmoderata, può essere trascurata e dunque l'equazione precedente può esserericondotta al seguente sistema di equazioni dierenziali

x1 = x2

x2 = bM ω2

m − g(43)

dove le variabili in gioco rappresentano rispettivamente

x1 quota del velivolo rispetto al sistema di riferimento inerziale, tale valoreè misurabile direttamente tramite il sonar di bordo

x1 = x2 velocità di salita del velivolo rispetto al sistema di riferimentoinerziale , la quale non è misurata direttamente dunque come vedremosarà necessaria la costruzione di un osservatore

M massa del velivolo

Page 42: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 40

b può essere considerato come un valore costante non noto con esat-tezza, ma che per lo studio del modello può essere approssimata comeb ≈ g M

FLibrazionedove con FLibrazionesi intende il controllo minimo nec-

essario anché il velivolo si stacchi da terra. Inoltre è da notare che lavelocità eettiva di rotazione dei motori dipende fortemente dalla caricadella batteria. Si può però pensare di stimarlo in questo modo: conoscen-do il peso del veivolo e la forza di gravità, la FLibrazione sarà pari alla forzadi Thrust essercitata dalle pale nel momento di distacco da terra, tale is-tante è rilevabile tramite la lettura dell'accelerometro che rimarrà nullono a quel momento. Infatti quando il valore di ωmè tale che b

M ω2m = Mg

allora il velivolo è in grado di eguagliare la forza di gravità e restare aduna determinata quota.

ωm =

√ω2

1+ω22

2 è la velocità media dei due motori, intesa come velocitàmedia dei singoli rotori.

Page 43: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 41

3.5 Sintesi del controllo di quota

Per la sintesi del controllo è utile la costruzione di un modello che si avvicinimaggiormente al sistema reale, dunque inseriremo al suo interno una ulterioredinamica, quella che descrive l'andamento di scarica della batteria, abbiamoquindi

x1 = x2

x2 = bM ω2

m − g(44)

Il sistema di controllo, in realtà, non agisce direttamente sulla velocità delmotore, bensì tramite un segnale PWM che viene amplicato da una unità dipotenza ESC esterna e dunque inviato ai motori secondo lo schema in gura 32.

Figura 32: Schema a blocchi sistema di controllo

Dunque possiamo denire un sistema così fattox1 = x2

x2 = bM ω2

m − gwm = 1

τ (−ωm + vαu)(45)

dove v è la tensione realmente misurata ai capi della batteria.Ci troviamo di fronte ad un sistema dinamico con due separate scale tem-

porali, ovvero possiamo individuare un sistema veloce (motore elettrico) ed unolento (quota), per tale ragione possiamo considerare trascurabile la dinamicadei motori, ciò vuol dire che a regime è possibile considerare ωm = 0, ovvero per

τ 1 → ωm = vαupwm (46)

dove upwm sarà la nostra reale variabile di controllo corrispondente al segnalePWM inviato ai motori.

Risulta spesso molto complesso lavorare con sistemi di equazioni grandidunque è utile sviluppare degli approcci che consentano di ridurre la dimen-sionalità del problema. In senso generale, tale riduzione può essere intesa comela possibilità di descrivere la composizione del sistema durante la sua evoluzionetemporale mediante un numero di coordinate rilevanti inferiore al numero dicoordinate reali del sistema completo.Uno strumento formale che consente di op-erare tale semplicazione deve intuitivamente basarsi sull'esistenza di una nettaseparazione intrinseca nelle scale temporali del processo; in altre parole, nellapossibilità di discernere fra eventi veloci ed eventi lenti. Dunque possiamo

Page 44: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 42

costruire la nostra legge di controllo basandoci sul nuovo modello ricavato intale modo e dunque ridotto allo slow manifold , cioè alle sole dinamiche lente,

x1 = x2

x2 = B · u2pwm − g

(47)

dove B = (bv2α2)M .

Perché il sistema risulti asintoticamente stabile si dovrà fare in modo che,tramite la legge di controllo upwm progettata, il sistema sia in grado di mandarea zero l'errore di inseguimento x1 = xref1 − x1 dove x1 è la quota realmentemisurata dal velivolo tramite il sonar di bordo ed xref1 è la quota desiderata.Anché tutto ciò accada sarà necessario fare in modo che anche la velocità delvelivolo vadano zero, ovvero che anche x2 = xref2 − x2 si annulli.

Assumiamo che tale velocità x2 sia realmente misurabile e che le grandezze ingioco b, M, θ, α siano anche esse note, è possibile scrivere una legge di controllodella seguente forma

upwm =1

B· (g + u1) (48)

in tale modo sarebbe possibile con il primo membro bilanciare la forza digravità e tramite il controllo residuo u1 impartire la forza necessaria per salireo scendere di quota, in tale modo la dinamica x2 ∈ [−g , Bu2

MAXpwm − g].Dunque il nostro controllo reale potrà essere cosi costruito

upwm = [(g −K1x1 −K2x2 − δ)1

B]12 (49)

la quale sostituita all'interno del sistema 47 darà luogo a˙x1 = x2

˙x2 = γ(g −K1x1 −K2x2 − δ)− g(50)

dove il termine γ = BB

sarà tale che γ ∈ (1 − ε, 1 + ε) e modella le incertezzeparametriche esistenti sui valori di b, M mentre gli altri due fattori sono v valoredi carica della batteria misurato direttamente e α ≈ 37.7 il fattore di guadagnodato Esc e ricavabile dal numero di giri massimi del motore quando applico latensione massima di esercizio 11.1V .

Deniamo ora un intorno Ω1 come

Ω1 , x ∈ R2, δ ∈ R : g −K1x1 −K2x2 + δ ≥ 0 (51)

In Ω1 la dinamica del sistema a ciclo chiuso è

˙x1 = x2

˙x2 = γ · (g −K1x1 −K2x2 − δ)− g=

˙x1 = x2

˙x2 = (1− γ)g + γδ − γ(K1x1 −K2x2)(52)

Il sistema linearizzato dunque sarà stabile per tutti quei valori di Ki chesono maggiori di zero, infatti come si può notare scrivendo il sistema in formamatriciale

Page 45: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 43

[˙x1

˙x2

]=

[x2

γ · (g −K1x1 −K2x2 − δ)− g

]=

[0 1

−γK1 −γK2

] [x1

x2

]+

[0

g(γδ − 1)

](53)

ovvero ∀K1 > 0, K2 > 0 ossia quei valori di K1 eK2 che garantiscono au-tovalori del sistema a ciclo chiuso con <e(λ) < 0.

Per analizzare la stabilità del sistema complessivo possiamo denire unafunzione di Lyapunov della forma

V (x) = C1x2

1

2+ C2x1x2 + C3

x22

2+C4

2(δ∗ − δ)2 > 0 (54)

dove δ∗ = ( 1−γγ )g e γ,C1, C2, C3, C4 > 0 per costruzione e tale che C1 ·C3 >

C22 per avere che V sia denita positiva.Per il Teorema di Lyapunov anché il sistema risulti asintoticamente stabile

sarà necessario che la V sia denita negativa:

V = (C1x1+C2x2)x2+(C2x1+C3x2)·((1−γ)g−γδ−γ(K1x1−K2x2))+C4(δ∗−δ)2δ(55)

scegliendo C4 = γ posso raggruppare i membri nel seguente modo ottenendo

V = −C2γK1x21−(C3γK2−C2)x2

2+(−C2γK2−C3γK1+C1)x1x2+((1−γ)g−γδ)·(C2x1+C3x2+δ)(56)

in cui deniamoP1 = C2γK1

P3 = C3γK2 − C2

P2 = −C2γK2 − C3γK1 + C1

dunque posso riscrivere

V = −P1x21 − P3 · x2

2 + P2 · x1x2 + ((1− γ)g − γδ) · (C2x1 + C3x2 + δ) (57)

è necessario dunque denire le condizioni sui Pi per cui la V sia denitanegativa.

Trascurando per ora il terzo termine, è necessario che

P1

2> 0,

P1P34≥ P 4

2

4

allora

V ≤ −P1

2x2

1 −P2

2x2

2 + ((1− γ)g − γδ) · (C2x1 + C3x2 + δ) (58)

possiamo dunque scegliere

δ = −C2x1 − C3x2 − ϕ(x, ε)δ , ϕ(x, δ) ≥ 0 (59)

Page 46: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 44

con questa scelta

V ≤ −P1

2x2

1 −P2

2x2

2 + ((1− γ)g − γδ) · ϕ(x, ε)δ (60)

anché la derivata della funzione di Lyapunov risulti denita negativa unapossibile scelta dell'unico termine positivo è che

ϕ(x, ε) ≤ min(P1, P2)

(|(1− γ)g|+ |γδ|+ |δ|)· x

21 + x2

2

4

in tal modo il primo termine a destra della precedente disuguaglianza risultasempre ≤ 1 e l'altro sempre ≥ 0 essendo quadratico.

Ciò implica che

V ≤ −P1

4x2

1 −P2

4x2

2 (61)

Si è ottenuto in tale modo come unico risultato che il sistema risulta es-sere stabile, e che, in ω1, x1 ed x2 convergano a zero (teorema di Barbalat)raggiungendo l'obiettivo pressato, con δ limitato.

Vogliamo a questo punto vedere quale è il suo comportamento nel caso ilsistema parta fuori dalla zona di linearità.Riscriviamo il nostro sistema nella forma seguente

x1 = x2

x2 = σconσ ∈ −σ−, σ+ (62)

Vediamo ora di capire in che modo si comporta il sistema sotto l'azione diun controllo σ costante per capire come comportarci anche fuori da Ω1 denitosopra, dunque integro le equazioni precedenti ricavando :

x1(τ)− x1(0) =∫ τ

0x2(s)ds

x2(τ)− x2(0) =∫ τ

0σ(s)ds

(63)

Poichè desidero che il nostro sistema converga verso l'origine posso pensaredi scegliere x1(τ) = x2(τ) = 0 così da ottenere

x1(0) = −τx2(0)− σ τ2

2x2(0) = −τσ (64)

esplicitando τ in funzione di x2 e σ ottengo τ = −x2(0)σ che posto nella

equazione 64 mi da

x1(0) = +x2

2

σ− x2

2

2σ=x2

2(0)

2σ(65)

Ciò signica che partendo da condizioni iniziali [x1(0), x2(0)] tali che valga la(65) allora con un controllo costante σ arriverò all'origine dopo un tempo paria |−x2(0)

σ | muovendomi su delle traiettorie paraboliche nello spazio di stato.

Page 47: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 45

Figura 33: Traiettorie controllo costante

Dunque come è possibile osservare a anche da gura 33 se mi trovo sulleparabole applicando il controllo opportuno costante pari al massimo o al mini-mo controllo consentito (Bang-Bang) posso arrivare nel minor tempo possibilenell'origine dello spazio di stato.

Assumiamo ora di mantenere δ = cost e B = costEssendo il nostro sistema reale, il controllo sarà limitato a lavorare sia in-

feriormente che superiormente tra due valori dipendenti nel caso specico dallamassima e minima potenza erogabile dai motori.Deniamo dunque il sistema

x1 = x2

x2 = ψ(x)conψ(x) ∈ [−g +B2

minu2min ,−g +B2

maxu2max] (66)

Per tale motivo la nostra zona di lavoro reale è compresa tra le due rette cheindividuano valore del controllo nullo , dunque motori spenti e valore massimodel controllo come è visibile in gura 33 e individuata come Ω2.

Page 48: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 46

Figura 34: Regioni dello spazio di stato

In realtà abbiamo ricavato precedentemente che il nostro sistema resteràsicuramente stabile nella regione individuata dalle condizioni di Lyapunov sullaV ≤ −P1

2 x21− P2

2 x22 regione elittica denita come Ω3 (Figura 34) vediamo in che

modo sia eettivamente possibile applicare il controllo ai ni della stabilità delsistema.

Poichè umin = 50 allora assumiamo |δ∗| ≤ δmax < g

Bmin =bα2v2min

M

Bmax =bα2v2max

M

conΩ3 , x ∈ R2 ∩ Ω2 : V (x, δ)|δ−δ∗=2δmax

= cost. (67)

Il controllo dunque dovrà rispettare tali condizioni:

1. se x /∈ Ω3 allora u =

0 se

x1 ≤ 0 e x2 ≥ x21

2σ−

oppure

x1 ≥ 0 e x2 >−x2

1

2σ+

umax se

x1 ≤ 0 e x2 <x21

2σ−

oppure

x1 ≥ 0 e x2 ≤ −x21

2σ+

e δ = 0

2. se x /∈ Ω3 allora u = [(g −K1x1 −K2x2 − δ) 1B

]12 e δ = −C2x1 − C3x2 −

ϕ(x, ε)δ con ϕ(x, δ) ≥ 0

Page 49: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 47

Dunque facciamo un esempio partendo da un generico punto P anche al di fuoridella zona di linearità , nel nostro caso specico lo prendiamo solo al di fuori diΩ3 (Figura 35). L'idea base è quella di utilizzare un controllo costante pari aσ+ o −σ− e con δ = 0, δ(0) = 0, in maniera tale da convergere all'interno dellaregione Ω3 , a quel punto eettuo uno switching del controllo in maniera taleda usare al suo interno il controllo lineare precedentemente calcolato con δ 6= 0.

Figura 35: Esempio di Switching

Page 50: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 48

3.6 Sintesi di un osservatore asintotico per la stima della

velocità

Come precedentemente accennato, nella costruzione del controllo di quota ab-biamo supposto nota la velocità x2 lungo l'asse Z del BodyFrame , ma talevelocità non è realmente misurabile, dunque possiamo pensare di costruire unosservatore dello stato (Figura 36) partendo dal modello denito nel paragrafoprecedente.

Figura 36: Osservatore asintotico dello stato

Deniamo dunque il vettore delle uscite realmente misurate tramite i sensoridi bordo

~y =

[y1

y2

]=

[Quota

Accelerazione

](68)

come è possibile notare manca la misura della velocità di salita dell'elicottero,necessaria al controllo appena calcolato.

Possiamo allora denire un nuovo sistema che tenga conto delle grandezze ingioco ora introdotte e del fatto che disponiamo della misura dell'accelerometro

d = Bx23 − g = x2 (69)

x1 = x2

x2 = ϕx23 − g

εx3 = −x3 + αum

⇒x1 = x2

x2 = d(70)

ciò vuol dire che espressa in forma matriciale ho

˙x =

[0 10 0

]x+

[01

]d con x ∈ R2 (71)

˙x = Ax+ Bd , C = [1 0] (72)

Page 51: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

3 MODELLAZIONE E CONTROLLO 49

Possiamo quindi creare un semplice osservatore lineare in cui deniamo ξ ilvettore di stima dello stato delle stesse dimensioni dello stato reale del sistema

ξ = Aξ + Bd+ L(x1 − Cξ) (73)

dove L è tale che A + LC sia un polinomio di Hurwitz, ovvero abbia tutteradici a parte reale negativa.

Dunque ponendo L =

[l1l2

]si ha che A + LC =

[l1 1l2 0

]ed il polinomio

caratteristicoPA+LC(λ) = (λ− l1)λ− l2 = λ2 − l1λ− l2 (74)

e dunque per il teorema sul cambio di segno di Cartesio è suciente che(l1, l2) < 0.

Page 52: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 50

4 Implementazione Hardware e Software

Il progetto complessivo è stato implementato sulla piattaforma hardware Ar-duino Uno R3 in linguaggio C/C++ tramite l'apposito tool di sviluppo softwareSketch. L'ambiente di sviluppo di Arduino contiene una serie di strumenti moltoutili alla progettazione ed implementazione del software, i programmi scritti intale linguaggio sono detti sketches e sono salvati con l'estensione .ino . Tra itool molto utili possiamo trovare la message area in basso che restituisce unfeedback in tempo reale degli errori presenti nel codice, inoltre possiede di perse una shell di controllo seriale, da cui è possibile monitorare lo stato del pro-gramma ed eventuali problemi. Dall'altro lato è stato sviluppato un softwaredi ricezione invio ed analisi dei numerosi dati utilizzati nel sistema, tramite ilsoftware Simulink, ambiente graco di sviluppo contenuto in Matlab. Attraver-so di esso è stato possibile ricevere i controllo impartiti tramite il Joystick edinviarli a Raimbow 2.0 , ricevere e analizzare i dati dei sensori e del controlloinviati dall'elicottero ed inne eettuare i tuning del controllo direttamente inreal time, ovvero mentre il velivolo era in funzione. Grazie a tale accorgimentola taratura del controllo è risultata molto veloce in quanto gli eetti del controlloerano direttamente riscontrabili sul comportamento del sistema reale.

4.1 Arduino Software

Il software implementato è stato in parte ripreso dal lavoro di tesi svolto daDaniele Zarelli, ed è stato suddiviso in più le per una maggiore chiarezza im-plementativa ed una più facile ricerca degli errori durante la sua realizzazione.I le fondamentali sono:

Tesi_Loris_Birotor.ino , che costituisce il le di progetto di Arduino;

InOut.cpp , il programma principale da dove vengono richiamate le fun-zioni implementate e contiene la rutine principale che provvede a chiamaretutte le principali funzioni di sistema , scansione sensori, calcolo legge dicontrollo, invio controllo ai motori, invio dati al PC, ricezione dati dal PC;

Acc.cpp: lo sketch dove sono implementate le funzioni per il setting edfunzionamento dell'accelerometro ;

Acc.h: header le dove vengono dichiarate le funzioni e le variabili dell'ac-celerometro e gli include delle funzioni necessarie al suo funzionamento;

Gyro.cpp: lo sketch dove sono implementate le funzioni di setting econtrollo del giroscopio ;

Gyro.h: header le dove vengono dichiarate le funzioni del giroscopio e gliinclude dello stesso;

Si darà ora una breve descrizione del funzionamento del software, per infor-mazioni più dettagliate si rimanda alla nota bibliograca [4] .

La prima fase è costituita da una funzione di setup che denisce i parametriprincipali della comunicazione tra l'elicottero e il PC, ovvero l'attivazione deicanali seriali Rx-Tx e il setting della velocità di comunicazione caratterizzata

Page 53: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 51

nel nostro caso da un Baud Rate di 38400 bits implementata tramite la chiamata

della funzione Serial.begin(38400).Questa è la velocità massima con la quale è , possibile comunicare in quanto

per velocità superiori , le prestazione del sistema si degradano poichè la perditadi pacchetti diventa maggiore. Inoltre sono attivate le principali porte di co-municazione tra cui i Pin A4-A5 (Figura 13) per l'invio dei segnali necessariall'interrogazione del giroscopio e dell'accelerometro e il canale digitale 7 perl'interrogazione del Sonar.

Dopo aver denito le caratteristiche della comunicazione Raimbow 2.0 si as-sicura che il PC sia in ascolto tramite la funzione estabilishContact(), dunquedopo avere ricevuto l'aknoledgement da parte del PC, il sistema è in grado diiniziare e sincronizzare la propria comunicazione. Tale fase è sicuramente unadelle più delicate, in quanto è necessaria una perfetta sincronizzazione anchéla ricezione da parte delle due periferiche avvenga correttamente.

void establishContact()while (Serial.available() <= 0)

digitalWrite(LedPin2,HIGH);Serial.write('A');digitalWrite(LedPin2,LOW);delay(300);

while (Serial.available() <= 0)

Serial.write(LEFTBYTE(controllo));Serial.write(RIGHTBYTE(controllo));

A questo punto il programma eettua l'inizializzazione dei sensori e la lorotaratura, infatti supponendo che al momento dell'accensione il velivolo sia fer-mo e in piano sul terreno, la funzione sensorZero() campiona i primi 100 valoridei sensori e ne calcola la media e vengono prese tali misure come zeri di rifer-imento. Relativamente al sonar, esso viene inizializzato ad un valore base di25cm di altezza per sopperire alla possibilità di avere valori erronei e molto altiprima dell'inizio del volo: tali funzioni sono sviluppate nella chiamata alla fun-zione filterSetup().

Page 54: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 52

void sensorSetup()//Impostazioni Accacc_init(Dati);

//Impostazioni Gyrogyro.init();

//Impostazioni Sonar sonarSetup();

/// void sonarSetup()pinMode(SonPin, INPUT);PastSonarValue = (boolean) ;digitalRead(SonPin);//Inizializzazione del SonarlterSetup();

void lterSetup()//Inizializzazione ltroSonar Filter_y[6]=25;

void sensorZero()for (int j= 0; j < 100; j=j+1)//lettura AccelerazioneaccRead(&Ax,&Ay,&Az,Dati); //Lettura Giroscopiogyro.GyroRead(&Gx,&Gy,&Gz); //Settaggio Filtro Gyrogyro.setFilterBW(BwGyro);Zero[0]+=Ax; Zero[1]+=Ay;Zero[2]+=Az; Zero[3]+=Gx;Zero[4]+=Gy; Zero[5]+=Gz;

for (int i= 0; i <= 5; i=i+1)Zero[i]/=100; //Inizializzazione Accelerazione asse z per tener conto dellagravitàZero[2]+=1000; //Inizializzazione comando di YawPidYawOut=512;//centrato

Il software completa poi l'inizializzazione delle restanti porte come i canali PWMper il controllo dei motori di bordo. La funzione motorSetup() si occupa di in-izializzare i motori ed associa ai pin digitali identicati come MotPin1 e MotPin2la corrispondente uscita digitale 10 e 11, che sarà dunque il canale di uscita delsegnale di controllo PWM.

A questo punto il programma aspetta 500ms , tempo necessario all'atti-vazione delle porte e all'inizializzazione dei sensori e dei motori.

Il programma entra ora nel Mainloop che contiene la routine principaleeseguita da Raimbow 2.0, la quale può essere suddivisa in due sotto blocchi.

Nella prima parte della routine si eettuano le letture dei sensori, il calcolodei controlli di imbardata e la movimentazioni degli azionamenti.

Page 55: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 53

Nel secondo ciclo si eettua l'invio e la ricezione dei dati dal computer.

Il primo passo è la lettura di tutti i dati disponibili dai sensori, prima tramite lafunzione DoSonar() viene letto l'ultimo dato disponibile dal Sonar poi tramitela chiamata della funzione readSensorIn() vengono letti i dati degli altri duesensori ed ad essi viene sottratto l'oset calcolato nella fase di avvio del softwaretramite sensorZero(). I dati sono poi normalizzati con valori compresi tra 0 a100 necessari per l'implementazione dei controlli di imbardata . A tale puntoviene chiamata la funzione startUp() che provvede a vericare se qualcuno deitasti del Joystick è premuto o meno al ne di assegnare determinate funzionitra cui quella di accensione motori ottenuta tenendo premuto il pulsante 5 delJoystick.

Ad ogni ciclo viene chiamata la funzione Y awcontrol() la quale si occupa delcalcolo del valore del controllo in base ai valori letti dai sensori e dunque in cuiè implementato eettivamente il controllore ed il suo sistema anti-saturazione.Tale funzione è stata progettata con lo scopo di non mandare in saturazione ilvalore del controllo , infatti è limitato ad agire in un determinato range di valori, in modo tale da poter evitare il più possibile la saturazione degli attuatori edunque lo stallo del sistema. Anche il valore del Throttle è stato limitato perevitare lo stallo dei motori , il segnale del PWM consente di pilotare gli azion-amenti tramite valori compresi tra [0, 180] , il range di eettivo funzionamentodei motori è invece compreso tra [50− 179], uscendo al di fuori di tali valori siha un blocco delle ESC. Dunque l'idea di base è stata quello di far lavorare imotori sucientemente lontani dal livello di saturazione imponendo un valore diThrottle = 165, e facendo variare il controllo con una escursione ∆umax = 100. In tale modo il comportamento del sistema è risultato molto stabile e robustoad ogni valore di velocità impartito.

A questo punto del ciclo , viene chiamata la funzione MoveMotor() che sioccupa appunto di impartire ai motori i valori risultanti dal calcolo del con-trollo e dalla potenza impartita tramite il Throttle. Tale funzione richiama alsuo interno la funzione jawMotor(Throttle, ∆u) che si occupa del calcolo dellepotenza eettiva da impartire ai motori tenendo conto della potenza attualeimpartita tramite il controller e del valore del controllo appena calcolato. Sonostate necessarie alcune funzioni di monitoraggio e rettica del controllo , anchéil valore di potenza calcolato non uscisse fuori dai margini di funzionamento delsistema, dunque si è cercato di evitare lo stallo dei motori imponendo delle con-dizioni su di essi . In tale modo il funzionamento del sistema è risultato piùlineare e prevedibile in quanto si è anche ridotto l'eetto degli errori di invio ericezione dei pacchetti dati.

Page 56: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 54

void readPcIn()//Converte i Dati da oat a intintToFloat();

//Lettura dati da matlabif (Serial.available()) //Lettura Segnali da Serialefor(int i=0; i <DimByteBuer; i=i+1) Buer1[i]=Serial.read(); //Controllo di Bontà del segnalefor(int i=0; i <DimByteBuer; i=i+1)if(Buer1[i]==97 & Buer1[i+1]==0 & Buer1[i+2]==97 & Buer1[i+3]==0& Buer1[i+(NumPcIn+2)*2]==98& Buer1[i+(NumPcIn+2)*2+1]==0 & Buer1[i+(NumPcIn+2)*2+2]==98& Buer1[i+(NumPcIn+2)*2+3]==0)for(int j=0; j <(NumPcIn*2); j=j+1) Buer2[j]=Buer1[i+j+4]; break;

//Unione dei singoli Bytefor(int i=0; i < NumPcIn; i=i+1)DatiInt[i+NumSensorIn+1]=uint16(Buer2[i*2],Buer2[i*2+1]);

//Conversione Dati da Interi a FloatoatToInt();

La seconda parte riguarda le fasi di invio e ricezione dati. La funzione readPcIn()si occupa di ricevere i segnali inviati dal computer e eettuare la scansione deglistessi. Il protocollo di sincronizzazione costruito prevede che la lunghezza diogni messaggio debba essere sempre la stessa ovvero 8 bit di cui uno di stop .Essendo i dati inviati a 16 bit è necessario scomporre e ricostruire i pacchetti adogni invio e ricezione per questo è stato importante sincronizzare perfettamentela comunicazione tra le due periferiche. Nel caso in cui non si riscontri tali pro-prietà nel messaggio lo stesso viene scartato.La funzione sendMessage() si occupa dell'invio dei dati al computer. Prima diogni invio i dati provenienti dai sensori sono trattati, viene inizialmente chia-mata la funzione mapSensorIn() che si occupa di mappare i segnali da inviarein valori compresi tra [0, 1023] ovvero 2 bytes . Come già accennato, per in-viare un valore a 16 bit bisogna scomporlo in due bytes eettuando uno shiftdei 8 bit per volta e quindi eettuare una operazioni duale per riottenere ilvalore originale. Tali funzioni sono richiamate per ogni valore inviato e sonoshift16(x) = (x 8) e zero16() = x& 0xFF .

La procedura SendMessage() si occupa invece di inviare i dati al PC inmaniere del tutto equivalente alla precedente.

Page 57: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 55

void sendMessage()//Mappatura per invio dati a matlab ed Inizializzazione del vettore DatioatmapSensorIn();

//Dati diversi da gracare in simulinkDatiInt[8]=BatteryStatus;DatiInt[12]=DatiFloat[11]; //Per lo YawDatiInt[0]=666; // Syncro Check 136|136

//Invio segnali Analogicifor(int i=0; i <= NumInput; i=i+1)Serial.write(shift16(DatiInt[i]));Serial.write(zero16(DatiInt[i]));

4.2 Simulink Software

Il software implementato per il progetto dal lato PC è stato interamente svilup-pato in ambiente Matlab e Simulink.

Simulink è un ambiente per la simulazione e la progettazione Model-Basednon solo per sistemi dinamici ed embedded ma per moltissimi altri settori. Mettea disposizione un'interfaccia graca interattiva e una serie di toolbox e libreriepersonalizzabili per sviluppare, simulare, implementare e testare diverse cate-gorie di sistemi variabili nel tempo, comprendenti tematiche quali comunicazionielettriche, controlli, elaborazione di segnali, video e immagini.

Figura 37: Suddivisione del software Simulink

Lo schema a blocchi realizzato per il nostro progetto si può suddividere in treparti distinte (Figura 37). Nella prima parte si acquisiscono i segnali provenientidal controller remoto i quali sono manipolati per poi essere inviati al controllorea bordo dell'elicottero.La seconda parte composta principalmente da un solo blocco, contiene la fun-zione principale implementata in ambiente Matlab. Tale funzione si occupadella sincronizzazione, della trasmissione e ricezione dei dati tra il computer el'Arduino. Il suo compito è in oltre di analizzare la bontà del segnale ricevuto

Page 58: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 56

per ridurre al minimo gli errori di invio e ricezione dati.Inne la terza ed ultima parte è dedicata al monitoraggio dei segnali provenientidai sensori e dagli attuatori. In questa sessione è possibile analizzare oltre alcomportamento dei controlli implementati anche le letture provenienti dall'ac-celerometro, dal giroscopio dal sonar e dalla lettura della stato della batteria.Verranno ora analizzati in maggiore dettaglio i singoli sottosistemi realizzati inambiente Simulink di cui si riporta lo schema a blocchi completo (Figura 38).

Figura 38: Schema a blocchi completo del sistema Simulink

Page 59: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 57

4.2.1 Blocco 1 Joystick

Il blocco PilotJoystick (Figura 39) acquisisce dalla porta seriale i comandi dellacloche e del potenziometro del controller: beccheggio, rollio imbardata e potenzadei motori.

Figura 39: Joystick Block

Il blocco Buttons analizza quale dei pulsanti è stato premuto: i tredici pul-santi vengono acquisiti sotto forma di un valore numerico. Ciascun numero èunivocamente associato ad un singolo bottone ed a sua volta associato ad unaspecica funzione di Raimbow 2.0 .

Il blocco convert mappa la scala di valori dei segnali del controller da -1 a+1 in una scala di valori che va da 0 a 1023. Tale conversione è stata eseguitaper ottenere valori a due bytes da poter poi inviare tramite Xbee al velivolo.Questa operazione è stata eseguita per ogni segnale analizzato così da facilitarela ricezione e l'invio dei segnali tra il Simulink e l'Arduino. La conversione ècosi eseguita (Figura 40).

Figura 40: Conversione valori Joystick

Il blocco Trim-Sensibility (Figura 41) permette tramite appositi slide di mod-icare la sensibilità del controller a proprio piacimento e dunque eettuare unaccurato trim e a seconda delle esigenze è possibile variare singolarmente lapotenza dei singoli comandi. Modicando le variabili rollT , pitchT e yawT sipuò trovare un buon assetto di volo. Viene riportato di seguito il contenuto delblocco Trim-Sensibility.

Page 60: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 58

Figura 41: Trim Sensibility

4.2.2 Blocco 2 Serial in-out

Il blocco Serial In-Out è un blocco S-function che richiama il le AnalogInOut.mimplementato in ambiente Matlab (Figura 42).

Figura 42: Serial In-out block

Il blocco riceve in ingresso i segnali provenienti dal blocco Joystick e restitu-isce i segnali ricevuti dall'Arduino a bordo di Rainbow 2.0. Tutte le operazioni

Page 61: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 59

che svolge il le AnalogInOut.m sono in sincronia con l'Arduino tramite un'ap-posita funzione di sincronizzazione realizzata che si attiva nella fase iniziale diinvio dati .

Figura 43: S-function switching

La S-function è suddivisa in quattro funzioni (Figura 43):

la prima d'inizializzazione viene richiamata solo una volta all'avvio diSimulink

la seconda e la terza sono le funzioni richiamate in loop no al ne con-tatto con l'elicottero che svolgono rispettivamente l'invio e la ricezione deimessaggi tra il computer e l'Arduino.

L'ultima funzione è quella di Terminate che viene richiamata una solavolta quando si termina la comunicazione.

Page 62: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 60

Figura 44: Setting iniziale e sincronizzazione dati

Nella funzione di setup (Figura 44) viene stabilita la comunicazione tra Mat-lab e la porta seriale eettuando tutti i settaggi necessari.La prima operazione importante è quella di sincronizzazione: l'Arduino invia ilcarattere a al computer, se quest'ultimo riceve il carattere inizia il dialogo traRainbow e il computer altrimenti comparirà una schermata con scritto Errorcollecting data e il simulink non eettuerà il suo loop.

Page 63: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 61

Figura 45: Apertura segnale

Nella seconda funzione vengono inviati i dati all'elicottero insieme a segnalidi apertura e chiusura del messaggio (Figura 45 e 46), quest'ultimi servirannoper eettuare un controllo di bontà del segnale stesso. Se il messaggio che arrivanon passa il check viene scartato.

Page 64: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 62

Figura 46: Invio e ricezione dati

4.2.3 Blocco 3 Analisi dati

Il monitoraggio dell'elicottero avviene anch'esso in ambiente Simulink. All'usci-ta del blocco Serial In-Out un demux eettua la scissione dei segnali provenientida Raimbow 2.0 in modo tale da poter essere monitorati separatamente.Il primo segnale monitorato è il segnale di sincronismo inviato da Arduino, intale modo è possibile rendersi immediatamente conto se la sincronizzazione èavvenuta correttamente.

Il secondo segnale del blocco proviene dal sonar: tale segnale prima di esseregracato viene ltrato i maniera da annullare gli spike dovuti al rumore.

I segnali successivi sono relativi all'accelerometro. Le accelerazioni lungo itre assi vengono inviate dal microcontrollore con valori tra 0 e 1023, dunque ilblocco convert eettua una rimappatura del segnale così da ottenere una lettura

Page 65: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 63

dei segnali in ms2 . Anche i segnali dell'accelerometro vengono opportunamente

ltrati nel blocco ltro secondo lo schema in gura 47.

Figura 47: Filtraggio e Conversione

Successivamente i segnali provenienti dall'accelerometro e dal giroscopio ven-gono gracati. Anche tali dati vengono prima convertiti e poi ltrati opportu-namente come nel caso dei segnali dell'accelerometro. La velocità angolare chegiace sul piano orizzontale rispetto all'assetto dell'elicottero viene utilizzata peril calcolo del controllo d'imbardata. Tale quantità viene gracata con il segnaledi controllo di Yaw per constatare l'eettiva funzionalità del controllo. Gli altrisegnali gracati sono la potenza dei singoli motori , il valore attuale di scaricadella batteria ed il bottone azionato dal Joystick .

4.3 Modello per il controllo di quota

Il controllo di quota come già accennato è stato realizzato solamente in viateorica poiché il velivolo non è in grado di librarsi in volo a causa di problemicon la fornitura delle pale di dimensione adeguata e dei motori della giustapotenza. Nonostante ciò , si è deciso comunque di procedere con la costruzionee l'analisi del sistema di controllo.

Anche tale modello è stato realizzato in Simulink seguendo la strutturaillustrata in gura 48.

Complessivamente il modello è costituito da due blocchi fondamentali, ilblocco superiore in cui è contenuta la dinamica verticale del nostro sistema,calcolato nel capitolo precedente, e la legge di controllo, mentre nel secondoblocco è contenuto l'osservatore dello stato.

Page 66: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

4 IMPLEMENTAZIONE HARDWARE E SOFTWARE 64

Figura 48: Modello per il controllo di quota

A destra dei due blocchi principali troviamo una serie di scope per il controllodelle variabili ed il calcolo degli errori di stima e di inseguimento. Al centroinvece troviamo il riferimento di quota risultato della somma di diversi gradiniattivati durante la simulazione, ad essi sono stati aggiunti inoltre, per vericarela robustezza del modello anche dei disturbi costanti e dei disturbi ad altafrequenza.

Page 67: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 65

5 Risultati

Vediamo ora i risultati ottenuti mediante l'applicazione dei controlli preceden-temente illustrati. Il controllo di imbardata è stato applicato al sistema reale ecome già accennato implementato direttamente a bordo del microcontrollore, alcontrario il controllo di quota è stato simulato in un modello Simulink apposi-tamente creato, in quanto per problemi di progettazione esterni al nostro lavoro, l'elicottero non è in grado di sviluppare portanza suciente alla librazione.Vediamo dunque dapprima l'applicazione pratica del controllo di imbardata edi sui risultati, poi vedremo il comportamento del controllo di quota nel modellosimulato.

5.1 Applicazione del controllo di imbardata

Vediamo ora i risultati ottenuti tramite il monitoraggio del velivolo durante unasessione di volo.

L'obiettivo del controllo d'imbardata come già discusso, è annullare la ve-locità di rotazione dell'elicottero per impedirne l'avvitamento durante il vo-lo , dunque vincere le coppie dovute alla rotazione dei rotori bilanciandoliimponendo una determinata dierenenza di velocità tra le due eliche.

Iniziamo analizzando i dati ricevuti dai sensori e sui quali si basa il calcolodella legge di controllo.

Page 68: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 66

Figura 49: Dati accelerometro durante la sessione di lavoro

Page 69: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 67

In gura 49 possiamo vedere l'andamento delle accelerazioni lette dall'ac-celerometro triassiale montato a bordo del velivolo. Come si può notare i valoririlevati dal giroscopio prima della messa in moto del velivolo sono molto prossimiallo zero ciò vuole dire che la taratura dei sensori è avvenuta in modo corretto.Al momento dell'accensione dei motori intorno al trentesimo secondo a partiredall'inizio della simulazione, si possono osservare delle forti oscillazioni. Tali os-cillazioni non sono dovute a disturbi elettromagnetici dovuti ai campi generatidai motori, in quanto il sensore BMA180 sono dotati di un ltro digitale del sec-ondo ordine appositamente attivato ed impostato per ottenere il minimo valoredi larghezza di band raggiungibile ovvero 10Hz. Inoltre i due sensori sono statianche schermati tramite un'apposita gabbia metallica per ridurre ulteriormenteeventuali disturbi residui, dunque i valori letti sono i valori reali di accelerazionelungo i tre assi, indotti dalle forti vibrazioni dovute proprio alla rotazione dellepale. Al momento tali dati non sono utilizzati per il controllo reale di quotapoichè ancora non implementato sicamente, ma nel momento in cui dovran-no essere utilizzati sarà necessario eettuare un ulteriore ltraggio del segnaleanchè non si ripercuota sul controllo.

Page 70: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 68

Figura 50: Dati Giroscopio

Page 71: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 69

Allo stesso modo anche i dati provenienti dal giroscopio, anche se oppur-tunamente ltrati tramite il ltro digitale interno al giroscopio a causa dellecontinue vibrazioni sono abbastanza rumorosi come si può osservare dalla gu-ra 50. Analizzando l'andamento rispetto ai tre assi si può osservare l'inuenzaattenuante del controllo sulle velocità angolari rilevate lungo l'asse Z. Gli spikedi segnale rilevati lungo i tre assi, è stato appurato che sono frutto di erroridi trasmissione dati. Infatti nonostante sia stato implementato un controllo diqualità del segnale all'invio e alla ricezione di ogni pacchetto e nonostante Xbeecontenga un controllo a ridondanza di bit appunto per accertarsi del correttoinvio e ricezione dei dati, persistono. Probabilmente gli errori di comunicazionisono riconducibili al metodo di funzionamento di simulink, il quale non essendostato concepito come un sistema real-time, non è in grado di gestire una comuni-cazione oltre determinate velocità dunque a fronte di un carico di lavoro eccessivoinvia/interpreta dati in modo errato, per tale motivo nè il controllo software nèil controllo di Xbee sono in grado di impedire tali errori. Questo è stato ancheuno dei motivi per cui si è deciso di inserire direttamente il controllore all'in-terno dell'elicottero, in tale modo si limitano al minimo i problemi dovuti allaperdi di pacchetti, ricevendo costantemente dal PC solamente i controlli remotidel Joystick, dunque elaborando tutto onboard.

Tutti i dati ricevuti dai sensori sono opportunamente ltrati per essere vi-sualizzati ed analizzati in modo piu chiaro, infatti tali dati sono ricevuti ogni46ms, ovvero un ciclo macchina del microcontrollore, dunque a circa 22Hz(Figura 51).

Figura 51: Filtraggio del segnale di imbardata

Nella gura 52 è possibile osservare l'andamento del segnale di riferimento(Throttle) ricevuto dal Joystick, il quale impone una potenza base ai motori.L'asse centrale mostra rispettivamente la risposta dei due motori non ltra-ta una in rosso l'altra in blu, che avremo modo di osservare in detteglio piùavanti. Come si vede i controlli dei due motori agiscono in direzione oppostae come accennato in precedenza per bilanciare la diversa portanza dovuta alladiversa densità dell'aria incontrata durante la rotazione da parte dei due eliche,

Page 72: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 70

uno dei due motori lavora ad una velocità leggermente inferiore dell'altro, inquanto come già accennato è stato necessario ridurre il numero di giri manual-mente anchè le controcoppie generate dalle eliche fossero già pre-bilanciato.In tale modo riducendo di 15 unità il valore di potenza impartito al motoreinferiore rispetto al riferimento del throttle. Inne l'ultimo asse in basse mostral'andamento della velocità di rotazione misurata dal giroscopio, come si puòosservare il cambio di velocità impartito dal controller, comporta uno sbilan-ciamento momentaneo dei rotori, dunque il controllo reagisce prontamente eriporta la velocità di imbardata a zero.

Page 73: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 71

Figura 52: Throttle, Controllo Motori , Imbardata

Page 74: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 72

Il controllo scelto è stato implementato come calcolato nell'equazione 36scegliendo i seguenti valori dei guadagni

α = 90;

β = 370.

Analizziamo ora in dettaglio l'inseguimento del riferimento di imbardata Figura53. Il sistema reagisce prontamente alla variazione del riferimento, modica lapotenza impartita ai due motori in modo tale che il velivolo inizi a ruotare eraggiunga una velocità proporzionale a quella impartita dal Joystick. Appena ilriferimento torna a zero il controllo agisce sulla tensione impartita ai due motoritramite la variazione del Duty Cycle del segnale di controllo PWM e lavorandoin maniera speculare sui due rotori stabilizza l'elicottero annullando la velocitàdi rotazione.

Page 75: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 73

Figura 53: Inseguimento del riferimento di imbardata

Page 76: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 74

Per mettera alla prova le capacità stabilizzanti del controllo il sistema èstato disturbato esternamente l'utilizzo di un ventilatore agente sul timone dicoda che impartiva una forza circa costante . Il comportamento del controllo èstato quello di opporsi ed adattarsi alla forza esterna trovando una velocità dibilanciamento dei due motori annullandone di fatto l'eetto (Figura 54).

Page 77: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 75

Figura 54: Reiezione di un disturbo costante

Page 78: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 76

Quando si impartisce potenza massima ai motori il controllo diventa leg-germente meno performante in quanto come si puo osservare al secondo 176in gura 55 il controllo del motore inferiore non agisce in maniera opposta almotore superiore. Tale comportamento è dovuto all'azione di un ltro apposita-mente costruito per evitare lo stallo dei motori. Infatti nel caso venga impartitaalla ESC un controllo PWM superiore a 180 il motore va in stallo e blocca ilsuo moto, dunque tale ltro nel caso rilevi un superamento delle soglia massimadi controllo consentita lascia inalterato il valore del controllo, in tale modo siè potuto superare tale problema che portava all' innesco di oscillazioni del sis-tema. Il controllo anche se in maniera meno performante è comunque in gradodi portare a zero l'errore di inseguimento.

Page 79: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 77

Figura 55: Controllo a massima potenza

Page 80: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 78

Come accennato all'inzio del capitolo, la variazione del riferimento di poten-za comportano uno scostamento del sistema dal punto di equilibrio, nelle dueimmagini successive possiamo vedere il passaggio dell'elicottero da Alta a bassapotenza ed il passaggio opposto. Come si può osservare il controllo è in gradosi stabilizzare in brevissimo tempo il sistema (Figura 56).

Figura 56: Passaggio da Alta a Bassa velocità di rotazione e da Bassa a media

Anche nel caso di controllo di imbardata il processo di scarica della batteriainuenza fortemente il comportamento del sistema anche se non a tal puntoda comprometterne la stabilità. Il sistema in fase avanzata di scarica è statosottoposto a tre disturbi manuali esterni, come si può osservare dalla Figura 57

Page 81: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 79

il controllo fatica a stabilizzare il sistema che rimane soggetto a piccole oscil-lazioni intorno allo zero, inoltre al contrario del caso in cui la batteria aveva unabuona carica, adesso il sistema ha bisogno di numerosi azioni di correzione permantenere l'elicottero fermo.

Page 82: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 80

Figura 57: Risposta a disturbi esterni con batteria scarica

Page 83: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 81

5.2 Applicazione del controllo di quota

Il controllo di quota è stato realizzato puramente in via simulativa in quantocome già accennato il velivolo non è in grado di sviluppare potenza sucientea librarsi in volo. Lo scopo di tale controllo è quello di far mantenere unadeterminata quota al velivolo impartita ad esempio tramite il controllore remoto.Il problema fondamentale è la dipendenza della portanza sviluppata dalla elichedalla carica della batteria, infatti man mano che la batteria si scarica il controllonecessario per mantenere il velivo in quota varia, in quanto ad un il valore ditensione eetivamente impartito ai motori scende con il decrescere della caricadelle celle Lipo.

Il controllo è stato implementato secondo la legge di controllo 49 ricavata inprecedenza con i seguenti valori di guadagno

K1 = 40;

K2 = 15.

Analizzeremo contemporaneamente i risultati ottenuti tramite la retroazionedall'uscita e tramite la retroazione dallo stato, in tale modo sarà possibilemostrare quanto i due risultati siano simili tra loro e dunque quanto buonasia la stima di velocità ricavata dall'osservatore dello stato.

Come è possibile osservare il sistema soggetto a variazioni a gradino delriferimento risulta essere stabile e raggiunge in modo rapido e preciso la quotadesiderata. Nella gura 58 è possibile osservare rispettivamente i valori dellaquota , l'errore di inseguimento ed il controllo applicato.

Vediamo ora nel dettaglio le prime due variazioni del riferimento ed larispettiva risposta dei due sistemi.

Page 84: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 82

Figura 58: Simulazione controllo di quota complessiva

Page 85: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 83

Figura 59: Dettaglio 1 controllo di quota

Page 86: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 84

Figura 60: Dettaglio 2 controllo di quota

Come si può osservare la dierenza tra le risposte del sistema retro azionatosupponendo di poter misurare la velocità di salita del velivolo e quello del sistema

Page 87: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 85

retro azionato mediante l'uso dell'osservare è realmente poca (Figura 59 e 60),dunque l'osservatore è in grado di stimare in maniera corretta la grandezzanon direttamente misurabile, come è possibile vedere anche dalla gura 61 chemostra l'andamento dell'errore di stima di tale grandezza non misurabile.

Figura 61: Errore di stima della velocità di salita del velivolo

Come già accennato , sono stati inseriti nel sistema dei disturbi costantiper simulare eventuali errori di modellazione e disturbi ad alta frequenza persimulare disturbi sulla catena di lettura dei sensori, in tale modo si è potutatestare l'eettiva robustezza del sistema a fronte di tali disturbi . Infatti come èpossibile notare il sistema sembra quasi essere del tutto indierente all'azione ditali ingressi (Figura 62), è possibile soltanto osservare una leggera uttuazionedella quota in quanto il controllo non riesce a mandare esattamente a zerol'errore di inseguimento (Figura 63).

Page 88: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 86

Figura 62: Inseguimento di quota con disturbi

Figura 63: Errore inseguimento di quota con disturbi

Nella realtà, naturalmente, il valore del controllo dovrà essere limitato entroun certo range di lavoro e non dovrà scendere al di sotto dello zero. Dunquesarà necessario mappare i valori calcolati dal controllo in un determinato rangedi variazione del segnale di controllo PWM che nel nostro caso varia tra 0 e 180.Il valore verso cui converge in controllo sarà la potenza necessaria ad equilibrarela forza di gravità che spinge l'elicottero verso il basso, ovvero coincidera propriocon la costante di librazione. Quindi conoscendo il peso del veivolo e l'accel-erazione di gravità , misurando tramite i sensori di bordo il momento in cuil'elicottero inizia a staccarsi da terra è possibile conoscere la potenza necessariaai motori per equilibrare la forza peso e dunque possiamo ricavare una stima

Page 89: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

5 RISULTATI 87

della costante prima denita come b ≈ g MFLibrazione

. Si dovra dunque imporretale valore pari al valore di equilibrio calcolato dal controllo e le variazioni ,positive e negative saranno dunque fatte a partire da quello zero.

Come accennato all'inizio di questo paragrafo è possibile vedere come l'azionedel controllo compensi la carica della batteria anche il velivolo resti alla quotadesiderata. Ai ni di rendere questo visibile è stato però necessario eettuareuna simulazione più lunga in maniera tale da rendere tangibili gli eetti discarica della batteria e dunque la relativa compensazione da parte del controllo(Figura 64).

Figura 64: Compensazione del controllo per la scarica della batteria

Come si può notare stato di carica della batteria, ovvero la tensione misuratain uscita da essa decresce linearmente nel tempo con una legge di aggiornamentoθ = −0.0001 ricavata come approssimazione della reale dinamica di scaricamisurata direttamente sull'elicottero (Figura 65).

Page 90: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

6 CONCLUSIONE E SVILUPPI FUTURI 88

Figura 65: Dinamica di scarica della batteria misurata realmente e la suaapprossimazione lineare.

Come si puà notare infatti, il 90% del processo di scarica della batteria èapprossimabile linearmente con una discreta precisione.

Al diminuire del voltaggio il valore del controllo cresce lentamente in modonon lineare poichè la dipendenza dalla velocità è quadratica (Figura 64), in talemodo l'elicottero è in grado mantenere la propria quota compensando l'eettodi scarica.

6 Conclusione e sviluppi futuri

I test eseguiti nel capitolo precedente sono serviti a dimostrare il corretto fun-zionamento del controllo di imbardata implementato realmente sull'elicotteroe del controllo di quota implementato momentaneamente solo in via simula-tiva. Per ciò che riguarda gli sviluppi futuri, c'è sicuramente come obiettivofondamentale far volare il velivolo.

Figura 66: Birotore in volo

Page 91: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

6 CONCLUSIONE E SVILUPPI FUTURI 89

Ciò comporta la sostituzione dei rotori con delle nuove pale con portanzasuperiore, oppure la sostituzione delle unità di propulsione, con dei motori chesiano in grado di sviluppare maggiore potenza e maggior numero di giri al min-uto, in tale modo pur lasciando inalterate le attuali eliche il velivolo potrebbeessere in grado di staccarsi da terra.

Il micro controllore è già stato predisposto per l'inserimento del motore dicoda, che nel caso di elicotteri birotore non servirebbe a stabilizzare la rotazionedell'elicottero bensì a comandarne il beccheggio. Inoltre tale motore sarebbe digrande utilità per ciò che riguarda il mantenimento dell'assetto di volo paralleloal terreno. Infatti anche se il bilanciamento dei carichi è stato studiato per equi-librare il più possibile il velivolo, si è notato un leggero sbilanciamento di pesoverso il posteriore, nonostante sia stata posta la batteria che costituisce il caricounitario maggiore, il più avanti possibile. Un controllo di beccheggio quindiservirebbe non solo all'inseguimento del riferimento proveniente dal controllerremoto, ma sarebbe anche utile al mantenimento dell'assetto di volo anche incaso di sbilanciamento dei carichi o a causa di disturbi esterni. Inne , ultimoma non meno importante controllo, potrebbe essere quello di rollio. Infatti l'eli-cottero a causa di una non perfetta equilibratura degli assi di rotazione e dellepale, è molto soggetto a vibrazioni che potrebbe portare alla perdita dell'assettodi volo sia orizzontale che longitudinale, inoltre anche in questo caso il controllodi rollio servirebbe a prevenire e bilanciare eventuali spostamenti del carico sulvelivolo e naturalmente disturbi esterni.

Figura 67: Sviluppo futuro

Uno sviluppo futuro interessante potrebbe sicuramente essere quello di sos-tituire l'attuale sistema di controllo con le unità Stm, questo garantirebbe senzaombra di dubbio prestazioni di comunicazione , processamento dati e dunque dicontrollo migliori. Inoltre essendo la periferica ST32F4 provvista di un proces-sore DSP integrato , il sistema sarebbe in grado di montare un Webcam per lavisione e dunque riconoscimento ed inseguimento di oggetti nello spazio.

Page 92: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

6 CONCLUSIONE E SVILUPPI FUTURI 90

Figura 68: Visione

Page 93: Realizzazione e controllo di un elicottero birotorecontrol.disp.uniroma2.it/.../Tesi/loriscerroni/TesiLorisCerroni.pdf · 3.2 Modello dinamica rotazionale rispetto all'asse Z . .

RIFERIMENTI BIBLIOGRAFICI 91

Riferimenti bibliograci

[1] Bramwell's Helicopter DynamicsGeorge Done, David Balmford.

[2] Autonomous Helicopter Modelling and ControlUlrik B. Hald, Mikkel V. Hesselbæk, Jacob T. Holmgaard

[3] Combining fuzzy and PID control for an unmanned helicopterEdgar N. Sanchez, Hector M. Becerra.

[4] Progettazione e realizzazione di un elicottero birotore con autopilotaDaniele Zarelli

[5] Applied Nonlinear ControlJean-Jacques Slotine , Weiping Li.

[6] The Dynamics of Slow ManifoldsFerdinand Verhulst , Taouk Bakri, Mathematic Institute University ofUtrecht

[7] Control and Stability analysis of an autonomous helicopterDepartamento de Ingeniería de Sistemas y Automática Universidad de Sevil-la (Spain)A. González, R. Mahtani, M. Béjar, A. Ollero