Reducción de consumo en motor paso a paso mediante software

Buenas a todos.

Tengo un motor de pasos controlado mediante un driver del tipo DIR-PULSE y un microcontrolador. El sistema puede ser usado mediante alimentación a la red eléctrica, con una fuente de alimentación, o en el caso de exteriores, mediante batería. La finalidad que busco es implementar, mediante un menú LCD, una opción que permita reducir el consumo del sistema para prolongar la vida de la batería cuando esté en el exterior. Tengo dos ideas de la posible solución, a ver quien puede aportarme algo de luz al respecto:

*Jugar con los micropasos mediante dos pines digitales del driver que según su estado permiten variar entre 1, 2, 4 u 8 micropasos. Desconozco si utilizar 2 micropasos frente a 8 micropasos, por ejemplo, qué situación reduce el consumo, si es que esto ocurre.
* Implementar una fuente de corriente controlada por software, en serie con la batería. Esto, creo, reduce la cantidad de corriente que entra al driver, y por lo tanto prolonga la vida de la batería. En este caso desconozco si mi razonamiento es así en la práctica.

Espero vuestra ayuda. Muchas gracias!!
 
Los motores PaP se trabajan a tensión variable por PWM, trabajando con ese parámetro puedes reducir consumo.

En el Foro existe información al respecto
 
Los motores PaP se trabajan a tensión variable por PWM, trabajando con ese parámetro puedes reducir consumo.

En el Foro existe información al respecto

Gracias por tu respuesta Fogonazo.

El driver que utilizo es un EasyDriver, a este le envío pulsos de pequeña señal (5V) para dirección y pasos, y es su chip A3967 el encargado de enviar los pulsos a las bobinas. Yo solo puedo regular la corriente que entrega el driver al motor mediante un potenciómetro físico en la placa, pero no por software, que es mi intención. Por otro lado, la batería está directamente conectada al driver, que permite entre 7-30V en la entrada, por eso había pensado en la fuente de corriente variable a la entrada.

Supongo que por lo que te comento, tu solución no puedo llevarla a cabo. Tengo otras opciones con el hardware de que dispongo?
 
Aparentemente trabajando sobre la pata N°12 del IC sería posible ajustar el PWM de tensión de salida.
Mira si está disponible como entrada en la placa
 
Curioso, en la placa hay dos pads juntos, pero no unidos, al parecer para poder puentearlos con estaño, nombrado APWR. Será eso?
Mensaje automáticamente combinado:

Aparentemente trabajando sobre la pata N°12 del IC sería posible ajustar el PWM de tensión de salida.
Mira si está disponible como entrada en la placa
Porque la patilla 12 del CI está conectada a la entrada MS2, que junto con MS1 establecen los micropasos
Mensaje automáticamente combinado:

Perdón, no es la 12, es la 13 la que está conectada a MS2. La 12 no se aprecia donde lleva
 
No te puedo ayudar mucho, el color del diagrama afecta mi miastenia ocular y se me pone la vista borrosa :mad::mad:
 
Bueno, considero que conozco un poquito la teoría detrás del motor de paso. Así a la rápida veo 2 aspectos que siendo influenciados reducirían el consumo de energía del motor de paso.

La una es el no alimentar el motor con mas energía que la que requiere para manejar su solicitación. La forma como eso se hace es monitoreando la medida por la cual el rotor se mueve por la solicitación. El concepto es fácil de entender:

7488986004_15c2c57a54_c.jpg


Esta imagen muestra un motor de paso súper sencillo y las 4 posiciones que puede tomar de acuerdo a como es alimentado. El motor de paso sin carga estará en una de las 4 posiciones. Si ahora el motor de paso es sometido a una carga, entonces el rotor girará un poquito hasta que la carga y el torque adicional se compensen. Controladores de motores de paso de Trinamic tienen esta función, lo que le permite al controlador solo alimentar el motor de paso con la cantidad que necesite en cada momento. Esto por ejemplo tiene el efecto que el motor de paso no se calentará tal cual ocurre. Cosa muy deseable si se quiere economizar energía y mas si se quiere operarlo con baterías.

