1 votos

Bucle cerrado de motor paso a paso: codificador de correspondencia y resolución de micropasos

Estoy tratando de conseguir un motor de alta precisión y no tan extremadamente alta resolución para trabajar.

Es un motor paso a paso con 200 pasos/revoluciones y el controlador del motor puede computar hasta 400x de microstepping. Tenemos un codificador óptico de alta precisión con 4700000 líneas por revolución (en realidad hay 23600 líneas físicas, pero 200x interpolación por la interfaz). Y hay una caja de cambios 1:360.

edit: El encoder está montado en el lado del actuador, DETRÁS de la caja de cambios, etc.

Nuestro objetivo principal es tener una precisión global superior a 1 m°. La resolución no es tan importante como la precisión. Por ello, puede haber posiciones que sólo se puedan alcanzar de forma discreta (dependiendo del motor y de los micropasos).

En este contexto, dejemos que \$N\$ sea el factor de micropaso y \$M\$ un preescalador (divisor) para el codificador que se puede ajustar en el controlador del motor. NO hay multiplicador.

La resolución del codificador es entonces \$\frac{360°\cdot M}{23600\cdot 200}\approx {76}\cdot{M} µ°\$ . mientras que la resolución del motor con engranaje es \$\frac{360°}{360 \cdot 200 \cdot N}=\frac{5}{N}\mathrm{m}°.\$ Hasta ahora no hay forma de que las resoluciones coincidan, es decir $$\frac{360°\cdot M}{23600\cdot 200}=\frac{360°}{360 \cdot 200 \cdot N}\Leftrightarrow M\cdot N=\frac{23600}{360}\approx65.55556.$$ No puedo elegir ninguna combinación de M y N (ambas enteras) para alcanzar los 65,56, ¿estáis de acuerdo? ¿La única manera es comprar otro codificador con un número de líneas diferente, por ejemplo 18000 líneas/rev?

Tengo algunas preguntas sobre el asunto:

  1. Si pudiera elegir: ¿Qué resolución debería ser mayor? ¿El codificador o el motor?
  2. ¿El hecho de no poder igualar las resoluciones es un problema en cuanto a la precisión o no? Entonces, ¿compramos otro codificador o no?
  3. Sólo puedo alcanzar posiciones que sean múltiplos de \$\frac{5}{N}\$ milidogrado, ¿correcto?
  4. ¿Qué pasa si quiero controlar el motor con un control PID que está incrustado en el controlador del motor, puede haber problemas? Porque no alcanzaré ninguna posición arbitraria con un 100% de precisión si 2. es correcto.
  5. Incluso si mi posición fija es un múltiplo de \$\frac{5}{N}m°\$ no hay garantía de que la posición eléctrica ESTABLE (es decir, una posición en la que el par de retención es alto) coincida con la posición de mi codificador debido a: a) los efectos de no linealidad en el micropaso, b) la desalineación del codificador y c) los efectos producidos por la caja de cambios (c es una edición, perdón por olvidarme de mencionarlo). Un control PID podría no llegar a descansar ya que la parte integral suma y en cualquier momento el motor hace un "paso" en la dirección "correcta". Pero luego hay un error con signo contrario. Así que oscila todo el tiempo, aunque la posición sea un múltiplo de \$\frac{5}{N}m°\$ . ¿Cómo se soluciona ese problema?
  6. (esta pregunta es opcional para mi tarea pero es interesante) ¿Existe una forma de fijar cualquier posición arbitraria con un motor paso a paso? He leído que los motores paso a paso no son otra cosa que motores síncronos con un elevado número de polos, ¿no? Así que un control vectorial podría ser apropiado, ¿es así?

¡Muchas gracias!

editar :

Por tus dos respuestas veo, que posiblemente no dije lo suficientemente claro cuáles son los problemas ;-)

La pregunta 6) es realmente opcional. Necesitamos posiciones precisas, pero no arbitrarias. Pero he leído (lamentablemente no recuerdo dónde), que los motores paso a paso en bucle cerrado puede se comportan como motores síncronos. Porque simplemente son motores síncronos con un elevado número de polos y más par de retención.

La cuestión principal aquí es cómo elegir la resolución del codificador y del motor. Tal vez queremos comprar un nuevo codificador y por lo que podría conseguir uno con algo más que 23600 líneas para que coincida con las resoluciones. Pero esto es un esfuerzo que podemos ahorrar si no hay ninguna ventaja.

