使用STM32F103ZET6做简易变频器,使用SPWM方式,三相市电经过全桥整流后滤波后得到约510V左右的直流电压,但是经过IPM逆变生成的三相正弦波电压最大只能到250V左右,正弦波方式如下:
1、用定时器1生成频率为10Khz的pwm波,定时器1初始化函数如下:TIM1_PWM_Init(7199,0); //PWM频率=72000000/(7199+1)= 10K/
2、在ram中用公式sinvalue = 3600.0*(1+sin(j*0.0174533))生成360个正弦数据,三相正弦数据如下:
//A相正弦表
j=0.0;
for(i=0;i<=359;i++)
{
sinvalue = 3600.0*(1+sin(j*0.0174533));
if(sinvalue<0) sinvalue=0.0;
PhaseA[i] = (u16)sinvalue;
j=j+1.0;
}
//B相正弦表
j=240.0;
for(i=0;i<=359;i++)
{
sinvalue = 3600.0*(1+sin(j*0.0174533));
if(sinvalue<0) sinvalue=0.0;
PhaseB[i] = (u16)sinvalue;
//printf("i=%d",i); printf(" "); printf("j=%f",j); printf(" ");
//printf("PhaseB=%d
",PhaseB[i]);
j=j+1.0;
}
//C相正弦表
j=120.0;
for(i=0;i<=359;i++)
{
sinvalue = 3600.0*(1+sin(j*0.0174533));
if(sinvalue<0) sinvalue=0.0;
PhaseC[i] = (u16)sinvalue;
//printf("i=%d",i); printf(" "); printf("j=%f",j); printf(" ");
//printf("PhaseC=%d
",PhaseC[i]);
j=j+1.0;
}
3、然后使用定时器2每隔1/18000s的频率查表读取一个正弦数据并送到定时器1用于控制PWM的脉宽,由此得到一个周期为 360*(1/18000)=0.02S的正弦波,即频率为50HZ
这时问题来了,输出频率为50hz时,电机运行电流正常,但是变频器输出电压只能到250V左右,低于25HZ时电机运行出现震动,请各位高手帮忙分析一下电压上不去的原因
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>