Micropasos en motor PAP

Nuyel que hay, gracias por dedicarme tiempo y más aún de exámenes. Que tengas suerte con ellos.

Una pregunta sobre colocar la PWM a los terminales Enable del driver. Si activo y desactivo los puentes (con la PWM) es cierto que corto la corriente que pasa al motor, pudiendo así regularla pero, mientras están cerrados, los cambios que se hagan en las entradas no tendrán efecto sobre el motor y cuando vuelvan a abrirse los puentes se habrán perdido pasos no?

Cuando se habla de "Motor Parado" esto puede provenir de 2 causas.

1) El Motor se frenó por alguna causa mecánica
2) La lógica de control no está aplicando pulsos de avance

Si es el primer caso, la secuencia de pasos se pierde y habrá que reiniciar la posición del motor

Si es el segundo caso, como la lógica no está enviando pulsos, la posición no se pierde, habitualmente en este caso se reduce la corriente del motor a un valor bastante bajo que impida que el motor se mueva (Motor bloqueado) y no muy alto como para que lo llegue a calentar el campo que se encuentra activo.
 
Disculpa, me refería a que el motor no cambiaba de posición (para de girar) pero se mantiene energizado, ahora, el control sobre los pines ENA, ENB no son por modulación normal, se tiene que hacer de manera retroalimentada, durante el cambio el pin debe estar habilitado y solo cuando la corriente se exceda debe interrumpirse durante un periodo muy corto, si usas el PWM del Arduino vas a tener perdidas en el inductor cuando intentes dar pasos, la PWM que sugería para los micropasos es para controlar la corriente del motor, pero el circuito tendría que usar un comparador entre la señal análoga de Rsense para calcular la corriente y la del PWM (usando un filtro para volverla análoga) como señal de comparación.

Te adjunto la simulación del circuito con el que controlaba mi motor, en ese tiempo no sabia de microcontroladores así que lo tuve que resolver con lógica por lo que usé un driver unipolar, ahí se puede ver que durante el primer ms el motor se activa y se mantiene así (cuando apenas está cargando la bobina) pero luego es cuando comienza a oscilar, durante el momento de avanzar un paso ocurrirá lo mismo, el inductor descargado tardará un poco antes de llegar a la necesidad de comenzar a oscilar, por eso no me refiero a un PWM normal, debe ser por retoalimentacion para saber cuando ya es necesario cortar la corriente. Según la simulación aquí trabaja cerca de 19KHz y la corriente RMS es de 1.9A lo que iba bien con mi motor de 2A, solo que nunca lo probé a altas velocidades.
 

Adjuntos

  • Driver.PNG
    Driver.PNG
    27.4 KB · Visitas: 42
He parado de hacer pruebas con los pap porque se me ha jodido el arduino...gracias por la ayuda, cuando arregle el arduino (o compre uno nuevo) sigo con el tema.

S2!
 
los micropasos no son tan cmplicados de generar, yo he generado hasta 32 micropasos, lo use para mi proyecto de titulacion.

para ello use un motor unipolar como bipolar omitiendo la coneccion de los tap centrales, la secuencia ya mencionada anteriormente y usando dos pwm uno para habilitar cada bobina con el driver l293.

por ejemplo para generar dos 4 micropasos se haria de la siguiente manera.

considera que cada paso completo forma un angulo recto, osea 90º,no importar los grados que posee cada paso.

despues divide esos 90º entre la cantidad de micropasos que deseas hacer, para este caso 90/4 = 22.5

despues necesitas sacar cada una de las componentes del grado que corresponda a cada micropaso.

por ejemplo para el paso 0 tu componente en Y es 0 y tu componente en X es 1

el 1 representa el 100% de tu PWM, para el paso 4 tu componente en Y es de 1 osea 100% y la componente en X es 0.

