Risposta dei motori diversa con PWM ad alta frequenza


8

Stiamo realizzando un robot da calcio junior e abbiamo appena ottenuto i nostri brillanti motori da Maxon. Impostando il timer PWM su basse frequenze (circa 39 kHz o 156 kHz) il robot agisce come previsto. Ma questo produce alcuni problemi.

  1. Mette una forte corrente sulle batterie (circa 1,5 A per 3 motori che è troppo alta).
  2. L'alta corrente fa sì che i nostri driver del motore (L6203) si riscaldino molto rapidamente e anche i dissipatori di calore non li aiuteranno.
  3. I motori emettono un suono così brutto mentre urlano e questo non è normale.

Al contrario, quando configuro il timer su alte frequenze (come 1250 kHz o 10000 kHz), la corrente scende a 0,2 A, il che è l'ideale e i suoni si abbassano. Ma ciò causa un problema a causa del quale i nostri 3 motori quando vengono impostati alla massima velocità (PWM impostato su 255) non funzionano allo stesso numero di giri. come uno di essi scorre più lentamente di altri facendo girare il robot da una parte specifica e quindi le nostre funzioni di gestione non funzionano correttamente.

Chiedendo a qualcuno mi ha detto che i driver non rispondono allo stesso modo alle frequenze, risultando in velocità diverse e poiché a basse frequenze la differenza è molto piccola, non me ne accorgerò, ma a frequenze più alte la differenza diventa più grande e evidente.

Quindi c'è qualche soluzione per questo problema? o dovrei continuare a usare le basse frequenze?

PS: sto usando ATMEGA16 come controller principale con un cristallo esterno da 10 mHz.


Solo così siamo chiari, tutti i driver sono identici?
Joe Baker

Sì, i driver sono tutti identici ..
Miro Markaravanes

Esiste una frequenza di taglio specifica in cui diventa problematica? Inoltre, hai accesso a un analizzatore di logica per caso?
Joe Baker

Non so se ci sia o meno una frequenza di taglio ... Comunque la mia ipotesi è che il cristallo da 10mHz non sia in grado di produrre il clock richiesto per 3 motori. È anche possibile? cosa intendi per analizzatore logico? tuttavia possiedo un oscilloscopio.
Miro Markaravanes,

Sicuramente è il cristallo. Un analizzatore logico è un tipo speciale di ambito (o talvolta un modulo aggiuntivo per un ambito esistente). Una volta stavo affrontando un problema di jitter nei segnali PWM che stava facendo tremare i servi. Abbiamo usato una Salae ( saleae.com/logic ) per prelevare un campione grande (~ 10k di impulsi) degli impulsi a una data larghezza e abbiamo misurato il jitter calcolando la deviazione standard delle larghezze del set di campioni. È possibile che tu possa usare il tuo ambito per cercare problemi simili, ma probabilmente non puoi ottenere un campione abbastanza grande in una sola volta per i calcoli dello stdev.
Joe Baker,

Risposte:


3

Anche se non so come risolvere la causa principale del problema, una soluzione è utilizzare il feedback a circuito chiuso. Se riesci a misurare la velocità di ciascuna ruota (ad esempio, con encoder), puoi utilizzare un algoritmo simile a PID per regolare le velocità delle ruote in modo che il robot vada dritto.

Anche una bussola o un giroscopio sarebbero adatti a questo compito.


Sto già usando una bussola e un PID per le mie funzioni di spin back per portare il robot nella giusta direzione verso l'obiettivo avversario. Tuttavia la tua risposta funzionerebbe, ma avrei bisogno di risolvere il problema piuttosto che ridurre le velocità fino a quando il robot non va dritto. Thx
Miro Markaravanes

@MiroMarkarian - Il punto è che se hai un loop PID per motore, non dovrebbe importare che rispondano diversamente perché il loop PID regolerà l'uscita PWM per ciascun motore in modo che l'encoder sulla ruota segua la velocità e la posizione desiderate .
Mark Booth

0

Due problemi sull'hardware,

a) Chip richiede tempo per accendersi e spegnersi. Riscaldando di più mentre si è accesi e spenti. Quindi, non ha senso usare una frequenza troppo alta. Generalmente, 10, 15 o 20 KHz al di fuori della portata dell'orecchio umano sono sufficienti.

Vedi i dettagli (spiega gli effetti di frequenza con esempi di 20 chip di molte aziende) (in particolare quegli articoli dichiarano la frequenza ultrasonica 20KHz) in
http://www.pololu.com/category/11/brushed-dc-motor-drivers

b) La bobina del motore ha induttanza. Una frequenza troppo elevata riduce il flusso di corrente, una coppia bassa, un basso numero di giri.

Apparentemente, 0,5 A per motore sembrano nella gamma normale. Probabilmente, a 6, 7,2 o 12 volt, da pochi watt a 10 watt per motore per un movimento rapido del robot.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.