Réponse des moteurs différente avec PWM haute fréquence

8

Nous fabriquons un robot de football junior et nous venons de recevoir nos brillants moteurs de Maxon. En réglant la minuterie PWM sur les basses fréquences (environ 39 kHz ou 156 kHz), le robot agit comme prévu. Mais cela pose quelques problèmes.

  1. Il met un fort courant sur les batteries (environ 1,5A pour 3 moteurs ce qui est beaucoup trop élevé).
  2. Le courant élevé fait chauffer nos pilotes de moteur (L6203) très rapidement et même les dissipateurs de chaleur ne les aideront pas.
  3. Les moteurs font un si mauvais son qu'ils crient et ce n'est pas normal.

En revanche, lorsque je configure la minuterie sur les hautes fréquences (telles que 1250 kHz ou 10000 kHz), le courant tombe à 0,2 A, ce qui est idéal et les sons s'arrêtent. Mais cela pose un problème selon lequel nos 3 moteurs lorsqu'ils sont configurés pour fonctionner à leur vitesse la plus élevée (PWM réglé sur 255) ne fonctionnent pas au même régime. comme l'un d'entre eux tourne plus lentement que d'autres, ce qui fait que le robot se tourne vers un côté spécifique et que nos fonctions de manipulation ne fonctionnent pas correctement.

En demandant à quelqu'un, il m'a dit que les pilotes ne répondent pas de la même manière aux fréquences, ce qui entraîne des vitesses différentes et parce que sur les basses fréquences, la différence est très petite, je ne le remarquerai pas, mais sur les fréquences plus élevées, la différence devient plus grande et perceptible.

Existe-t-il une solution de contournement à ce problème? ou devrais-je continuer à utiliser les basses fréquences?

PS: J'utilise ATMEGA16 comme contrôleur principal avec un cristal externe de 10 MHz.

Miro Markaravanes
la source
Juste pour que nous soyons clairs, tous les pilotes sont-ils identiques?
Joe Baker
Oui les pilotes sont tous identiques ..
Miro Markaravanes
Y a-t-il une fréquence de coupure spécifique où cela devient problématique? De plus, avez-vous accès à un analyseur logique par hasard?
Joe Baker
Je ne sais pas s'il y a une fréquence de coupure ou non ... Cependant, je suppose que le cristal à 10 MHz ne peut pas produire l'horloge requise pour 3 moteurs. Est-ce que c'est possible? qu'entendez-vous par analyseur logique? cependant je possède un oscilloscope.
Miro Markaravanes
Je doute fortement que ce soit le cristal. Un analyseur logique est un type spécial de portée (ou parfois un module complémentaire pour une portée existante). J'étais un jour confronté à un problème de gigue dans les signaux PWM qui faisait trembler les servos. Nous avons utilisé un Salae ( saleae.com/logic ) pour prélever un gros échantillon (~ 10k impulsions) des impulsions à une largeur donnée et mesuré la gigue en calculant l'écart type des largeurs de l'ensemble d'échantillons. Il est possible que vous puissiez utiliser votre portée pour rechercher des problèmes similaires, mais vous ne pouvez probablement pas obtenir un échantillon assez grand à la fois pour les calculs stdev.
Joe Baker

Réponses:

3

Bien que je ne sache pas comment résoudre la cause première du problème, une solution consiste à utiliser la rétroaction en boucle fermée. Si vous pouvez mesurer la vitesse de chaque roue (par exemple, avec des encodeurs), vous pouvez utiliser un algorithme de type PID pour ajuster les vitesses de vos roues afin que le robot se dirige tout droit.

Une boussole ou un gyroscope conviendrait également à cette tâche.

apnorton
la source
J'utilise déjà une boussole et un PID pour mes fonctions de retour en arrière pour amener le robot dans la bonne direction vers le but de l'adversaire. Cependant, votre réponse fonctionnerait, mais je devrais résoudre le problème plutôt que de simplement réduire les vitesses jusqu'à ce que le robot se mette en ligne droite. Thx
Miro Markaravanes
@MiroMarkarian - Le fait est que si vous avez une boucle PID par moteur, peu importe qu'ils répondent différemment car la boucle PID ajustera la sortie PWM pour chaque moteur afin que l'encodeur sur la roue suive la vitesse et la position souhaitées .
Mark Booth
0

Deux problèmes sur le matériel,

a) La puce prend du temps pour s'allumer et s'éteindre. Réchauffer davantage en marche et en arrêt. Donc, inutile d'utiliser une fréquence trop élevée. Généralement, 10, 15 ou 20 kHz maximum, hors de portée de l'oreille humaine est suffisant.

Voir les détails (expliquer les effets de fréquence avec des exemples de 20 puces de nombreuses entreprises) (en particulier ces éléments indiquent une fréquence ultrasonique de 20 kHz) sur
http://www.pololu.com/category/11/brushed-dc-motor-drivers

b) La bobine du moteur a une inductance. Une fréquence trop élevée réduit le flux de courant, un faible couple et un faible régime.

Apparemment, 0,5 A par moteur semble dans la plage normale. Probablement, à 6, 7,2 ou 12 volts, de quelques watts à 10 watts par moteur pour un mouvement rapide du robot.

EEd
la source