Controlador ESC Sensorless BLDC/PMSM - STM32
Descripción General
Este proyecto consiste en el desarrollo de un Controlador Electrónico de Velocidad (ESC) de código y hardware abierto para motores síncronos de imanes permanentes (PMSM) y de corriente continua sin escobillas (BLDC). Está basado en el microcontrolador de 32 bits STM32F103C8T6 (núcleo ARM Cortex-M3).
La estrategia central del desarrollo consiste en su enfoque sensorless (sin sensores físicos de posición como sensores Hall o encoders), estimando la posición del rotor mediante la medición de la fuerza contraelectromotriz (BEMF) en la fase flotante.
Características Técnicas
- Procesador: STM32F103C8T6 (Frecuencia de reloj a 72 MHz).
- Control Sensorless: Detección de cruces por cero (Zero-Crossing) de la BEMF utilizando un comparador analógico externo de bajo costo (LM339N).
- Modulación: Modulación por Ancho de Pulsos Sinusoidal (SPWM) para la fase de arranque en lazo abierto, transitando a conmutación trapezoidal de 6 pasos en lazo cerrado una vez establecida la BEMF.
- Algoritmo de Control: Controlador Proporcional Integral (PI) en tiempo real para la regulación de velocidad.
- Comunicación: Interfaz serial UART para configuración dinámica de parámetros y monitoreo en tiempo real.
- Validación: Ensayos experimentales con motores BLDC recuperados de discos rígidos acoplados a una etapa de potencia basada en puentes H L298N.
Arquitectura del Sistema
El sistema separa estrictamente la sección de lógica/procesamiento de la etapa de potencia, lo que facilita mediciones experimentales seguras y la iteración rápida del firmware.
- Detección de Cruce por Cero (ZC): Un divisor resistivo atenúa los voltajes de fase del motor para adaptarlos a la escala lógica del LM339. El comparador confronta estos niveles con el punto neutro virtual del motor.
- Firmware Detallado: El microcontrolador STM32 gestiona la conmutación a través de timers avanzados configurados en modo PWM con generación de tiempo muerto (Deadtime), evitando cortounidones en la etapa de potencia.
- Máquina de Estados de Arranque: Dado que a velocidad cero no hay BEMF, se implementó una rampa de aceleración forzada (lazo abierto) mediante paso a paso síncrono hasta alcanzar la velocidad de acople.
Resultados y Limitaciones
- Rango Operativo: Estabilización exitosa de velocidad desde las 100 RPM hasta aproximadamente 5500 RPM (sin carga).
- Respuesta Térmica: La etapa lógica y de potencia mantuvo temperaturas de operación seguras bajo cargas medias de laboratorio.
- Desafíos Técnicos: El sistema actual presenta sensibilidad ante variaciones bruscas de torque en la carga, lo que puede provocar la pérdida de sincronismo (desenganche).
Repositorio y Documentación
Toda la documentación técnica del firmware, esquemas del circuito comparador y el paper académico asociado están disponibles de manera abierta:
- Código y Hardware: GitHub - esc-bldc-sensorless-stm32
- Documentación de API: Generada mediante Doxygen para todo el proyecto embebido en C.
- Informe de Proyecto: Incluye el paper académico en formato LaTeX y diagramas de flujo completos.