El segundo aspecto para economizar muchísima energía en un motor de paso se basa en que el motor de paso tiene su máximo torque cuando mantiene su posición. Considerando la presentado en el primer aspecto, es de vital importancia saber cuanto tiempo el motor de paso estará girando y cuanto tiempo solo tiene que mantener su posición y a que solicitación esta sometido el motor de paso cuando no gira! Mucho consumo de energía se puede evitar usando algún mecanismo que evite que el motor de paso pueda girar cuando parado. En el caso del modelo de mi velero donde uso un motor de paso con 8 Nm de torque máximo considero usar un freno eléctrico que cuando no aplico tensión al freno este "agarra" el motor de paso y que "suelta" cuando le aplico 24 VDC. Así dimensioné las baterías de LIFeO4, para que cuando estén vacías todavía suministren los 24 VDC.

Estos 2 aspectos son los que pueden influenciar a un máximo la economía energética del motor de paso!
 
Muchas gracias por esa explicación tan completa Hellmut1956.

Los controladores Trinamic parecen una opción excelente, pero mi deseo es poder utilizar el motor de pasos y el driver que ya tengo.

Respecto al freno, mi motor es un pequeño Nema17. Me puede salir más caro el freno que el sistema en si. Lo que si me parece interesante es la idea de desconectar el motor cuando no está sometido a movimiento. Tendré que hacer pruebas para ver si el sistema se mueve sin "holding torque". Está conectado a una varilla roscada y no tiene esfuerzos tangenciales...

Alguna sugerencia con el uso del EasyDriver? Se podría implementar un divisor de tensión por software entre la fuente de alimentación y la entrada de potencia al driver?

Saludos
 
Hola

No, no conozco "EasyDriver". Pero quiero compartir contigo una experiencia que he tenido cuando recién empecé a "jugar"con un motor der paso. Para controlarlo usé una placa con las partes L297/L298. Fue prácticamente un estándar para controlar motores de paso. Alimenté el Motor con 12 VDC, el controlador se encarga de la PWM. Intenté operarlo con esos 12 VDC y pasos completos y además con, si no mal recuerdo con 2 y 4 micropasos. Todo lo que hizo fue vibrar y nada que gire! Tanto traté en vano que puse mis habilidades para resolver problemas en duda. Mas tarde usando una placa de Trinamic llamada StepRocker, ve a Youtube a mirar los videos que tomé de esos experimentos en mi canal, resulto que alimentando ese motor de paso con 12 VDC recién con 64 micropasos empezó a girar sin carga. Ese motor de paso no podía ser operado con menos de 64 micropasos, mucho mas que micropasos que L297/L298 pueden generar.

Ahora para mi aplicación, uso el motor de paso como winche en un modelo de un velero opero con 256 micropasos.

Mirando los videos puedes ver que un motor de paso, también por las características únicas de un cierto motor de paso opera causando mas o menos ruido y vibración. Finalmente te quiero mencionar otro detallito que muchos no conocen: Un motor de paso debe tener una tensión nominal especificada lo mas bajo pasible, el mio tiene 3.6 VDC. El controlador del motor de paso se encarga, usando la función de PWM de limitar la corriente al valor máximo tolerado por el motor, la corriente indicada en la placa de tipo del motor. Mi motor tiene un límite de 5 A. Aplicando la vieja formula:

Potencia en Vatios [W] = Tensión U en [V] * Corriente en A en [A]

Asi la potencia nominal de mi motor s de:

P = 3.6 V * 5 A = 18 W

Yo lo opero a 24 VDC cuando las baterías de LiFePO4 están vacías, tienen que ser recargadas para no dañarlas, a casi 40 VDC con las baterías llenas.

Asi la potencia que me puede dar el motor de paso oscila entre la mínima con 24 VDC y la máxima con 40 VDC:

Pmin = 24 V * 5 A = 120 W
Pmax = 40 V * 5 A = 200 W

Esta potencia adicional, casi 6 veces mas que la nominal mínima y 11 veces mas que la máxima, cumple 2 funciones:

1. La evidente es que tengo mas potencia disponible, ver fórmulas.
2. El torque del motor permite una velocidad de giro mucho mayor con un torque especificado.

