¿Estas formas de onda BLDC tienen algún sentido?

Estoy tratando de conducir un BLDC con un microcontrolador, un inversor discreto y una red sin sensores para la retroalimentación. Aquí está el modelo que estoy usando y cuál es mi PCBA en última instancia:

ingrese la descripción de la imagen aquí

Estoy manejando esta cosa en bucle abierto en este momento, solo para controlar la cordura de las formas de onda, etc. Esto es lo que obtengo cuando manejo el motor con un ciclo de trabajo de 18kHz, 30%:ingrese la descripción de la imagen aquí

Ya que espero que la secuencia de conmutación suceda así: ingrese la descripción de la imagen aquí, esto parece correcto... Así que creo que lo tengo funcionando bien.

Mi pregunta es, ¿por qué parece que la fase flotante lleva mucho equipaje adicional? Y si así es como se supone que debe ser, entonces, ¿en qué punto diría que están ocurriendo los cruces por cero? Esperaba que se viera un poco más limpio, como en esta nota de aplicación de Microchip http://ww1.microchip.com/downloads/en/AppNotes/01160b.pdf ingrese la descripción de la imagen aquí ¿Ve cómo hay una rampa lineal clara? no lo veo en el mio..

Además, debo señalar que solo estoy haciendo PWM en una pata, mientras que la otra está conectada a un voltaje de CC (GND en estas imágenes, aunque he jugado con dejar VDC conectado y PWM en la pata GND, pero no hizo cualquier cosa en una bonita rampa... Simplemente cambió la polaridad de lo que mostré en mis primeras fotos).

Además, solo para completar, agregué algunas vistas más cercanas de las formas de onda... Nuevamente, recuerde, están funcionando en bucle abierto, por lo que no hay retroalimentación... Simplemente cambio el estado de conmutación en un cambio de temporizador que estaba feliz con para depurar.

Aquí hay una mirada más cercana a la secuencia de conmutación:

ingrese la descripción de la imagen aquí

Y aquí hay una fase flotante ascendente:

ingrese la descripción de la imagen aquí

Y aquí hay una fase flotante descendente... creo que está cayendo... aunque el fondo está subiendo, así que tal vez me equivoque...:

ingrese la descripción de la imagen aquí

¿Es esto correcto, o estoy haciendo algo mal?

Editar

Gracias a la respuesta a continuación, ahora estoy acelerando el motor durante 100 ms para que el BEMF se cocine, y luego vigilo el momento en que mi lado bajo del PWM sube por encima de cero. Luego espero una cierta cantidad de tiempo muerto y luego aprieto el gatillo en el avance de conmutación. Esto es mucho mejor... Antes, el motor funcionaba lentamente a alrededor de 112mA@12V, pero ahora puede funcionar fácilmente hasta 7200rpm a 40ma@12V. Cargar el motor (presionando el eje del rotor con los dedos) no lo ralentiza en absoluto, simplemente aumenta el consumo de corriente como se esperaba.

Fotos o no pasó:

ingrese la descripción de la imagen aquí

ingrese la descripción del enlace aquí

Parece que es una acción de transformador entre bobinas. Siempre recogerás eso. Compruebe las corrientes de fase en lugar de los voltajes.

Respuestas (1)

Sí, las tramas tienen sentido, pero su PWM impuesto no está 'en fase' con el voltaje BEMF.

Como dijiste, estás manejando este circuito abierto, que se parece mucho más a un motor paso a paso, por lo que tu 'positivo' no se alineará con el positivo BEMF. Cuando comience a usar la retroalimentación de su sensor, su BEMF se parecerá mucho más al ejemplo.

Tenga en cuenta que la linealidad del BEMF depende en gran medida del motor. No se alarme al ver alguna curvatura:

Forma de onda BLDC

