Tengo un codificador de motor de CC (MTR11_200) que gira a 100 RPM con un codificador (EH_30_M) que envía 200 PPR cómo arreglar el motor de CC para que gire en un ángulo específico utilizando esta información.
Tengo un codificador de motor de CC (MTR11_200) que gira a 100 RPM con un codificador (EH_30_M) que envía 200 PPR cómo arreglar el motor de CC para que gire en un ángulo específico utilizando esta información.
cómo arreglar el motor de CC para girar en un ángulo específico usando esto información?
Desarrollas un pequeño sistema de control. Desde la posición "neutral", la demanda de movimiento se puede traducir en una demanda para incrementar "tantos" pulsos. Por lo tanto, enciende el motor y cuenta los impulsos (digitalmente) y cuando se cumple el recuento de impulsos requerido, apaga el motor. Sin embargo, es posible que se produzca un rebasamiento, por lo que deberá invertir la dirección del motor (posiblemente utilizando un puente H) para devolverlo a la posición de destino solicitada.
Esto se convierte en un problema que puede resolverse con un controlador de 3 términos (PID) si la posición continúa oscilando y hay muchos algoritmos para resolver esto, generalmente el más simple es que a medida que se acerca al conteo de objetivos, disminuye la velocidad. Velocidad del motor.
Lo que está preguntando es conocido en esta industria como un servomotor. Los motores a menudo están equipados con un codificador para el eje del motor si el control es uno rotativo. (Tenga en cuenta que hay muchas aplicaciones de servomotor en las que el codificador puede ser de un tipo diferente. Por ejemplo, para un actuador lineal, el motor gira un tornillo de avance que a su vez crea un movimiento lineal y un codificador lineal controla la posición lineal.
Los servomotores están optimizados de varias maneras para que sean adecuados para la aplicación. Un aspecto es que deben diseñarse para tolerar estar en una posición estática mientras se aplica corriente a sus devanados. Los servomotores también especifican cuidadosamente su inercia de rotación, ya que debe coincidir con la inercia de rotación de la carga para proporcionar la operación más estable.
Otra parte completa de este campo es la electrónica del controlador utilizada para operar los servomotores. Esto generalmente se divide en dos partes. Un módulo de controlador traduce las señales de control a la tensión y la corriente requeridas para impulsar los devanados del servomotor. La segunda parte es el servocontrol. Este contiene el algoritmo PID para enviar comandos al módulo del controlador para hacer que el servomotor vaya a una posición específica o para que funcione a una velocidad de rotación particular. Los controladores normalmente son completamente programables para que puedan caracterizarse por los motores, las cargas y las velocidades a las que los componentes del sistema pueden acelerar y estabilizarse una vez en una posición o velocidad.
La entrada al controlador en modo operativo normalmente tendrá la forma de inicialización para encontrar una posición de inicio y luego ordena ir a una posición en particular o correr a una velocidad en particular. Normalmente, todo esto se hace en unidades de pulsos de codificador, pero algunos controladores tienen la capacidad de convertir unidades físicas del sistema en pulsos de codificador sobre la marcha a medida que los comandos se envían al controlador.
Por ejemplo, primero puedes convertir pulsos en ángulo. 200 incrementos equivalen a 360 grados, o -100/99 pulsos equivalen a -180 / aprox. +180 grados.
SetpiontPulses = (200/360) * Angle_degrees; // punto de ajuste en pulsos
Puede utilizar la función de módulo para el cálculo:
SP-PV = (SetpiontPulses - MeasuredPulses + 300)% 200 - 100;
donde% es un operador de módulo. Lo que obtendrá es la diferencia de ángulo más corta (valor de punto de referencia) expresada en pulsos -100 a 99, un total de 200 incrementos, ya que 0 también es una posición válida.
Usted alimenta esta diferencia en un controlador PID. También necesitaría un codificador con marca cero y un módulo contador.