¿El codificador aumenta la precisión en una configuración de micropasos? No lo creo, porque no hay un control "continuo", sino que sólo hay pasos. ¿Pero los pasos no son 100% precisos debido a la no linealidad, etc.?

Me pregunto si este montaje es tan especial. Sé que los steppers se usan frecuentemente en lazo abierto, pero un fabricante mundial de motores y herramientas mecánicas ofreció el sistema de lazo cerrado como si fuera estándar. Debe ser utilizado allí fuera, casi todos los conductores de motor tiene una entrada de codificador. Así que pensé que sería una simple pregunta :)

editar número 2 :

Sólo para aclarar: no quiero tirar el dinero, sólo intento mejorar un poco los sistemas existentes (5 o 6 estaciones de trabajo con 2 motores y codificadores para tareas de calibración de sensores).

No compré la primera versión del sistema ya que soy nuevo aquí. Hoy en día tal vez iría con servos para ser más flexible, pero son más caros. El encoder solo se utiliza para asegurar que se alcanza la posición final (en micropasos) más o menos. Como mejora quería habilitar el control PID embebido para lidiar con los cambios de velocidad y carga durante un movimiento. Pero parece que manejar el sistema con un controlador PID no es la mejor idea, porque siempre habrá alguna oscilación porque las resoluciones no coinciden?

Los sistemas son lo suficientemente preciso por el momento. Es más bien una cuestión de cómo mejorar el sistema en materia de velocidad y fiabilidad. Y para mí personal para entender mejor las cosas.

Ahora la cuestión de tirar el dinero: Compraremos otro sistema pronto. Para asegurar la compatibilidad nos quedamos con los mismos componentes (esta vez, la próxima vez esto podría cambiar debido a mi "investigación"). Pero existe la posibilidad de elegir otra resolución de codificador. Esto no significa que sea mejor, es más, es peor, pero sigue siendo lo suficientemente preciso. La principal ventaja que se me ocurre es que las resoluciones coinciden. Ya sea 1:1 o 1:2 (el codificador es más preciso). Estoy tratando de averiguar, si esto realmente es un beneficio o no.

4voto

Magic Smoke Puntos 649

La respuesta corta

olvídalo, por el 5. Editar: bucle abierto.

Con respecto a su edición

La cuestión principal aquí es cómo elegir la resolución del codificador [...]

Pedir un codificador mejor no es la pregunta correcta. Un codificador de mayor resolución acercará los dos estados del flip-flop-control (que esencialmente estás creando aquí), pero seguirá siendo un flip-flop.

[...] y el motor

Como se ha dicho anteriormente, si necesita posiciones precisas que sean no arbitraria, basta con utilizar bucle abierto . Podrá alcanzar las posiciones calculadas en 3. y hacerlo con precisión. Elegir una resolución más alta para el motor significa pasos más pequeños entre las posiciones. Si esto es necesario depende de las posiciones que quiera alcanzar.

¿Aumenta el codificador la precisión en una configuración de micropasos?

No. Un micropaso es un micro paso y llegar a una posición intermedia todavía no es posible con exactitud. Los micropasos representan la interpolación más pequeña posible. Si necesitas pasos más pequeños, intenta encontrar una electrónica que haga más micropasos por paso.

pero un fabricante mundial de motores y herramientas mecánicas ofreció el sistema de bucle cerrado como si fuera estándar

Trabajé en una empresa que producía sistemas de posicionamiento como el que usted describe. No importa si es una norma o no. Lo que importa es si es la herramienta adecuada para el trabajo o no.

Tal vez sea un producto estándar. Pero no es el producto adecuado para su aplicación.

casi todos los controladores de motor tienen una entrada de codificador

Los controladores de motor modernos suelen ser capaces de controlar diferentes tipos de actuadores. En el caso de otros actuadores es muy común que se controlen en bucle cerrado, pero eso no significa que haya que utilizar esa entrada. Dependiendo del controlador, la entrada del codificador puede ser combinada con los interruptores de límite. El uso de interruptores de límite es común para una gran cantidad de actuadores (incluidos los motores paso a paso) para encontrar los límites, porque los codificadores generalmente no dan valores de posición absoluta.

Y ahora algo completamente diferente: ¿Por qué los hombres tienen pezones?

Así que pensé que sería una simple pregunta

Lo es, al igual que la respuesta que proporcioné anteriormente.

Tengo la sensación de que has comprado este sistema de posicionamiento, te has dado cuenta de que no funciona en tu aplicación como estaba previsto y crees que comprando un codificador más nuevo/mejor/lo que sea vas a resolver tus problemas de alguna manera.

