Fountain RC boat: model and simulation [1/2]

1

Il seguente articolo espone a grandi linee il lavoro svolto per il progetto S.W.A.T (Sampling Water Asv Tracking), sviluppato durante il corso di Laboratiorio di Meccatronica, dove si è sviluppato un sistema autonomo in grado di effettuare rilievi in mare aperto attraverso una sonda CTD (Conductivity,Temperature,Depth), e sorvegliata da un quadrirotore.

Lo sviluppo del progetto è stato portato avanti da 4 team, ciascuno dei quali si è occupato di un determinato compito, ricorrendo a MatlabLabVIEW, 3Dmicro Toolkit e MPLABX a livello software, e PIC32 come hardware.

In questo articolo verrà presentato il lavoro sviluppato dal gruppo A.S.V. (Autonomous Surface Vehicle), il cui compito è stato quello di controllare una sistema autonomo costituito da una modello RC di barca. Le specifiche di progetto da soddisfare per il gruppo sono legate ai servizi resi disponibili all’utente finale il quale deve essere in grado di:

[*] pilotare l’imbarcazione in remoto per mezzo di un joystick

[*] impostare una posizione di GOAL, la quale per mezzo di un sistema di controllo verrà raggiunta dall’imbarcazione la quale si servirà di sensore GPS e bussola

[*] sviluppo di un circuito elettronico di potenza e segnale resistente all’acqua in grado di alimentare il microcontrollore ed i dispositivi relativi all’imbarcazione

[*] studio sul carico che l’imbarcazione fosse in grado di supportare, dato che al suo interno deve ospitare altri dispositivi

Prima di addentrarci nello sviluppo del progetto, diamo una breve occhiata al modello di imbarcazione utilizzato:

[F1 imbarcazione]

L’imbarcazione è una RC boat prodotta da Fountain, con le seguenti caratteristiche

Lunghezza: 880mm
Larghezza: 245mm
Altezza: 180mm
Peso: 2.700 g
Motore: brushless raffreddato ad acqua
Regolatore: brushless 60A raffreddamento ad acqua
Elica: D45/P1,4
Scafo: vetroresina

Il raggiungimento delle specifiche è avvenuto per tappe:

1) carico barca
2) circuito elettronico
3) comando manuale
4) comando automatico

1) CARICO BARCA

Il punto di partenza è stato lo studio del massimo carico che l’imbarcazione fosse in grado di supportare. Il fine di tale studio è quello di mantenere un’assetto dell’imbarcazione stabile, nonostante il carico aggiuntivo.
Per prima cosa sono state create delle masse fittizie di terra racchiuse in buste di plastica del peso di 0.5 kg ciascuna.

[F2: FOTO MASSE FITTIZIE]

Tale masse hanno il compito di simulare il carico aggiunto sull’imbarcazione. Successivamente tre fettucce graduate in centimetri, sono stati attaccati su un lato dell’imbarcazione al fine di misurare di quanto la chiglia affondasse per effetto delle varie masse. Infine prima di effettuare le misurazioni, una livella è stata posta in prua alla barca in una zona piana, al fine di misurare l’influenza delle masse sull’assetto della barca stessa.

Il risutlato finale di tale studio è stato che con un carico di 2.5kg l’imbarcazione mantiene un assetto stabile. La distribuzione delle masse è riportata nella seguente figura.

disposizione masse

disposizione masse

2) CIRCUITO ELETTRONICO

Prima della realizzazione del circuito, è stato effettuato uno studio dei componenti da equipaggiare sull’imbarcazione, in particolare si è prestata attenzione alle alimentazioni richieste. In principio l’imbarcazione si presentava equipaggiata con motore BL accoppiato con un ESC comandante l’elica, e motore servo comandante il timone. I dispositivi aggiunti sono: 9DOF IMU, GPS, WI-FI receiver, PIC32 microcontroller. Prima di procedere con il CAD del circuito sono stati disegnati due circuiti, uno per i piccoli segnali e un altro per l’alimentazione.

Schema alimentazione

Schema alimentazione

Schema segnali

Schema segnali

Successivamente attraverso FreePCB è stato realizzato il CAD del circuito da realizzare e infine, le componenti sono state saldate su una millefori.

CAD

CAD

circuito finale

circuito finale

Tra le specifiche si è richiesto che il circuito fosse resistente all’acqua, per questo motivo, la millefori contenente il circuito insieme al microcontrollore, sono stati inseriti all’interno di una scatola in plastica per esterni, come riportato in figura.

Circuit box

Circuit box

3) COMANDO MANUALE

Realizzato il circuito si è passati alla fase di testing dei vari componenti, in cui si è verificata innanzitutto la corretta alimentazione degli stessi e successivamente analizzati gli I/O inviati dal PIC alla porta Ethernet. Al fine di analizzare il corretto funzionamento dei sensori e la generazione di onde PWM da parte del microncontrollore è stata sviluppata una semplice interfaccia in Labview in grado di:

[*] comandare i motori BL e SERVO con onde PWM correlate ai tasti di un joystick
[*] leggere i dati dai sensori
[*] data storing delle misurazioni effettuare

5

ASV architettura di sistema

4) COMANDO AUTOMATICO

Il requisito legato al funzionamento in autonomo dell’imbarcazione è quello a cui è stato dedicato più tempo, in quanto si è dovuta architettare una strategia di controllo e adattarla alle informazioni legate alla sensoristica a disposizione. Come riportato nelle specifiche, l’imbarcazione deve essere in grado di dirigersi autonomanente ad una posizione di goal, avendo a disposizione timone e elica come organi di attuazione e spostamento, e GPS e bussola come dispositivi di misurazione.
Una volta testati i vari dispositivi, la barca è stata per un pò abbandonata, e si è tornati a lavorare in simulazione.

4.1) MODELLO MATEMATICO

Prima di progettare il controllore, occorre definire un modello matematico su cui testarlo. Spesso si cerca di modellare il sistema da controllare nei minimi dettagli, ciò è un modo di procedere completo e tuttavia complesso e a volte fallimentare, in quanto non è mai possibile ottenere una rappresentazione fedele del proprio sistema ma al più una sua fedele approssimazione. Fatta tale premessa, si è scelto di utilizzare un modello di un corpo rigido con 3DOF. Le equazioni della cinematia del sistema sono le seguenti:

Sistema barca

Sistema barca

Modello matematico

Modello matematico

4.2) CONTROLLO AUTOMATICO in SIMULAZIONE

L’architettura di controllo sviluppata si suddivide in due passi fondamentali, il cui passaggio avviene per mezzo di un supervisore:

-orientation control law

in questa prima fase l’obiettivo del controllo è quello di allineare la barca con la posizione desiderata. Essendo la barca dotata di un solo motore a poppa, l’allineamento avviene mantenedo la velocità dell’elica ad un valore minimo costante [30-40% PWM] e variando l’angolo di timone. L’attuazione del timone si basa sull’errore di orientamento dell’imbarcazione, il quale consiste nella differenza tra orientamento desiderato e orientamento attuale restituito dalla bussola.

L’orientamento desiderato viene calcolato considerando in ogni istante il segmento che congiunge posizione attuale (restituita dal GPS) e desiderata, il quale viene decomposto nelle sue componenti x ed y e utilizzate per il calcolo, attraverso la funzione atan2, dell’angolo tra la retta orizzontale passante per la posizione attuale e quella congiungente le due posizioni. Lo schema seguente da una spiegazione grafica del calcolo dell’angolo desiderato.

Strategia di controllo

Strategia di controllo

Ad ogni iterazione viene calcolato l’orientamento desiderato e letto il valore restituito dalla bussola, l’errore viene successivamente inviato al servo legato al timone, il quale ha il compito di correggere l’orientamento dell’imbarcazione.

Strategia di controllo

Strategia di controllo

-speed control law

