Señales PWM de vector espacial

He hecho algunos controladores de motor BLDC con modulación trapezoidal y funcionan bien. Ahora estoy tratando de construir otro con modulación de vector espacial, pero como no funciona bien, me confundo cada vez más.

Tengo 3 pares de señales PWM (un total de 6 señales) que manejan un controlador FET integrado de 3 fases. Lo que necesito saber es cómo deberían verse exactamente las formas de onda de la señal 6 PWM para una modulación de vector espacial (SV). Casi todas las imágenes de SV en Internet muestran solo las 3 señales y no estoy seguro de cuáles son exactamente (¿salida de fase, señal de control alta o baja?).

La primera pregunta es: ¿Deberían invertirse las señales PWM alta y baja de un tramo? En otras palabras, ¿debería estar siempre activa una de las señales de los tramos (activa = FET conduciendo)? Por supuesto, se necesita algo de tiempo muerto.

Esta solución no funcionó bien porque tanto el motor como el controlador se calentaron mucho incluso a bajas velocidades. Tal vez tengo algo más mal, pero si solo pienso teóricamente en esto (y miro las señales con el analizador lógico), entonces algunas cosas no tienen sentido. Digamos que quiero tener un ciclo de trabajo bajo (10%), luego, de acuerdo con SV PWM, los 3 FET de lado bajo están encendidos (conduciendo) la mayor parte del tiempo. ¡Pero eso significa que el motor está realmente frenado (descomposición lenta)!

Realmente me confunde porque esta lógica significa que la polaridad de cada fase se intercambia en cada período de PWM. Además, con la modulación trapezoidal, una pierna siempre no está impulsada (los FET alto y bajo están apagados), pero ese no es el caso en SV. ¿O necesito una frecuencia PWM muy alta para obtener una salida suave? Estoy usando 16 kHz porque el controlador no puede manejar más por especificación.

Luego asumí que si la fase SV debería ser positiva, pulso la señal PWM del lado alto y mantengo el lado bajo inactivo. Y si la fase debe ser negativa, pulso la señal PWM del lado bajo y mantengo el lado alto inactivo. Mi teoría era que el motor debería girar libremente al hacer eso. Pero no funcionó bien. También sospecho que de esa manera la corriente inducida fluye a través de los diodos del cuerpo ...

De todos modos, no quiero intentarlo. Me gustaría saber cuál es la forma correcta y luego continuar con el proceso de desarrollo.

Respuestas (2)

SVM proporciona medios para derivar el "voltaje" que debería aparecer en la fase A, fase B, fase C. ALTO == completo +CC, BAJO = completo -CC.

Lo que suele faltar en tales documentos y descripciones es el bloque final: el bloque de conmutación. Este bloque toma estas señales de fase y genera el PWM requerido para el dispositivo de conmutación superior e inferior Y el tiempo muerto durante las transiciones.

Tiene razón en que, esencialmente, la señal de la unidad real es el complemento entre sí CON alguna lógica de interbloqueo.

Salida = ALTA => UpperSWT = ON, LowerSWT = OFF

Salida = BAJO => UpperSWT = APAGADO, LowerSWT = ENCENDIDO

Salida = HIGH-LOW => UpperSWT = apagar, LowerSWT = encendido retardado

Salida = BAJO-ALTO => UpperSWT = encendido retardado, LowerSWT = apagado

Lea este artículo que coescribí. Hay algunas señales PWM hasta el final.

https://drive.google.com/file/d/0BxW4BDaqkIc2RDVBcnItcXJoQWZ0LVN4S2JQcW9uUHVKZkJZ/view?usp=sharing

Miré su publicación, pero desafortunadamente todavía es difícil entender cómo se determinan los ciclos de trabajo de PWM o la activación de la señal.

Intentaré explicar lo que he hecho y tal vez puedas comentar si está bien o mal. Creé una tabla de Excel con fase de 0 a 360 grados. Para cada grado, calculé los ciclos de trabajo de PWM de acuerdo con las fórmulas de modulación SV. La amplitud es 32767. Aquí está el gráfico:

Ciclos de trabajo PWM de modulación de vector espacial

A partir de los ciclos de trabajo, creé una tabla de búsqueda en el código (para cada fase). En MCU, uso PWM de 16 bits alineado al centro y agrego un desplazamiento de 32767 a los ciclos de trabajo (por lo que el rango es de 0 a 65535, que son 0% y 100% en consecuencia. Sin embargo, como con los valores SVM nunca alcanzan la amplitud máxima, entonces el trabajo PWM está siempre entre 5 y 95%.

Estos ciclos de trabajo se aplican a las señales PWM del lado alto. Las señales PWM del lado bajo son complementarias (inversión del lado alto con algún tiempo muerto):

Aquí hay muestras de señales PWM de lado alto desde el grado 0:

Grado 0

Y grado 60:

grado 60

Con esta técnica el motor funciona, pero el conductor se calienta mucho. Así que sospecho que no es completamente correcto. Y como puede ver, todas las piernas están activas todo el tiempo.