y a que va todo esto, bien quiero dar a entender que los micropasos no son pasos reales sino mas bien, que mediante el control de corriente generado por la variacion del pwm DE CADA BOBINA genera un campo magnetico intermedio entre cada paso que mantiene fijo al rotor generando los micropasos, todo eso se logra variando los dos PWM que alimentan cada bobina con la regla ya mencionada de las componentes.

la señal de cada PWM se metera en las habilitaciones del driver, para mi caso el l293b.

espero les sea de ayuda
 
Hola que tal, he estado introduciendome en lo que respecta a los motores paso a paso, ya he trabajado varias veces con la tarjeta arduino en otras aplicaciones y ahora quiero usarla con este tipo de motores, estoy trabajando con un driver Tb6600 v1.2 y motores de distintos tamaños, el driver me permite modificar los micropasos a los que quiero trabajar, tambien estoy usando la libreria AccelStepper.h , mi pregunta es, yo fisicamente modifico los micropasos pero el programa no lo sabe, se puede ver la diferencia con la velocidad que trabaja, cuando uso micropasos tengo que aumentar la velocidad de los pulsos que manda la arduino? se que al aumentar los micropasos el motor pierde cierto torque y velocidad a cambio de presicion, pero si se aumenta la velocidad de los pulsos se puede compensar algo de eso? he mirado por internet y entiendo lo de la secuencia para hacer mover un motor, aunque en este caso este driver trabaja con un pin de direccion y otro de pulsos, CW y CLK, pero quisiera aclarar lo de la velocidad de los pulsos, muchas gracias.
 
Puedo referirte a mi tutorial avanzado en cosa de PAP aquí en el foro.
cuando tu circuito de control del PAP funciona dando impulsos para avanzar pasos, existen otros métodos, entonces tienes que aumentar la frecuencia de los pulsos para lograr la misma velocidad de giro. El por cuanto aumentar la frecuencia de los pulsos es muy sencillo entendiendo lo de los micropasos! En motores PAP existe la definición de cuantos pasos "completos" el motor requiere para hacer un giro de 360°. Un valor frecuente es "200" pasos por giro de 360°.

Si tu frecuencia de pulsos es de 200 Hz y en pasos completos esto da 1 giro de 360°, entonces:

02 micropasos por paso completo => 400 HZ frecuencia de pulsos
04 micropasos por paso completo => 800 HZ frecuencia de pulsos
08 micropasos por paso completo => 1600 HZ frecuencia de pulsos
16 micropasos por paso completo => 3200 HZ frecuencia de pulsos
32 micropasos por paso completo => 6400 HZ frecuencia de pulsos

Como puedes ver de esta lista, el número de micropasos siempre es una potencia de 2! Ahora, si leo correctamente tu pregunta, tienes un malentendido.

La razón para la pérdida de torque es el valor de la tensión inducida en las bobinas del motor. El torque es proporcional al valor de la tensión aplicada al motor. Cuando aumentas la velocidad de giro estas aumentando la frecuencia. El valor de la tensión inducida aumenta cuando mayor es el cambio del valor de la tensión aplicada a las bobinas por unidad de tiempo y ademas su valor es invertido a la tensión aplicada al motor PAP.

Tomemos un ejemplo: Digamos que aplicas 12 VDC a las bobinas del motor, entonces a cierta frecuencia el valor de la tensión inducida sea de "-6 VDC". La tensión efectiva en las bobinas y responsable para el torque disponible del motor es la suma de las 2 tensiones:

Teff = Tapl. + Tind. = 12 VDC + "-6 VDC" = 6 VDC

Así resulta en el ejemplo que el torque proporcionado por el motor PAP es de solo 50 % comparado al torque con el motor sin girar! De allí resulta que un motor PAP da su máximo torque cuando no gira y este disminuye en relación a como se reduce la tensión efectiva!

El segundo malentendido está en que mencionas que el torque disponible se reduce cuando mayor es el número de micropasos! Me explico:

El valor de la tensión inducida depende del cambio del valor de la tensión por unidad de tiempo. Los pulsos que das para mover el motor de paso son de digamos 200 Hz. Significa que la tensión aplicada cambia 200 veces por segundo entre 0 VDC y 12 VDC, o cada 5 ms sube de 0 VDC a 12 VDC y vuelve a 0 VDC. Si ahora das 6400 pulsos por segundo, entonces el mismo cambio de tensión ocurre cada en 156 µsegundos en vez de cada 5 msegundos. Como consecuencia la tensión inducida aumenta.

La otra parte del malentendido, perdona si soy yo el que te malentendió, es el como se presenta la tensión aplicada a las bobinas del motor PAP. Operando el motor solo en pasos completos el cálculo hecho arriba aplica, pues la tensión varía entre 0 VDC y la tensión aplicada y si el motor no está girando, entonces la tensión aplicada = tensión efectiva, pues la tensión inducida es de 0 VDC!

En micropasos la tensión aplicada no varía de 0 VDC a 12 VDC en cada micropaso, sinó que las tensiones aplicadas durante los 32 micropasos para un paso completo sigue la característica de una curva sinoidal:

serveimage


La primera mitad de la curva sinoidal equivale a:

serveimage


lo que ocurre cuando operas el motor a pasos completos. Ahora puedes ver:

serveimage


que el valor de las tensiones aplicadas entre micropaso y micropaso, entre pulso y pulso es muchísimo menor. De allí resulta que el valor de la tensión inducida será de valor absoluto proporcionalmente menor y como consecuencia la pérdida del torque disponible es mucho menor también. Esto mas que iguala la perdida de torque debido a la mayor frecuencia de pulsos, lo que resulta que dejando girar el motor con la misma velocidad de giro, 32 veces la frecuencia de paso completo para los pulsos el torque disponible es mayor!

Pero no solo por este aspecto del motor de paso el torque disponible aumenta usando micropasos! Quien ha experimentado con motores de paso como la presento en mis vídeos del tutorial aquí en el foro, sabe que bajo ciertas condiciones un motor de paso deja de girar y solo vibra! Una de las razones es que la tensión efectiva adquiere un valor tan bajo, que el motor de paso deja de ser capaz de hacer un paso mas! Pero el otro factor es la estabilidad de los parámetros internos del motor PAP. Un motor PAP girando dando pasos completos es menos estable. Yo, cuando empecé a aprender la materia de motores de paso, me desesperé, pues era incapaz de hacer girar mi motor de PAP aplicandole 12 VDC y pasos completos. Recién en el curso de mis experimentos, el tutorial lo muestra, aprendí que una de las razones era, que mi motor PAP recién empesaba a girar con 16 micropasos cuando aplicaba 12 VDC y pulsos de 16 Hz. Obviamente en mis primeros experimentos con una placa que usaba la combinación de las componentes L297 y L298 no funcionaba! La otra razón, lo confieso, era que la fuente eléctrica que usaba le faltaba potencia!

El máximo de torque que logro usando la placa "stepRocker" era con 256 micropasos, lo que se puede ver en un vídeo del tutorial. Además en ese experimento uso una función de la componente de control usada que generaba 16 micropasos entre micropasos generados por la frecuencia de pulsos. Pero también el perfil de velocidad, "S-shape" impacta esto. En suma, reduciendo la inestabilidad de los parámetros de control del motor PAP reduciendo la velocidad con la cual acelera pude alcanzar una velocidad aún mayor antes que el motor se parase. Esto significa que el torque recién a mayor velocidad de giro deja de ser suficiente o que los parámetros internos del motor causen el parar del motor!
 
Wow, y crei que entendia el funcionamiento de los motores PaP, de verdad muchas gracias por tomarte el tiempo de explicarlo, me pondre a estudiar mas, sobre todo ese tutorial, de nuevo muchas gracias
 
Atrás
Arriba