Cómo frenar eléctricamente un motor sin escobillas

Lo siento si esta pregunta es demasiado estúpida, lamentablemente tengo muy poca experiencia con motores BLDC.

Me gustaría usar 4 concentradores de motor sin escobillas de 350 W y 24 V CC para mi robot con ruedas (generalmente se usan para vehículos todo terreno o aerotablas). Cada motor está engranado y viene con un codificador con 1024 pulsos/rev.

El problema es que cuando el robot no se está moviendo, las ruedas/motores todavía se pueden mover, ya que actúan como ruedas libres cuando no se les aplica energía y esto es malo si el robot se detiene en una pendiente o si alguien intenta jalar/empujar el robot. porque se puede mover fácilmente.

Nunca tuve este problema con otros robots, ya que siempre usaba motores de CC con escobillas con caja de cambios en ángulo con un alto par de salida, por lo que era muy difícil mover las ruedas cuando el robot estaba parado.

Los motores sin escobillas vienen con cables U, V, W, tres cables para sensor Hall, dos cables para codificador, dos cables para +5 VCC y GND.

Estaba leyendo una discusión en researchgate sobre el frenado al acortar los terminales del motor. Hace unos días, leí una discusión muy interesante en este foro sobre la diferencia entre motores paso a paso y sin escobillas. Creo que lo que necesito debería ser el par de retención como sucede con los motores paso a paso.

Estaba pensando en intentar implementar algo así a través del software:

  1. el robot no se mueve
  2. compruebe si los pulsos del codificador están cambiando y su dirección
  3. si están cambiando, entonces el robot se está moviendo en rueda libre
  4. si se está moviendo, intente aplicar energía en la dirección opuesta hasta que los pulsos del codificador sean NULOS.

Este procedimiento me parece complejo por lo que me gustaría saber si existe alguna solución electrónica más inteligente.

¡Gracias!

PD Olvidé mencionar que obviamente el controlador puede almacenar la energía producida durante el frenado en las baterías.

