Estoy considerando conducir un controlador de motor de escobillas con un puente H y PWM. Me gustaría controlar aproximadamente la velocidad del motor independientemente de la carga del motor (imagine un pequeño robot subiendo/descendiendo colinas).
Como sé que si alimenta un motor con escobillas con una fuente de alimentación de voltaje constante, siempre girará aproximadamente a la misma velocidad, con la corriente consumida reflejando la carga (a la inversa, condúzcalo con una fuente de alimentación de corriente constante, y el la velocidad y el voltaje del motor variarán según la carga).
Sabiendo lo anterior, parece sencillo obtener retroalimentación a través de un A/D para leer el voltaje que se aplica al motor y hacer que el software ajuste el PWM, para mantener el voltaje en el motor establecido de acuerdo con la velocidad demandada.
Necesitaría un LC en el circuito, porque no podría leer el voltaje que tiene ruido PWM.
¿Tiene sentido lo anterior?
Tu idea es incorrecta y no funcionará. Pero hay una idea muy similar que funcionará.
" un motor cepillado con una fuente de alimentación de voltaje constante, siempre girará aproximadamente a la misma velocidad " No. Si lo carga mucho, se ralentizará mucho.
Su idea es básicamente monitorear el voltaje promedio en los terminales del motor y ajustar el PWM para que se aplique un voltaje promedio constante al motor para mantener una velocidad constante con par (esto también requeriría monitorear el voltaje de la batería también). Pero esto no mantendrá la velocidad constante con el par. Simplemente mantendrá una relación entre el voltaje de la batería y el voltaje promedio aplicado al motor a medida que el voltaje de la batería disminuye a medida que se agota. Además, si este es su objetivo, es más fácil medir el voltaje de la batería directamente y ajustar el PWM en consecuencia. No es necesario medir el voltaje desordenado en los terminales del motor. Pero la velocidad del motor seguirá cambiando a medida que cambie el par.
Lo que realmente desea es medir la fuerza contraelectromotriz del motor (BEMF) y ajustar el PWM para mantener constante la BEMF. El BEMF es el voltaje que genera un motor cuando está en marcha libre. En otras palabras, este es el voltaje que genera el motor cuando está retroalimentado y actúa como generador. Pero ahora la pregunta es, ¿cómo se mide el voltaje en el motor mientras está en marcha por inercia si lo está conduciendo con una forma de onda PWM para que no esté en marcha por inercia?
Bueno, en primer lugar, no desea estar muestreando continuamente el voltaje del terminal del motor de manera descontrolada mientras se produce PWM porque el voltaje del controlador (cuando los interruptores están cerrados y envían corriente a través del motor) se mezclan con el voltaje BEMF (cuando los interruptores están abiertos y la corriente no pasa por el motor)
Si desea muestrear el BEMF mientras aplica PWM al motor, debe realizar el muestreo cuando sepa que ambos interruptores laterales HI están abiertos para que el motor no esté accionado, pero desea que un interruptor lateral LO esté cerrado para que pueda midiendo con respecto a GND.
Su MCU puede permitir que su temporizador PWM active muestras ADC para que pueda muestrearlo directamente e ignorarlo cuando la corriente del motor no se fuerza a través del motor e ignorarlo en todos los demás momentos. Es posible que necesite un poco de filtrado RC, pero no algo como un LC.
Si no puede hacer esto, existen soluciones alternativas menos elegantes, como tener interrupciones en la unidad de señal PWM que hacen que el ADC tome una muestra. En el peor de los casos, podría alimentar directamente la señal PWM desde un pin de salida directamente a un pin de interrupción.
Como sé que si alimenta un motor con escobillas con una fuente de alimentación de voltaje constante, siempre girará aproximadamente a la misma velocidad,
Más o menos a la misma velocidad, pero no igual. De hecho, a medida que carga más el motor, su velocidad cae linealmente, hasta llegar a cero en la parada. Esto es causado por las resistencias internas del motor (escobillas, devanados del inducido, etc.) que reducen el voltaje de activación efectivo. Cualquier otra resistencia en serie en el circuito (p. ej., resistencia interna de la batería, dispositivo de conmutación del controlador y resistencias del diodo de retorno) tendrá un efecto similar.
Hay varias formas de compensar este efecto. Una es medir la fuerza contraelectromotriz durante el período de 'apagado' de PWM y controlarlo en un circuito de retroalimentación, como sugiere DKNguyen. Una variación de esto es usar un sensor óptico o de efecto Hall que mide la velocidad directamente.
Otra forma es medir la corriente y aumentar PWM proporcionalmente para producir una "resistencia negativa" que cancela las resistencias positivas en el circuito. La resistencia no se puede cancelar por completo porque si el total es negativo, la velocidad se volverá inestable, pero puede reducir en gran medida la variación de velocidad sin necesidad de una medición sofisticada de back-emf y un bucle PID completo. Este método se usa a menudo en reproductores de casetes y motores de tocadiscos.
En resumen, mi idea original (usar una fuente de alimentación de voltaje constante cruda) no funcionará debido a la resistencia en el circuito y el motor.
El uso de BEMF en realidad podría reducir el recuento de piezas (un objetivo que originalmente debería haber establecido) y realmente funcionaría.
Gracias DKNguyen y Bruce Abbott por sus respuestas reflexivas y exhaustivas.
DKNguyen
bruce abbott
DKNguyen
bruce abbott
tom cumming