Me resulta muy extraño que usted enumera todos los problemas que son intrínsecos a un motor paso a paso controlado en bucle cerrado a ti mismo, pero te niegas a dejar de lado tu idea de que un mejor codificador resolvería todos tus problemas.

No sé qué tipo de respuesta esperas. Tal vez algo como "Sí, adelante, tirando más dinero para que funcione". Pero esa no es la que puedo darte, lo siento.


La respuesta original

Al final siempre será un control de encendido y apagado entre dos micropasos. No hay manera de evitarlo. Se llaman paso motores por una razón.

Si te parece bien que sólo puedas alcanzar las posiciones dictadas por los micropasos del motor paso a paso, hazlo funcionar en bucle abierto.

Si quieres un movimiento suave y preciso a posiciones arbitrarias, utiliza un motor normal.

Según mi experiencia con este tipo de sistemas, se necesitan requisitos especiales para justificar un motor paso a paso de bucle cerrado y vivir con el inconveniente mencionado anteriormente.

Intentando responder a algunas de sus preguntas:

  1. El bucle está cerrado. Si el codificador tiene menos resolución, no puede distinguir entre dos posiciones del motor. Si el motor tiene menos resolución, no puede realizar ese movimiento para corregir lo que el codificador midió como error de posición.
  2. El motor paso a paso sólo puede alcanzar (y mantener) las posiciones según a sus (micro)pasos. Esas son las posiciones que puede alcanzar con precisión. lanzar un codificador de mayor resolución no cambiará eso.
  3. Las posiciones que puede alcanzar un motor paso a paso dependen de dos números \$\frac{steps}{revolution}\$ que es una propiedad del motor mismo y \$\frac{microsteps}{step}\$ que depende del electrónica que acciona el motor. $$\frac{360°}{\frac{steps}{revolution} \times \frac{microsteps}{step}}=angle~of~one~microstep$$
  4. Depende de su definición de lo que es un problema para usted (su sistema) si nunca alcanzar una posición es un problema, entonces sí, ahí está tu problema.
  5. Como se ha señalado anteriormente, utilice un actuador diferente o un bucle abierto
  6. Si quieres tratar esto como un motor síncrono, ¿por qué no simplemente utilizar un motor síncrono? He visto mucho que la gente que la gente viene con motores paso a paso para aplicaciones en las que simplemente no son no son aplicables. Usted tropezó con algunos de los problemas que uno puede encontrar. Esta no es una pregunta opcional. es la obligatoria primera cuestión de utilizar las herramientas adecuadas para el trabajo adecuado. Si usted Si cree que un motor paso a paso no es la herramienta adecuada para este trabajo, no no intente forzarlo a desempeñar ese papel, sino que elija otro actuador o de control diferente.

3voto

Kip Diskin Puntos 11

En primer lugar, si quieres movimientos precisos y repetibles, el microstepping en absoluto puede no ser un buen enfoque. Además de los efectos de la no linealidad en la interpolación que mencionas, los micropasos pueden no ser repetibles por otras razones como la adherencia. Es decir, para pequeños micropasos el motor podría no moverse en absoluto, mientras que llegar a la misma posición desde una velocidad más alta, o desde una dirección diferente, resulta en una posición diferente.

En segundo lugar, si tu objetivo de movimiento es un número de pasos discretos, es probable que siempre tengas el problema de que los pasos del motor no te lleven exactamente a esos pasos, a menos que tengas suerte o puedas pedir exactamente el motor o la transmisión mecánica que necesitas. Esto es esencialmente ruido de cuantificación en el ámbito espacial. Aunque es posible que no puedas resolverlo a un coste razonable, si investigas en esa dirección puedes encontrar cómo cuantificarlo al menos, y determinar si se puede diseñar para que esté dentro de tus especificaciones. También hay algunas técnicas como el dithering para resolver el problema (o al menos convertirlo en un problema diferente) que pueden o no ser útiles, dependiendo de su aplicación.

Así que para responder a lo que creo que era su pregunta básica, no, no hay una manera de conseguir la posición arbitraria con un motor paso a paso. La fricción, la inclinación en la transmisión y otras cosas similares significan que a una escala lo suficientemente pequeña, los intentos de dar un paso más preciso no son predecibles.

La solución a este problema, si la mejora de las tolerancias no es una opción, es un sistema de bucle cerrado. En ese caso, el problema se traslada a la medición precisa de la posición actual, pero la inclinación y la adherencia se convierten en un problema menor, ya que se miden y, por tanto, el bucle de control puede compensarlas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X