¿Hizo su propio controlador de motor o está preguntando cómo configurar uno para habilitar la función de retención de CC?
¿En qué circunstancias sus motores giran libremente? Su sugerencia es posible solo si el robot está ENCENDIDO, pero supongo que su problema es cuando está APAGADO (no hay más energía disponible: batería extraída o baterías vacías), ¿no es así?
Casi necesitas un freno de estacionamiento mecánico para algo como esto. Desperdiciar energía para no moverse es un desperdicio de energía de la batería, especialmente en una pendiente. Para frenar algo a gran velocidad, puede reducir gradualmente (o rápidamente) el avance de fase hasta que el motor se bloquee. Puede recolectar energía durante un proceso de frenado que se está desacelerando a través de la regeneración, pero no recolectará nada "frenando" para permanecer en el mismo lugar en una pendiente.
Ya tengo un controlador de motor (de roboteq) y es posible escribir un software para controlar todos sus parámetros. El problema es cuando el robot se está moviendo y luego necesita parar: en este caso, puede seguir moviéndose aunque los motores no estén alimentados ya que actúan como una rueda libre. Lo mismo puede ocurrir si el robot está frente a una pendiente y necesita detenerse en el medio, la fuerza de la gravedad puede hacer que retroceda, por ejemplo.
@DKNguyen, lamentablemente no puedo usar frenos mecánicos.
@MathieuG. el problema puede ocurrir principalmente durante el tiempo de funcionamiento: por ejemplo, si el robot debe detenerse en una pendiente o si el robot se mueve a gran velocidad (máx. 0,8 m/s) y debe detenerse de inmediato.
Parece que a veces no puede anticipar cuándo detenerse, pero aún tiene que definir las tasas de frenado necesarias como una relación de aceleración. La potencia máxima en reversa es difícil para los motores y los engranajes, el cortocircuito desde la velocidad máxima es la mejor apuesta para un frenado efectivo. Cuando se detiene, la fricción con la relación de transmisión puede ser suficiente para mantener o al menos reducir la velocidad /100 con un motor en cortocircuito. Una parada perfecta necesita mejores especificaciones.
@MarcusBarnet Tengo algo de experiencia con los controladores roboteq y creo que puede controlar una velocidad 0 en el modo de velocidad o el modo de posición de velocidad (un bucle de posición alimentado con un punto de ajuste de velocidad) o una posición fija en el modo de posición. Entonces, ¿cuál es el problema en esto?
Si enciende los tres MOSFET de lado bajo, el motor se volverá muy pesado. Si tiene la capacidad de hacer pasar una pequeña corriente a través de uno de los devanados (digamos, de cables U a V), entonces el rotor se bloqueará en un límite de par proporcional a la corriente que pasa por el devanado. La corriente debe ser lo suficientemente pequeña para evitar el sobrecalentamiento del devanado. Finalmente, puede usar un servocontrolador con la velocidad establecida en cero. Mantendrá activamente el control utilizando los pulsos del codificador y compensará cualquier par en cualquier dirección para evitar el movimiento.
@MathieuG. Sí, es posible controlarlo en el modo de velocidad, pero creo que si configuro la velocidad = 0, el controlador solo desconectará la alimentación de los motores sin aplicar ninguna otra acción para que el motor pueda girar como una rueda libre.
@mkeith esto es interesante, le preguntaré a roboteq si es posible pasar una pequeña corriente a través de uno de los devanados. Esta podría ser una solución junto con la rampa de desaceleración.
@MarcusBarnet para nada. En el modo de velocidad, solicitando un 0, el Roboteq intentará detener el motor cada vez que intente moverlo. Actuará como un freno. Sin embargo, creo que permitirá muy poca velocidad en este modo. El modo de posición de velocidad es exactamente lo que necesita: solicita una velocidad, el controlador la integra y ejecuta un control de posición al motor. Actuará como un resorte giratorio si intentas moverlo: eso es lo que necesitas.
No sé acerca de roboteq, pero para muchos tipos de controlador, es una elección de configuración si se debe controlar a velocidad cero o permitir que se reduzca a velocidad cero. Básicamente, estoy diciendo que el comentario de Mathieu G podría ser una solución para ti. Parece que el controlador roboteq tiene algunas de las características de un controlador de servomotor.
¡Tengo que intentarlo! Usualmente uso los controladores roboteq en modo par, por lo que no pude verificar si en modo velocidad puede actuar como un freno "virtual". ¡Gracias por el consejo!

Respuestas (2)

Las opciones de frenado son mecánicas, de disipación y de recuperación de energía. Sin embargo, cuando el vehículo está parado, el frenado solo puede realizarse mediante fricción estática mecánica o mediante disipación eléctrica que genera un contrapar estático. La corriente en los devanados es más alta cuando el motor no está girando, porque hay bobinas motoras y bobinas generadoras. Cuando la velocidad del eje es cero, no hay fuerza contraelectromotriz cero y las bobinas motoras absorben una corriente de parada elevada. El par de frenado generado por esta técnica podría generar suficiente calor para degradar el barniz u otro aislamiento en los cables de las bobinas del motor.

Anticipo que esta será mi edición final solo para agregar este enlace a una presentación en pdf para un esfuerzo bastante complejo para diseñar un circuito de frenado regenerativo con un motor BLDC:

http://ww1.microchip.com/downloads/en/devicedoc/regenerative%20braking%20of%20bldc%20motors.pdf

Leería el documento de 16 páginas a continuación, que utiliza un ejemplo de BLDC de bajo voltaje para explorar los problemas del frenado de recuperación de energía y luego realizar experimentos con pequeños sistemas económicos que podrían destruirse, antes de emprender cualquier esfuerzo para diseñar un sistema de mayor potencia. Los frenos mecánicos mediante accionamiento electrónico son probablemente la mejor solución y quizás la única solución no destructiva viable para determinadas condiciones de funcionamiento.

Control de frenado regenerativo de energía de vehículos eléctricos que utilizan motores trifásicos de corriente continua sin escobillas, Energies 2014, 7, 99-114; doi:10.3390/en7010099

