Problema con señal de motor brushless, el motor produce un silbido

Hola, estoy haciendo un esc para encender un motor brushless de la marca Racerstar de 2300Kv. Para generar la señal trifasica desfasada 120° uso el Pic 16f877a. He investigado y la encontré que la frecuencia de la señal eléctrica esta relacionada a la frecuencia mecánica y a los pares de polos por la siguiente formula:

frecuencia mecanica(rad/s) = [2pi*frecuencia electrica (Hz)]/pares de polos

para los pares de polos conté las bobinas y los dividí entre 2 en total salieron 6 polos, he logrado generar una señal de 531 Hz logrando una velocidad teórica de 88 RPM.
El problema viene cuando conecto el motor y este no se mueve solo emite un silbido, lo que me inquieta es que las señales tienen un tiempo en alto de 300 us que son el punto de coincidencia de las tres señales.
Hice una prueba con una señal aleatoria (sin calculo) y el motor giraba pero muy lento.
Quisiera por favor me den su opinion o alguna sugerencia.
Gracias
 

Adjuntos

  • IMG_20170103_103152163_HDR[1].jpg
    IMG_20170103_103152163_HDR[1].jpg
    64.7 KB · Visitas: 11
  • IMG_20170103_110222408[1].jpg
    IMG_20170103_110222408[1].jpg
    63.6 KB · Visitas: 12
  • IMG_20170103_105911066[1].jpg
    IMG_20170103_105911066[1].jpg
    66.9 KB · Visitas: 10
¿Puedes poner el esquema de la etapa de potencia? Sin él poco podemos decir
 
Sí, tienes razón disculpa acá está, este tipo de configuración lo encontré en varios textos de internet, esto es solo para una fase.
 

Adjuntos

  • Captura.PNG
    Captura.PNG
    29.5 KB · Visitas: 22
Por lo que se ve en las señale no se ve un desfasaje de 120º, si no tiene ese desfasaje o falta una de las señales no girara.Con que tensión lo estas alimentando???
A que le llamas punto de coincidencia de las tres señales???
 
se alimenta con 8 voltios, antes del flanco de bajada hay una diagonal; justo cuando empieza la diagonal la señal que sigue se pone en alto y esto coincide en todas las fases, en cambio en la señal de prueba no se produce esa diagonal. Supuse que esa diagonal es peligrosa puesto que estaría polarizando positivamente dos bobinas por un pequeño instante que es indetectable para mí pero el motor si lo siente.
Para el desfase calculé el periodo de la señal que quería, como son 6 estados para excitar las fases, los dividí entre 6 luego en la programación cada combinación duraría el T/6.
No se si será correcto pero en la programación uso el puertoB y voy mandando la combinación cada cierto tiempo ejemplo:

Portb=00000110
tiempo
Portb=00100100
tiempo
PortB=00100001
tiempo

y así sucesivamente de tal forma que activo los mosfet cada cierto tiempo.



Aca esta el circuito que uso y la imagen de la señal que puse de prueba es de menos frecuencia y no tiene la diagonal al final de cada parte positiva
 

Adjuntos

  • esc.PDF
    19.4 KB · Visitas: 22
  • Señal_aleatoria[1].jpg
    Señal_aleatoria[1].jpg
    73.1 KB · Visitas: 9
Última edición:
ya lo publiqué esta en PDF, recién empecé y por ahora solo estoy usando lo del PDF



Este es un resumen del calculo que estoy haciendo para encender el motor, por ahora solo estoy intentando hacer que gire luego añadiré el control de ancho de pulso y otros complementos.
 

Adjuntos

  • IMG_20170103_160927698_HDR[1].jpg
    IMG_20170103_160927698_HDR[1].jpg
    93.7 KB · Visitas: 19
Última edición:
Un sistema de control de un BLDC es algo complejo y se deben tener en cuenta muchos aspectos referentes tanto al software como al hardware. La más inmediata en cuanto a software es el método de control, ya que dependiendo de éste, se determina la frecuencia de conmutación de las fases. Para determinar esta misma frecuencia también se debe tomar en cuenta el hardware, principalmente los valores de frecuencia de conmutación de los MOSFET con respecto de la corriente que pasa a través de él; este dato lo encuentras en la hoja de especificaciones de la matrícula. Generalmente, estos motoroes, y dependiendo del método de control, operan a frecuencias en los valores de kHZ, debido a lo anterior.
 
Si ya lo comprendi estoy actualmente tomando como referencia una nota de aplicación que da microchip, específicamente la 857. El motor no giraba por que una revolución eléctrica no necesariamente es una revolución mecánica, para esto es importante saber que método de sensado de posición usar. Aquí entran los sensores de efecto hall o el método de cruce por cero donde se mide la fuerza contra electromotriz de la bobina libre y se compara con la mitad del voltaje de alimentación. Cabe resaltar que este método es más económico pero se recomienda usar cuando la carga del motor no varia bruscamente, de lo contrario el cruce por cero será tan rápido que no se podrá sensar.
En realidad la forma de conmutar los mosfet esta bién (concuerda con la tabla de la nota) solo que dependiendo de los pares de polos del rotor del motor (la mitad del numero de imanes) sabré cuantas revoluciones eléctricas necesito para obtener una revolución mecánica. En mi caso tengo 14 imanes, 7 pares de polos por lo tanto 7 revoluciones eléctricas serán 1 revolución mecánica, pero cada revolución eléctrica consta de seis conmutaciones por lo tanto serán 42 cambios de estado.

A esto se le suma la variación de velocidad con pwm que básicamente es hacer que en cada cambio de estado en ves de hacer salir un estado alto continuo hago funcionar una señal pwm por el tiempo que dure la señal en alto.

Por ahora elegí usar los sensores hall, la aplicación lo requiere; además la programación se vuelve bastante reducida en comparación al cruce por cero.

En la nota se encuentra un ejemplo, cabe resaltar que aprendí a leer códigos que no sean míos y pude mejorar la documentación de mis códigos (un logro), pero lo que realmente quiero es hacer mi propio código por eso ya empecé a analizar el código y entender la lógica del autor y luego intentar aplicar mi lógica y crear mi software.
 
Atrás
Arriba