Controlando un motor BLDC trifásico con un codificador magnético absoluto

1

Estoy trabajando en un proyecto en el que es necesario volver a escribir el controlador del motor porque no se está comportando correctamente (el motor vibra demasiado y es casi imposible sintonizar sus parámetros). La persona responsable del controlador no puede trabajar en él, por lo que me queda solucionar el problema.

A tener en cuenta: en avance, el motor funciona perfectamente bien.

Estamos utilizando un motor BLDC trifásico modificado con un variador de potencia personalizado con 6 MOSFET controlados por un DVR8301. El lado del código de la generación PWM funciona bien (FF funciona). Sin embargo, el circuito de retroalimentación está roto.

Para el codificador estamos utilizando un codificador RM08 de Renishaw. Es un codificador magnético absoluto de 12 bits.

Mi pregunta es cuál es la manera más rápida de controlar este motor con un circuito cerrado. Quiero usar un control de velocidad.

El motor se controla mediante un SoC de Zynq con un código escrito en C ++ que se ejecuta a interrupciones de 20 kHz. Sin embargo, tengo todo conectado a un speedgoat sobre EtherCAT para poder leer y escribir datos a 10kHz a través de Simulink en tiempo real también. Si puedo obtener un principio de funcionamiento en Simulink, puedo traducirlo a código fácilmente.

A continuación he adjuntado un esquema de las entradas y salidas.

El PWM se calcula en función de la magnitud. El ángulo es lo que estamos usando en el controlador feedforward. Incrementamos el ángulo en 0.9 unidades y le restamos 360 de él si supera ese valor (para evitar el desbordamiento).

Mi idea fue usar un controlador de ganancia p simple donde el punto de ajuste de la velocidad es por cuánto se incrementa el ángulo y la salida del sistema sería la magnitud. La magnitud tendrá que aumentar para adaptarse a la carga en el motor, por lo tanto, el controlador de velocidad.

En conclusión, agradecería alguna orientación sobre cómo crear este controlador de motor

    
pregunta Ortix92

0 respuestas

Lea otras preguntas en las etiquetas