Es regla válida que un motor de paso es para bajas rpm. Porque? Un motor de paso ofrece el máximo torque cuando está manteniendo su posición, porque la tensión inducida es "0". Que es la tensión inducida y porque es esencial para validar el uso de un motor de paso o para especificar las características de un motor de paso requerido y los parámetros de su entorno, siendo la tensión con la cual el motor de paso es alimentado sola una de varios factores, pero vital. En una bobina y eso es lo que contiene el motor de paso varias veces, la tensión inducida es generado por la velocidad con la cual la tensión de alimentación es modificada. Cuando mas altas rpm mas rápido el valor de la tensión cambia. Pero la tensión inducida es de polaridad opuesta a aquella con la cual alimento el motor. Así en este video mio, yo quede asombrado hasta que rpm mi motor de paso podía girar sin carga y alimentándolo con solo 24 VDC, lo que equivale el valor mínimo con el cual este motor será operado en mi modelo. Eso es la explicación porqué el video es relativamente largo. Como consecuencia cuando mayor la rpm, la frecuencia con la que hace pasos, mayor es la tensión inducida de polaridad opuesta. Llega el momento donde el motor ya no tiene el torque mínimo y deja de girar. También eso se puede apreciar en el video.

Así, no te desesperes si tu motor de paso acaba no funcionando! Ya al menos conoces las causas. Yo casi que me rindo por empezar a creer que era incapaz!
 
Magistral explicación Hellmut1956. Ahora comprendo mucho mejor los parámetros y funcionamiento del motor de pasos.

La conclusión que yo obtengo es que a mayor voltaje de suministro al driver, mayor torque de salida.

El caso es que he conseguido mover ya el motor de pasos sin problema con un microstep de 1/8. Un microcontrolador envia pulsos STEP y DIRECTION al driver y se mueve tal y como espero que lo haga. Conectado a la red eléctrica funciona correctamente. El motor debe mover una carga entre 1Kg y 3 Kg y lo mueve sin problemas. Lo que quiero es que cuando tenga que mover cargas pequeñas (1Kg) y esté usando la batería, poder decir al microcontrolador alguna orden para que no suministre tanta potencia al motor, ya que no la necesita (y creo así puedo prolongar la vida de la batería)

Un divisor/reductor de tensión controlado por software suena bastante bien, siempre que no se disipe demasiado calor y por lo tanto desperdicie demasiada energia. No se si un transistor o un amplificador operacional podría hacer esta misión.

A lo mejor hay otro método mejor y lo desconozco....
 
Me alegra que la información recibido halla sido de utilidad. Permíteme decirte que en un divisor de tensión la energía que da la misma, solo que aquello economizado por una tensión menor pasada al motor es convertido en calor por las resistencias.
El método mas apropiado es por PWM. PWM no es otra cosa que abrir y cerrar un interruptor con suficiente velocidad para que la tensión que llega al motor no varié demasiado, el término Inglés es "Jitter".

Se%C3%B1ales-PWM-10-40-90.png


Aquí el enlace a una página que explica PWM en Español. Como tu objetivo es el economizar energía me concentro en ello. Si una línea de alimentación eléctrica esta continuamente alimentando el motor, entonces lo que el gráfico muestra es el "Ciclo Trabajo 100%". La superficie debajo de la línea del PWM evidentemente es mas grande debajo de "Ciclo del es de Trabajo 90%" que cuando el "Ciclo de Trabajo es del 10%.La relación de las superficies son la energía que fluye hacia el motor. El porcentaje del "Ciclo de Trabajo" te da el porcentaje de energía que fluye hacia el motor. Aquí no se pierde nada de energía. Controladores todos tienen periferias que generan el PWM basado en los parámetros que se ponen en los registros correspondientes.

