Propeller Pendulum: regolazione a 90° con PID

 

Il pendolo inverso è il meccanismo più utilizzato nella sperimentazione di leggi di controllo. In questo post verrà presentata una sua versione modificata: Propeller Pendulum ovvero un pendolo attuato dal complesso motore+elica. L’obiettivo di questo progetto è quello di regolare a 90° la posizione dell’asta attraverso la progettazione di un controllore PID.

NOTE: Il seguente progetto è stato costruito dall’autore, il quale non si assume nessuna responsabilità su eventuali danni a cose/persone.

COMPONENTI:

[*] base di legno
[*] asta in alluminio
[*] 2 pannelli in plexiglass
[*] bulloni e viti per il fissaggio dei pannelli
[*] cuscinetto a sfere
[*] sensore di posizione angolare (in questo caso un potenziometro multigiro)
[*] motore brushless+esc (electronic speed controller) + elica
[*] supporto motore per l’asta
[*] alimentatore (si è recuperato un alimentatore da pc)
[*] arduino

costo circa €60

I componenti possono essere trovati facilmente su internet (ebay) e in negozi di bricolage (OBI). Per la scelta del complesso motore elica consultare il seguente link.

MONTAGGIO

Ognuno è libero di montare la struttura secondo le proprie esigenze. In questo caso sono stati utlizzati due fogli di plexigass collegati da bulloni e appoggiati su una base di legno, all’interno dei quali è stato inserito un cuscinetto a sfere. Il compito di quest’ultimo è quello di fornire un supporto per un componente cilindrico in legno sul quale viene fissata l’asta in alluminio. All’altra estremità della barra in legno è collegato un potenziometro il cui compito è quello di misurare la posizione angolare della barra in alluminio. Oltre ai pannelli in plexigass sul supporto in legno sono stati installati: alimentatore, scheda di controllo (arduino) e esc.

a

FUNZIONAMENTO

Il motore scelto per tale progetto è di tipo brushless ad elevata coppia, è utilizzato in aereomodellismo ed è in grado di sviluppare potenze meccaniche adatte a velivoli dal peso di 600gr. L’alimentazione di tale motore avviene solitamente per mezzo di pacchi di batterie montate sul velivolo ed in grado di garantire un’autonomia dipendente dalla sua caratteristica (in media 10 minuti). In tal caso si è ricorso all’utilizzo di un alimentatore collegato alle rete domestica, per motivi pratici e al fine di evitare lunghe attese nella ricarica delle batterie. La scelta dell’alimentatore dipende dal motore acquistato, in questo caso il motore scelto assorbe una corrente massima di 8A ed è alimentato da una tensione di 12V. Tra l’alimentatore e il motore vi è l’ESC (electronic speed controller) il cui compito è quello di prelevare dalla sorgente elettrica (l’alimentatore) parte di corrente a seconda della richiesta da parte di un segnale di controllo (PWM). In altre parole se l’onda PWM ha duty cicle 100% al motore viene fornita la massima corrente, vicevera se il dc è del 0% il motore non gira, stesso discorso per un d.c inferiore al 100%

L’onda PWM viene generata dall’Arduino sulla base di una legge di controllo, in questo caso un PID. Una volta effettuato il collegamento alimentatore, esc, motore in modo opportuno è possibile passare allo sviluppo del software e alla progettazione della legge di controllo.

CONTROLLO

Per lo sviluppo del controllo PID si è utilizzato MATLAB, per cui per prima cosa occorre instaurare la connessione tra Matlab e Arduino, in precedenti post post2 abbiamo trattato l’argomento.

Effettuato il collegamento, impostiamo il pin sul quale è collegato il motore, modifichiamo il range di tensione leggibile in modo che mappando tale range su 10 bit è possibile aumentare la risoluzione dell’A/D (per ulteriori informazioni analogReference). Infine per inizializzare l’ESC occore inviargli due segnali con duty cicle alto e successivamente basso.

[cpp] a.analogReference(‘internal’);
a.servoAttach(2);
a.servoWrite(2,180);
a.servoWrite(2,30);
[/cpp]

Si applica infine la legge di controllo:

  \footnotesize{u(k)=u(k-1)+e(k)*(KP+KD/T_c)-e(k-1)*(KP-KI*T_c+2*KD/T_c)+e(k-2)*KD/T_c}

 

RISULTATO

Nel seguente video viene mostrato il comportamento del propeller pendulum, il quale è soddisfacente in termini di prontezza, reiezione ai disturbi e smorzamento.

SVILUPPI FUTURI

In futuro si prevede:

[*]  sviluppo del modello matematico
[*] applicazione di tecniche di controllo non lineare
[*] applicazione di tecniche di filtraggio
[*] applicazione di tecniche di controllo robusto

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 | settembre 26th, 2012 | SHOW COMMENTS (5)

5 Responses

  1. Carla says

    hello I would love to talk with you about some details, I’m currently doing something similar for a school project and think you could help me a lot, would you mind giving me your email or skype or something? Thanks!

  2. julio says

    dove hai comprato il tuo potenziometro multigiro?

  3. Enginsubasi says

    Hi. I want to make that but i don’t make a decision about motor and propoller. Could you write your motor and propoller properties_? Thanks.

  4. Fra Dibenedetto1 says

    GRANDE!