[Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo

la I è proporzionale alla somma dell'errore, in pratica se c'è un errore si accumula. Ovviamente l'errore può essere sia positivo che negativo, riuscendo quindi ad azzerarsi. Insomma si può dire che la P è il normale riflesso, la I la memoria a medio termine con cui modifichi l'impulso iniziale in base al comportamento passato dell'errore, però è a medio termine perchè mano a mano che raggiungi il punto desisderato si cancella

ecco un'altro test che ho fatto. (non state a guardare la qualità del montaggio, sono una chiavica)

Solo una critica relativa all'uso di una scena di Apocalypse now, sicuramente un grandissimo film, la scena in questione è il prologo dell'attacco ad un villaggio dove gli elicotteri Americani fanno una vera e propria strage, indipendentemente da chi era il buono e chi era il cattivo mi pare di cattivo gusto abbinare un ricordo intriso di sangue, morte e dolore ad un quadricottero.

lesto:
La P si comporta come una retta:

Mica è vero, in base alla funzione di trasferimento del sistema la P può benissimo essere una qualunque funzione matematica tutt'altro che lineare.

notare che il tempo non centra niente: a qualsiasi istante il valore del componente P può essere conosciuto con certezza conoscendo l'input.

Questo è corretto, lo scopo della P è fornire una correzione prossima al punto desiderato.

la I invece lavora con il tempo;

La I e la D sono esattamente quello che dicono di essere, ovvero l'integrale dell'errore e la sua derivata, nel caso della velocità angolare come errore sono rispettivamente lo spazio perso, o guadagnato, sulla distanza angolare, e l'accelerazione angolare, è molto importante trovare, e comprendere, i legami fisici dei parametri per poter scrivere un pid realmente efficiente.
Come ho già rimarcato la formuletta canonica del PID è solo un descrittore e non la soluzione, ogni pid è diverso da un altro e vanno analizzati e risolti singolarmente, p.e. un pid per il controllo della velocità è diverso da quello per il controllo della distanza, tra parentesi il pid controllo velocità è un caso particolare ove il parametro D è quello stabilizzante e quello I destabilizzante, normalmente è il contrario.

mi dispiace ti dia fastidio l'idea, ma personalmente non la vedo come te, ma più da un punto di vista cinematografico e ognuno ci vede quello che vuole. comunque grazie per la critica, sono sempre costruttive :stuck_out_tongue:

http://www.ebay.it/itm/STM32F4-DISCOVERY-USB-STM32F407VGT6-STM32-ARM-Cortex-M4-Development-Board-Embed-/170884988017?pt=Bauteile&hash=item27c989fc71#ht_696wt_1037

è la scheda di cui parlavate prima??

cavde:
è la scheda di cui parlavate prima??

No, questa è molto più performante e decisamente più grossa come dimensioni fisiche, comunque sempre compatibile con un quadri, sopra c'è solo un accelerometro con solo otto bit di risoluzione, non va bene per un quadri, è necessario aggiungere una IMU esterna.
La cosa divertente è che la scheda che hai linkato da RS la paghi solo 12.65 Euro + iva, su ebay la vendono a molto di più del suo reale prezzo.

cavde devbe ancora uscire la scheda di cui parleremo

lesto:
cavde devbe

ROTFL :smiley:

La STM32F3 Discovery dovrebbe essere disponibile a partire da metà Ottobre.

:grin:

comuque astro le spedizioni dai sisti che la propongono sono alte (20€), e io la vorrei al volo ( due, una da regalare :slight_smile: ) quindi se non c'è la certezza che RS la venda possiamo fare un acquisto di gruppo? magari si aggiunge pure cavde e qualcun'altro

lesto:
comuque astro le spedizioni dai sisti che la propongono sono alte (20€), e io la vorrei al volo ( due, una da regalare :slight_smile: ) quindi se non c'è la certezza che RS la venda

Non appena sarà realmente disponibile di sicuro la trovi sia da RS, spedizione meno di 7 Euro, che da Watterott, quindi il problema non si pone minimamente.

fa ridere soprattutto perchè cavde deriva da "carde" e dalla mia r moscia :smiley:

ciao,
sto mettendo su un simulatore per algoritmi di stabilizzazione del quad. Ne avevo già fatto uno maho perso il codice :smiley:
al momento c'è l'ambiente grafico 3d, il motore fisico, e un quad stilizato.
Ogni update fisico viene chiamato un update della classe QuadLogic, che sarà dove il codice utente viene inserito. (input: angoli x, y, z, posizione x, y, z; output ppm 4 canali)

per ora la logica mantiene un'altezza fissa, è solo P + I, quindi in realtà "galleggia" come una nave sul mare mosso, e setto lo stesso valore PPM su tutti i canali, però carino da vedere come riesce a mantenere la posizone anche da inclinato, credo che si un bug che le forze non sono solidali col quad ma relative al mondo esterno.

in oltre col sinistro del mouse è possibile sparare una pallina per destabilizzare un pò il sistema..

Domani inizio a lavorarci su seriamente (oggi ho montato grafica e fisica, o meglio il framework JME3) e posto il codice su github.

Domanda: qualcuno ha delle curve motore "ppm/velocità", nel senso: quanto velocemente è in grado un motore di cambiare velocità (e di conseguenza spinta) in un dato istante (1/60 di secondo è la risoluzione attuale).
So che la cosa in realtà varia in base a molti fattori blablabla, ma a me basta una media per capire se posso far finta che i motori siano istantanei, o se devo limitare il cambio di impulso generato in base al PPM limitandolo in base al valore precedente.

Poi, volendo implementare anche l'effetto "rotazionario" sarebbe fico sapere quanto velocemente gira il vostro quad in base ai valori PPM... ma qui la cosa si complica. Quando (e se) il mio quad volerà potrò rilavare i dati in volo e quindi tunare il sistema apposta, ma per ora brancolo nel buio, e mi piacerebbe avere almeno una posto dove pre-testare virtualmente la stabilità dei vari algoritmi.

mi autorispondo:
i tempi di risposta (di soli ESC) da 0 a 100% sono di circa 130ms, con tempi "nel mezzo" assimilabili a frazioni (da 30 a 80% quindi è un aumento del 50%, e il 50% di 130 è 65ms)

notare che il vero rallentament è dato dai firmware degli esc che non aumentano di botto ma a piccoli step. ESC modificati per rispondere istantaneamente senza step dimezzano i tempi. I test sono stati fatti da kaptainkuk, il creatore dell'ononima board, quindi mi fido :slight_smile:

invece per dei buoni test ESC + motori + elica: http://www.rcgroups.com/forums/showthread.php?t=1620724

ciao a tutti

sto costruendo un micro quadricottero, con giroscopi e accelerometri della wii, e come firmware il multiwii.

però mi è venuto un piccolo dubbio.

tra gli accelerometri e i giroscopi che differenza c'è??

mi potreste spiegare gentilmente in modo scolastico come funzionano??

intendo a livello di fisica e di elettronica come lavorano.

grazie mille

ciao

io ti so dire che il giroscopio ti da un valore in funzione del suo momento angolare, quindi se sta ruotando sui suoi 3 assi.
L'accelerometro invece ti da un valore in funzione della sua posizione rispetto alla direzione e al verso della forza di gravità, quindi sai se è inclinato di tot gradi rispetto sempre ai suoi 3 assi

il giroscopio restituisce la VELOCITA' di rotazione angolare.
l'accelerometro restituisce le ACCELERAZIONI sugli assi, ma per motivazioni strutturali legge anche l'accelerazione gravitazionale.

ok , la cosa mi è molto piu chiara adesso.

però ho ancora dei dubbi.

il giroscopio rileva la velocità angolare,ma qundi prima di entrare in funzione deve essere calibrato per il neutro???.

ad esempio io mi diverto con gli elicotteri rc, e per settare la coda bisogna impostare il gyro su avcs, ovvero che riconosce la posizione della coda e la tiene in quella posizione anche se manualmente la muovi.

l'accelerometro quindi si basa su l'accelerazione di gravità della terra??? non deve essere calibrato??

se usassi l'accelerometro nella spazio rileverebbe solamente le accelerazioni che vengono fatte sul suo corpo??.

perchè usare gyro e acceleromtro insieme porta dei benefici??

scusate le tante domande.

ciao

lesto:
ma per motivazioni strutturali legge anche l'accelerazione gravitazionale.

Non è per motivazioni strutturali, è per motivi fisici visto che la gravità è una forza applicata a una massa pertanto esprime una accelerazione (A=F/M), come tale viene misurata da un accelerometro in funzione dell'angolo tra asse e centro della terra, se l'asse è perfettamente ortogonale la gravità non influisce in nessun modo.

bit95:
il giroscopio rileva la velocità angolare,ma qundi prima di entrare in funzione deve essere calibrato per il neutro???.

Assolutamente si, i giroscopi sono molto sensibili alle variazioni di temperatura e hanno sempre un certo drift il che rende indispensabile calibrarli ad ogni accensione.

l'accelerometro quindi si basa su l'accelerazione di gravità della terra??? non deve essere calibrato??

L'accelerometro non si basa sull'accelerazione gravitazionale, la misura, non serve calibrarlo ad ogni accensione, basta farla periodicamente.

se usassi l'accelerometro nella spazio rileverebbe solamente le accelerazioni che vengono fatte sul suo corpo??.

Dipende da cosa intendi per spazio, anche in orbita alta, p.e. dove si trova la ISS, la gravità terrestre è presente, infatti viene sfruttata dagli strumenti di bordo, e anche se ti allontani molto dalla terra sei sempre in presenza dei campi gravitazionali degli altri pianeti e del sole, non sono trascurabili se parliamo di strumentazioni inerziale.

perchè usare gyro e acceleromtro insieme porta dei benefici??

Misurano grandezze fisiche diverse tra loro complementari, unendo tramite particolari processi matematici, i più utilizzati sono il Kalman e la DCM, le loro letture si attua ciò che viene definito come "sensor fusion" e ti permette di correggere/compensare le letture ottenendo una rilevazione dell'assetto molto più precisa e stabile.