in questa seconda fase, l’imbarcazione è orientata verso la posizione di goal; il compito dello speed control law è quello di mantenere l’orientamento conseguito al passo precedente e allo stesso tempo diminuire la distanza tra posizione attuale e posizione desiderata. A livello implementativo si usa un controllore PID che ha come ingresso l’errore in distanza e sforzo di controllo pari al duty cycle della PWM del motore brushless. L’uscita del PID oltre a controllare la velocità dell’elica, influisce anche l’angolo di rudder, ovvero, il timone viene sempre controllato con l’errore di orientamento, tuttavia tale errore viene moltiplicato per un coefficiente che corrisponde all’inverso dell’uscita del PID. Questo perchè, a parità di angolo di rudder si ottengono diversi effetti a seconda della velocità con cui sta viaggiando l’imbarcazione, in altre parole per come è stata pensata la strategia di controllo può accadere una piccola correzione dell’orientamento durante la fase di avvicinamento potrebbe portare la barca fuori orientamento, ovvero nella situazione dell’orientation control law. Tale effetto viene ridotto con un guadagno K=1/PID_out, che scala l’angolo di rudder nel momento in cui l’imbarcazione viaggia a velocità sostenute (80-90% PWM)

-supervisore

Il compito del supervisore è monitorare l’andamento dell’errore di orientamento ed effettuare un cambio tra orientation control law e speed control law. Si tratta sostanzialmente di uno switch (interruttore) che cambia il proprio ingresso a seconda di una determinata condizione è verificata o meno. In pratica la situazione di partenza è quella di un’imbarcazione non orientata, il controllo è settato sulla modalità orientation control law; a questo punto la legge di controllo fa in modo che barca e target abbiano lo stesso orientamento. Nel momento in cui l’errore di orientazione è all’interno di un cono di +-15°, il supervisore effettua lo switch allo speed control law in modo da raggiungere il target in breve tempo. Se per qualche motivo, l’errore di orientamento dovesse uscire dal cono di 30°, si torna alla legge di controllo atta a ripristinare l’orientamento desiderato.

-headway effect

un’ulteriore effetto da tenere conto è che la barca ha una determinata massa a cui è legata una inerzia. Immaginiamo di settare le PWM del motore BL all’80-90%, la barca assume una certa velocità. Se le PWM fossero improvvisamente settate allo 0%, la barca non si fermerebbe immediatamente, ma continuerebbe ad andare avanti, in quanto l’enegia prodotta dalla spinta dell’elica non è stata del tutto dissipata. Per questo motivo, l’azione del PID nello speed control law viene interdetta prima del raggiungimento del goal da parte dell’imbarcazione. In altre parole si è definita una deadzone, di 5m, che una volta raggiunta provoca lo spegnimento di entrambi i motori. Tale azione è svolta come nel caso del supervisore, da un semplice switch.

4.2.1) IMPLEMENTAZIONE IN SIMULINK

Prima di passare all’implementazione su microcontrollore, occorre fare delle simulazioni. A tale scopo, modello dell’imbarcazione, e strategia di controllo sono stati implementati con Simulink, di seguito lo schema realizzato.

Schema di controllo: implementazione in Simulink

Nella figura, sono evidenziati le due componenti della strategia di controllo spiegata nel paragrafo precedente.
Di seguito sono riportate le simulazioni effettuate, al fine di testare la strategia di controllo.

Primo set di simulazioni

Primo set di simulazioni

Secondo set di simulazioni

Secondo set di simulazioni

L’intero sistema è stato simulato considerando un disturbo agente sull’orientamento dell’imbarcazione, di seguito sono riportati i risultati ottenuti.

Simulazione con disturbo agente sul sistema

Simulazione con disturbo agente sul sistema

Andando ad analizzare i grafici, si conclude che il controllo lavora efficacemente anche in presenza di un disturbo impulsivo.

Nel prossimo post si entrerà nel dettaglio dell’implementazione dell’architettura di controllo con Labview, trattamento del segnale, e verrà mostrato il risultato di una prova.

GRUPPO A.S.V.

Celiberti Francesco

Correani Giacomo

Rocchi Matteo

Francesco Celiberti

Ciao a tutti,


mi chiamo Francesco, sono laureato in Ing. Informatica e dell’Automazione. Sono attualmente coinvolto in un progetto di ricerca Europeo, MOTORIST. www.motorist-ptw.eu


Tags:
By Francesco Celiberti | febbraio 12th, 2014 | SHOW COMMENTS (2)

2 Responses

  1. facebook hack 2016 says

    This post is worth everyone’s attention. When can I find out more?

  2. Fountain RC boat: control implementation [2/2] | Automazione Open Source says

    […] post precedente è stato presentato il progetto S.W.A.T. (Sampling Water Asv Tracking), in particolare del […]