Respuesta de motores diferente con PWM de alta frecuencia

8

Estamos haciendo un robot de fútbol juvenil y acabamos de obtener nuestros motores brillantes de Maxon. Al configurar el temporizador PWM en bajas frecuencias (alrededor de 39 kHz o 156 kHz), el robot actúa como se esperaba. Pero esto produce algunos problemas.

  1. Pone mucha corriente en las baterías (alrededor de 1.5 A para 3 motores que es demasiado alto).
  2. La alta corriente hace que nuestros controladores de motor (L6203) se calienten muy rápidamente e incluso los disipadores de calor no los ayudarán.
  3. Los motores emiten un sonido tan malo como si estuvieran gritando y esto no es normal.

En contraste, cuando configuro el temporizador en frecuencias altas (como 1250 kHz o 10000 kHz) la corriente cae a 0.2A, lo cual es ideal y los sonidos se detienen. Pero esto causa un problema de que nuestros 3 motores cuando están configurados para funcionar en su velocidad más alta (PWM configurado en 255) no funcionan a las mismas rpm. como si uno de ellos funciona más lento que otros, lo que hace que el robot gire hacia un lado específico y, por lo tanto, nuestras funciones de manejo no funcionan correctamente.

Al preguntarle a alguien, me dijo que los conductores no responden de la misma manera a las frecuencias, lo que da como resultado velocidades diferentes y porque en las frecuencias bajas la diferencia es muy pequeña, no lo notaré, pero en las frecuencias más altas la diferencia se hace más grande y notable.

Entonces, ¿hay alguna solución para este problema? o debería seguir usando bajas frecuencias?

PD: estoy usando ATMEGA16 como el controlador principal con un cristal externo de 10 mHz.

Miro Markaravanes
fuente
Para que quede claro, ¿todos los controladores son idénticos?
Joe Baker,
Sí, los conductores son todos idénticos ..
Miro Markaravanes
¿Existe una frecuencia de corte específica donde se vuelve problemático? Además, ¿tiene acceso a un analizador lógico por casualidad?
Joe Baker,
No sé si hay una frecuencia de corte o no ... Sin embargo, supongo que el cristal de 10mHz no puede producir el reloj requerido para 3 motores. ¿Es eso posible? ¿Qué quieres decir con analizador lógico? Sin embargo, tengo un osciloscopio.
Miro Markaravanes
Dudo mucho que sea el cristal. Un analizador lógico es un tipo especial de alcance (o, a veces, un módulo adicional para un alcance existente). Una vez estaba lidiando con un problema de jitter en las señales PWM que causaba que los servos temblaran. Utilizamos un Salae ( saleae.com/logic ) para tomar una muestra grande (~ 10k pulso) de los pulsos en un ancho determinado y medimos el jitter calculando la desviación estándar de los anchos del conjunto de muestras. Es posible que pueda usar su alcance para buscar problemas similares, pero es probable que no pueda obtener una muestra lo suficientemente grande a la vez para los cálculos de stdev.
Joe Baker,

Respuestas:

3

Si bien no sé cómo solucionar la causa raíz del problema, una solución alternativa es utilizar la retroalimentación de circuito cerrado. Si puede medir la velocidad de cada rueda (por ejemplo, con codificadores), puede usar un algoritmo similar a PID para ajustar la velocidad de sus ruedas para que el robot siga recto.

Una brújula o giroscopio también sería adecuado para esta tarea.

Apnorton
fuente
Ya estoy usando una brújula y PID para mis funciones de retroceso para llevar al robot en la dirección correcta hacia la meta del oponente. Sin embargo, su respuesta funcionaría, pero necesitaría resolver el problema en lugar de reducir las velocidades hasta que el robot funcione correctamente. Thx
Miro Markaravanes
@MiroMarkarian: el punto es que si tiene un bucle PID por motor, no debería importar que respondan de manera diferente porque el bucle PID ajustará la salida PWM para cada motor para que el codificador de la rueda rastree la velocidad y posición deseadas .
Mark Booth
0

Dos problemas en el hardware,

a) Chip tarda en encenderse y apagarse. Calentando más mientras tanto entre encendido y apagado. Entonces, no tiene sentido usar una frecuencia demasiado alta. Generalmente, 10, 15 o 20KHz máximo, fuera del rango del oído humano es suficiente.

Vea los detalles (explique los efectos de frecuencia con ejemplos de 20 chips de muchas compañías) (especialmente esos elementos indican la frecuencia ultrasónica de 20KHz) en
http://www.pololu.com/category/11/brushed-dc-motor-drivers

b) La bobina del motor tiene inductancia. Una frecuencia demasiado alta reduce el flujo de corriente, bajo par, bajas RPM.

Aparentemente, 0.5A por motor parece estar en el rango normal. Probablemente, a 6, 7,2 o 12 voltios, unos pocos vatios a 10 vatios por motor para un movimiento rápido del robot.

EEd
fuente