Para usar un PWM para controlar un "interruptor electrónico" por ejemplo un MOSFET que determine el flujo de energía hacia el motor "TU" tienes que determinar el largo del "Ciclo de Trabajo" para que el motor cumpla su función. Asumo que tu motor sin PWM en el circuito de alimentación eléctrica esta funcionando como si el "Ciclo de Trabajo" fuera un 100% y que en esas condiciones cumple la función de mover la carga. Usando la funcionalidad PWM de un controlador que opere el circuito del MOSFET, por ejemplo, vas reduciendo el "Ciclo de Trabajo" hasta determinar a que porcentaje el motor deja de tener suficiente potencia. Le sumas un margen al ciclo de trabajo y si este es menor a 100% entonces ya sabes que porcentaje te has ahorrado de energía. Lo mismo haces con el motor sin carga, lo que es el otro estado de tu sistema y así puedes determinar los PWM que te ahorren un máximo de energía y que tiene cierto margen por encima de donde falla.

Quiero resaltar aquí, que la periferia en el controlador usado para generar el PWM tiene una frecuencia bastante alta entre algunos cientos de kHz a algunos MHz. Si la frecuencia del PWM es muy baja, entonces la tensión que llega al motor varía demasiado al punto que llegue cerca de "0". Puedes experimentar con la frecuencia del PWM, también es establecida por parámetros en registros del controlador y ver cuando el motor funciona de forma estable. Escoge un valor mayor que aquel que determines así!
 
Vale Hellmut1956. Conozco como funciona el PWM. Había pensado en tu idea, utilizar un transistor para regular la alimentación de entrada al driver. Busqué información, y leí que un transistor permite regular la Corriente entre colector-emisor, y no la Tensión, por eso pensé que mi idea no era válida.

Por otro lado, si la frecuencia de conmutación del transistor es demasiado alta, también he leído que se calienta y necesita un disipador, por eso no estaba seguro si la pérdida de energía era demasiada.

Entonces, ¿puedo utilizar el transistor para variar la tensión de entrada al driver?

Saludos
 
No investigaste lo que te sugerí ¿ Cierto ?

La inmensa mayoría de driver´s para motores PaP de alguna forma controlan tensión sobre las bobinas mediante PWM, debes investigar como utilizar esa capacidad del driver para reducir la tensión al mínimo indispensable que garantice el correcto movimiento del motor, sin circuitos externos.
 
No investigaste lo que te sugerí ¿ Cierto ?

La inmensa mayoría de driver´s para motores PaP de alguna forma controlan tensión sobre las bobinas mediante PWM, debes investigar como utilizar esa capacidad del driver para reducir la tensión al mínimo indispensable que garantice el correcto movimiento del motor, sin circuitos externos.

Si, estuve mirando en la página donde aparece la documentación. La placa solo permite regular la corriente suministrada a las bobinas mediante el potenciómetro físico que lleva, pero no es práctico andar con un destornillador allá donde vaya, y tener que dejar un agujero en la caja electrónica que contenga el sistema, para poder acceder a el.

Lo que si averígué es que a mayor tensión de alimentación al driver, mayor par motor. La patilla 12 que me sugeriste no tiene ningún pin de la placa donde yo pueda acceder a control del voltaje, y no se como acceder al chip. Es por eso que la única solución que se me ocurre es regular la tensión de alimentación del driver, de forma que sea el microcontrolador el encargado de esa labor, pero no tengo idea de como hacerlo, ya que según he leido las etapas de amplificación por transistor solo regulan la corriente de entrada.

Ando un poco perdido la verdad...
 
Hay que estudiar el funcionamiento del PWM de este integrado y ver como se puede "retocar" por software desde Arduino.
Seguramente con alguna conexión extra algo mas de programación.
 

Adjuntos

  • A3967-Datasheet.pdf
    435.1 KB · Visitas: 5
leí que un transistor permite regular la Corriente entre colector-emisor, y no la Tensión
Estas interpretando mal las cosas.
Los transistores es cierto manejan corriente, y la base regula esa corriente, pero existen otras particularidades, como que la tensión aplicada a la base se refleja en el emisor menos 0.7V lo cual se aprovecha en las fuentes lineales
Tenes que leer mucho más todavía
 
Gracias por extender mi contribución! Mis textos ya resultan bastante largos y queriendo abreviarlos trato de simplificar un poco lo que presento. Lo que a mi siempre me vuelve a sorprender es que muy pocos hacen experimentos para asegurarse que lo que entendieron efectivamente se demuestra en experimentos. Aunque vale el dicho para mi que dice que tire la primera piedra quien es libre de pecados! :
 
Atrás
Arriba