https://pdfs.semanticscholar.org/eb63/34a18cda052716e59043a702e2da14a528dc.pdf

Aquí hay otro documento de 7 páginas con una discusión sobre el frenado eléctrico BLDC. También dice que los frenos mecánicos son necesarios para el frenado estático.

Revista Internacional de Ingeniería Eléctrica (IEEJ) vol. 3 (2012) No. 2, pp. 784-790ISSN 2078-2365 Página 784 Rakesh y Narasimham, Diferentes técnicas de frenado empleadas en un motor de CC sin escobillas utilizado en locomotoras:

http://ieejournal.com/Vol_3_No_2/Different%20Braking%20Techniques%20Employed%20to%20a%20Brushless%20DC%20Motor%20Drive%20used%20in%20Locomotives.pdf

Al realizar pruebas en un motor sin carga o caja de cambios, el frenado dinámico será muy rápido debido únicamente a la inercia del rotor del BLDC. Agregar inercia a través de una carga directa o una carga mecánica acoplada a la caja de cambios prolonga el tiempo de giro y el tiempo de frenado. La fuerte corriente de frenado fluye durante un período de tiempo más largo cuando se debe disipar más energía cinética en la resistencia de frenado o devolverse a la fuente de energía de la batería. El calor puede acumularse y exceder el área de operación segura de los componentes eléctricos con un diseño térmico inadecuado.

Este video muestra un dispositivo de freno electromagnético de 24 voltios:

https://www.youtube.com/watch?v=HrQPAZXsP6I

No pude encontrar ningún freno eléctrico barato adecuado para mi aplicación capaz de bloquear un eje que pueda proporcionar al menos 10 Nm. Las ruedas pueden generar hasta 25 Nm, pero puedo suponer que disminuya la potencia antes de activar el freno eléctrico. ¿Alguna sugerencia? ¿Conoces algún proveedor?
Desafortunadamente, no puedo usar el freno eléctrico, olvidé que tengo un motor de cubo, eso significa que la única parte giratoria es toda la rueda exterior y no el eje central, por lo que no tengo forma de instalar el freno.
Acabo de ver parte de un video de 6 minutos: "Robot y controladores de motor de cubo de bicicleta eléctrica BLDC de 380w, ¡hazme un pitido de freno!" Este robot tiene una rueda inactiva delantera y varios botones en el controlador, por lo que la solución obvia sería un freno electromagnético en la rueda inactiva. Supongo que el frenado por disipación funcionaría con una resistencia de disipación de energía adecuada encendida cuando el robot gira libremente a través de un mosfet saturado que también podría necesitar un disipador de calor. Creo que hay una solución si haces algunas pruebas de banco con motores sin carga y te vuelves creativo con el diseño mecánico.

Como se menciona en la respuesta aceptada a Diferencia entre motor sin escobillas y motor paso a paso , un motor sin escobillas puede funcionar como un motor paso a paso. Es posible hacer la transición entre el funcionamiento continuo y el funcionamiento paso a paso y aplicar CC a los devanados para proporcionar algo de par de retención.

Si frena por inercia hasta detenerse, debe considerar qué cantidad de la energía cinética de la carga debería disiparse o devolverse a la fuente de alimentación. Parte de la energía será absorbida por el sistema mecánico. Es posible que pueda estimar eso observando cuánto se desplaza por inercia el sistema accionado cuando se apaga sin frenar.

El procedimiento de software que se propone en la pregunta no es particularmente bueno. Lo mejor es reducir la velocidad a un ritmo controlado. El motor automáticamente proporcionará frenado y devolverá energía al controlador. El problema será diseñar el controlador para que acepte la energía devuelta y la disipe o la devuelva a la fuente de alimentación. Eso requerirá un circuito electrónico de potencia en el lado de CC del controlador PWM.

Otra alternativa sería limitar la tasa de reducción de la velocidad para permitir solo la potencia de frenado que se pueda disipar con seguridad por las pérdidas en el sistema.