Tenga en cuenta que esta forma de onda está 'en fase', lo que significa que el variador está aplicando un nivel alto a esta fase a medida que la fase alcanza su punto máximo. Esto es lo que quieres. En este momento, lo estás aplicando en un momento diferente, por lo que estás fuera de fase.

Gracias, es bueno escuchar eso. Cuando dice que PWM no está en fase, está hablando de los pulsos de alta frecuencia, no de la frecuencia de conmutación, ¿verdad? ¿Y puedes aclarar las últimas frases? No estoy seguro porque "la unidad está aplicando un nivel alto a esta fase a medida que la fase alcanza su punto máximo". Gracias por tomarte el tiempo para ayudarme
Ningún problema. En la forma de onda que vinculé, la unidad aplica energía a la fase aproximadamente 1/3 a través de la imagen. Observe que la forma de onda tiene una discontinuidad muy repentina entre el área curva y la erección. Esa es la unidad que aplica un estado alto a la fase, aunque atenuado a través de la acción PWM.
Ok, si te estoy leyendo bien, parece que tengo que esperar a que la parte inferior de la forma de onda deje de estar por debajo de cero (muestra durante el apagado de pwm) y luego, esperar un período de tiempo prescrito y luego cambiar el estado de conmutación? Hacer espuma, enjuagar, repetir? ¿Y también me está diciendo que no puedo verlos en este momento, pero que están ahí en alguna parte? ¿Puede sugerir qué parámetros para el controlador del inversor cambiaría para al menos poder verlos, bucle abierto? Si pudiera hacer que apareciera la forma de onda correcta, incluso si es artificial, ¡eso haría que la depuración del código de retroalimentación fuera mucho más fácil!
@ testname123 Estaba de viaje cuando escribiste esto, perdón por la respuesta tardía. La transición de circuito abierto a circuito cerrado siempre es difícil la primera vez. Puede medir BEMF en la parte superior del PWM o en la parte inferior, no importa, siempre que lo haga en el mismo lugar en ambas ocasiones. Prefiero la parte superior. Cuando detecte un cruce por cero (cuando BEMF > Vbus/2), espere un tiempo según la velocidad y luego conmute. Para la depuración, el motor funcionará bien sin la espera cronometrada, simplemente no será tan eficiente... simplemente conmutará cuando detecte un cruce por cero. ¡Eso debería ayudar!
¡Gracias por la respuesta! Sin embargo, una pregunta... Si observa la segunda forma de onda BEMF descendente, nunca supera Vbus/2... ¿es una falla del bucle abierto? He intentado jugar con la velocidad de avance de conmutación de lazo abierto y el ciclo de trabajo, pero tengo que ir demasiado lento y en un ciclo de trabajo enorme para que el final de la parte superior del BEMF pase por encima de Vbus/2.
Si toma muestras en los picos del PWM (dependiendo de las técnicas de PWM que esté utilizando también), entonces debería poder encontrar el cruce por cero. Esto funciona mejor con métodos PWM complementarios (siempre alto o bajo en las fases impulsadas, nunca inactivo). La imagen de 'rampa lineal clara' que publicaste utiliza un método complementario. ¿Observa cómo hay PWM cuando la fase es 'alta' Y cuando la fase es 'baja'? Su método PWM no tiene PWM cuando la fase es baja. Esto podría ayudar.
Ahh, ¿sabes qué? Estuve despierto toda la noche reescribiendo cosas para tener en cuenta tus consejos de tus comentarios anteriores, y justo cuando estaba disfrutando de las dulces y deliciosas formas de onda y el gemido de éxito de 18 khz, ¡vi este comentario! Tenías razón... La confianza en el algoritmo arregló todo... Empecé a desencadenar un cruce por cero prometido y, efectivamente, cuando dejé que el algoritmo funcionara, aparecieron como prometieron. Incluso agregué un pequeño acumulador/umbral como retención después de un evento de cruce por cero para agregar algo de tiempo muerto al cambio. Actualizaré la pregunta y gracias por la ayuda.