Formas de onda PWM asombrosas para que los servos minimicen los picos de corriente

4

Si estoy controlando varios servomotores PWM de hobby, ¿hay alguna ventaja al escalonar los pulsos enviados a cada servo?

Con lo que quiero decir, cada servo necesita ver un pulso de ancho ~ 1 ms cada 20 ms. Digamos que tengo 20 servos. Si envío un pulso de 1 ms cada ms a un servo diferente, ¿cambiará eso el toque de la corriente o mejorará el circuito?

Intuitivamente, parece que enviar el pulso de 1 ms a 20 servos en el mismo tick de 1 ms podría causar un pico de corriente sincronizado, lo que maximiza las posibilidades de que se dispare un fusible en mi fuente de alimentación.

¿Es esto una preocupación real?

(pregunto porque la biblioteca Python de Adafruit PWM tiene la capacidad de especificar los tiempos de subida y caída de los pulsos a un servo determinado, en lugar de solo especificar la frecuencia. No veo ninguna razón para construir la API de esta manera a menos que quiero escalonar las señales por alguna razón).

    
pregunta Symmetric

5 respuestas

2

Primero, asumiré que con "servo" realmente se refiere a los servomotores hobby que se controlan mediante pulsos de 1 a 2 ms, no al significado general de "servo" en la electrónica y los sistemas de control. Deberías definir correctamente este término en tu pregunta.

Estos servos de hobby solo usan el pulso de 1-2 ms como una forma de comunicar un nivel analógico. Los antiguos servos de afición totalmente analógicos integraban el pulso, lo mantenían y luego lo utilizaban como la señal de control para comparar la señal de realimentación de posición. Los tipos digitales más nuevos miden el ancho del pulso digitalmente, luego usan ese valor para comparar la retroalimentación de posición con.

De cualquier manera, la conducción del motor no está sincronizada con el pulso. La señal de accionamiento del motor se actualiza constantemente de forma interna al valor de control guardado derivado del último impulso. Un nuevo pulso solo cambia esta entrada de control.

Dicho esto, un paso repentino en la señal de control probablemente causará un error a corto plazo, al cual el mecanismo de control reaccionará al impulsar el motor hasta que se asiente en la nueva posición. Por lo tanto, si bien el motor siempre está activado, generalmente se impulsará más fuerte después de un cambio de paso en la entrada, lo que solo puede ocurrir inmediatamente después de un impulso.

En general, diría que es bueno escalonar los pulsos a múltiples servos de hobbies si no es una gran carga hacerlo. Tenga en cuenta que esto viene automáticamente si se usa un enlace de radio disponible. Estos enviarán los pulsos para cada uno de los servos de hobby que controla de forma secuencial de todos modos. Si está controlando varios servos de hobby desde un solo microcontrolador, la multiplexación también puede dictar impulsos secuenciales.

Si funciona más simplemente para generar todos los pulsos al mismo tiempo, entonces siga adelante y no se preocupe por eso. 20 ms es un tiempo corto, y la corriente adicional de un cambio repentino en la entrada de control llevará más tiempo que en la mayoría de los casos. En el caso de cambios lentos, los pasos son pequeños de todos modos, por lo que la corriente debería ser relativamente uniforme. Ponga una tapa más grande en la fuente de alimentación si está preocupado por eso.

    
respondido por el Olin Lathrop
1

Con los servos "analógicos" más antiguos, es muy probable que cualquier pico de corriente en el controlador del motor se corresponda con el pulso en la señal de control, por lo que su preocupación sería válida. Aunque dichos impulsos tienden a ser muy estrechos, y pueden manejarse mediante una capacidad de desacoplamiento adecuada en su línea de alimentación, con pocas posibilidades de explotar un fusible.

Con los nuevos servos "digitales", los impulsos del motor son esencialmente independientes de los impulsos de la señal de control, por lo que no es beneficioso jugar con la sincronización de estos últimos. Pero la frecuencia PWM del motor suele ser mucho más alta, con una ondulación correspondientemente menor en la fuente de alimentación, en comparación con los servos analógicos.

    
respondido por el Dave Tweed
1

En un servo analógico, los impulsos PWM del motor se crean restando el impulso servo del impulso de realimentación interno, luego estirando la diferencia para producir un rango PWM más amplio. Por lo tanto, el inicio de cada pulso del motor está ligeramente sincronizado con el final de cada pulso de servo, y los pulsos de servo escalonados pueden reducir la corriente de alimentación de pico cuando se mueven varios servos.

La mayoría de los servos digitales generan pulsos PWM de alta frecuencia que son más fáciles de suavizar.

Formas de onda de servo actuales

Corriente de servo analógica HS-125MG (50Hz PWM)

(5mS/divhorizontal,500mA/divvertical)

CorrientedelservodigitalHS-5475HB(~1kHzPWM)

    
respondido por el Bruce Abbott
0

En un período de 20 ms, quizás haya problemas con el suministro actual. Puede encontrar útil un diodo amortiguador o de rueda libre. Sin embargo, en cambio, ¿qué sucede si envía señales pwm digitales (.4mA por línea) a una fuente de corriente controlada por voltaje?

    
respondido por el PJazz
0

Tradicionalmente, los pulsos de servo se escalonaban de todos modos, porque se transmitían uno por uno por un enlace de radio.

Si el movimiento del servo en el peor de los casos toma más de 20 ms (lo que hace), entonces se ejecutarán varios servos simultáneamente, por lo que el escalonamiento de los servos pulsos no ayudará (mucho) a eliminar los pulsos actuales, durante los períodos de actividad alta.

Para garantizar que (digamos) seis servos nunca se ejecuten simultáneamente a una velocidad de actualización de 20 ms, no solo tendrías que escalonar los pulsos del servo, sino que cada movimiento del servo tendría que durar menos de 3 ms, una actividad muy ligera.

Entonces, ¿tal vez la API que limita la velocidad de movimiento se trata de controlar el impulso mecánico? No puedo ver que tenga mucho impacto en la fuente de alimentación.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas