2-Phase Motor SVPWM

0

Intento implementar una modulación de vector espacial para motores de 2 fases y las señales me parecen bien, pero el motor realmente no gira, solo gira por una fracción (alrededor de 60 °) de 360 ° y luego se detiene allí . Lo sé por motores trifásicos, cuando el número de pares de polos no es correcto.

Por lo tanto, el hardware funciona bien para motores trifásicos y el codificador tiene una resolución de 15 bits, que es más que suficiente para un motor paso a paso de 1,8 ° / paso. También probé un número diferente de pares de polos, pero estoy seguro de que 50 pares de polos para un motor de 200 pasos / revoluciones están bien. He encontrado varios papeles para controlar un motor de 2 fases con un inversor de 3 fases, donde ambas fases se conectan juntas de esta manera:

EltiempoSVPWMparaunmotorde2fases,controladoconunmotorde3fasesdebeteneresteaspecto,dondeelpuntoneutroestáconectadoaS3:

Asíquemitiemposeveexactamenteigual,asíqueestoysegurodequeimplementéelalgoritmoparalageneracióndeSVPWMde2fasesdelamaneracorrecta(giradoamano):

Luegomirélascorrientes(negro:Ia,rojo:Ic):

Ytambiénmeparecebien,exceptoquenoestoysegurodesilascorrientesestánseparadas90°o120°.

Losvoltajesdefase(Ta-TbyTc-Tb,dondeTabceslatemporizaciónPWMyTbparaelpuntoneutro)medanuncambiodefasedealmenos90°,porloquepuedover,asíqueestodeberíafuncionarbien(lossaltosa0sonerroresdetransmisión):

TambiénechéunvistazoalPWMalineadoenelcentro,yaquefuncionaparamotorestrifásicos,estanecesidaddefuncionar:

Entonces, realmente no tengo idea de por qué el motor no gira cuando inyecto una corriente. Luego traté de omitir el control actual y, por lo tanto, intenté avanzar el sector para SVPWM de esta manera, donde debug_angle es el ángulo eléctrico:

if(debug_angle>=0 && debug_angle<45) {
    Sec=1;
} else if(debug_angle>=45 && debug_angle<90) {
    Sec=2;
} else if(debug_angle>=90 && debug_angle<180) {
    Sec=3;
} else if(debug_angle>=180 && debug_angle<225) {
    Sec=4;
} else if(debug_angle>=225 && debug_angle<270) {
    Sec=5;
} else if(debug_angle>=270 && debug_angle<=360) {
    Sec=6;
} 

Así que no tengo más ideas de lo que podría causar el problema. ¿Alguien ha hecho algo similar?

    
pregunta HansPeterLoft

0 respuestas

Lea otras preguntas en las etiquetas