Es posible que pueda modificar el software para aplicar un pequeño voltaje de CC para proporcionar un par de retención. Debe determinar cuánta corriente CC se puede aplicar sin sobrecalentar el motor. Sería mejor si el controlador pudiera medir y limitar la corriente CC, pero limitar el voltaje a un nivel bajo fijo puede ser suficiente.

Ya tengo un controlador y me gustaría evitar diseñar un nuevo controlador ya que requiere mucha experiencia y habilidades. Sin embargo, puedo escribir software para personalizar el controlador del motor, por ejemplo, puedo aplicar CC a los devanados para proporcionar el par de retención que sugiere. También estaba pensando en poner antes una rampa de deceleración para parar los motores, pero no creo que eso solucione el problema de la rueda libre, por ejemplo, en cuestas.
@MarcusBarnet No creo que haya una solución electrónica para mantener la posición en una pendiente. esto es un robot verdad? ¿Puede simplemente programarlo para que gire de modo que se asiente 90 grados con respecto a la pendiente cada vez que detecte que se ha detenido en una pendiente?
sí, las ruedas del robot pueden girar sobre su eje vertical, por lo que puedo hacer lo que sugieres incluso si no es una solución profesional :) Estaba pensando en aplicar una pequeña cantidad de energía a los motores para evitar que el robot se mueva.
@MarcusBarnet No conozco su definición de profesional, pero desperdiciar poder para hacer algo que no debería requerir poder es mi definición de no profesional. Tienes la desventaja de un helicóptero sin ninguna de las ventajas.
@DKNguyen, seguramente tiene razón, desperdiciar poder no es profesional. El problema es que reposicionar las ruedas requerirá tiempo y mientras tanto el robot puede perder su posición. Esto puede ser un problema cuando ejecuta algoritmos de estimación de pose.
@MarcusBarnet ¿Qué tipo de algoritmos y sensores está utilizando? Estoy bastante seguro de que en realidad acumulará más errores en el proceso de software que describió anteriormente si el algoritmo no es lo suficientemente ajustado y las ruedas pueden girar desde el deslizamiento/fricción constante de inicio y parada y regresar a donde fue. Tener el codificador en el motor detrás de la caja de cambios ayudará a que quede apretado. Supongo que esta plataforma solo se dirige de manera diferencial, ¿verdad? ¿Sin dirección de las ruedas? Porque si las ruedas pudieran girar (especialmente de forma independiente), usted podría girar las ruedas hacia adentro o hacia afuera en una pendiente.
Si no tiene la experiencia y la habilidad para diseñar un nuevo controlador, es posible que deba comprar uno. Creo que existe un riesgo significativo de dañar el controlador o el motor si intenta evitar que el robot descienda por una pendiente invirtiendo el motor de forma intermitente. Si el motor y el controlador están suficientemente protegidos, aún existe el riesgo de que el controlador se apague y deje que el robot se deslice.
@DKNguyen, el robot tiene tracción en las cuatro ruedas y cada rueda puede girar sobre su eje Z, por lo que no es un vehículo con dirección deslizante. Estoy usando IMU, codificadores, LiDAR, Rtk gps y cámara rgb-d. Conducir las ruedas seguramente es una solución para mi problema y realmente lo estoy considerando.
@MarcusBarnet ¡Ah! Entonces eres dorado. Con una base holonómica como esa, puedes ir mucho mejor que la convergencia y la convergencia. De hecho, puede girar las ruedas 90 grados con respecto a la pendiente. Solo obtenga su algoritmo que frena el movimiento y el algoritmo que mantiene activamente la posición en la pendiente lo suficientemente bien como para que el robot tenga tiempo de girar las ruedas. Entonces puede sentarse en una pendiente todo el día sin agotar la energía de la batería. A menudo desearía que hubiera más sensores de tipo de flujo óptico "parecidos a ratones ópticos" listos para usar que simplemente pueden mirar al suelo para ayudar con los codificadores y las IMU.