maxthonzwq 发表于 2012-5-7 14:20

F2812 SVPWM程序IQmath版

F2812 SVPWM程序IQmath版


//======================================================================================================
//IPark变换UD,UQ-->UALFA,UBETA获得给定信号
//======================================================================================================
Ualfa = _IQmpy(Ud,Cosine) - _IQmpy(Uq,Sine);
Ubeta = _IQmpy(Uq,Cosine) + _IQmpy(Ud,Sine);
   
//======================================================================================================
//通过UALFA,UBETA确定扇区Sector,根据扇区Sector计算Ta,Tb,Tc,SVPWM实现
//======================================================================================================
B0=Ubeta;
B1=_IQmpy(_IQ(0.8660254),Ualfa)- _IQmpy(_IQ(0.5),Ubeta);// 0.8660254 = sqrt(3)/2
B2=_IQmpy(_IQ(-0.8660254),Ualfa)- _IQmpy(_IQ(0.5),Ubeta); // 0.8660254 = sqrt(3)/2
Sector=0;
if(B0>_IQ(0)) Sector =1;
if(B1>_IQ(0)) Sector =Sector +2;
if(B2>_IQ(0)) Sector =Sector +4;
X=Ubeta;
Y=_IQmpy(_IQ(0.8660254),Ualfa)+ _IQmpy(_IQ(0.5),Ubeta);// 0.8660254 = sqrt(3)/2
Z=_IQmpy(_IQ(-0.8660254),Ualfa)+ _IQmpy(_IQ(0.5),Ubeta); // 0.8660254 = sqrt(3)/2
if(Sector==0)
{
   Ta=_IQ(0.5);
   Tb=_IQ(0.5);
   Tc=_IQ(0.5);
}
else if(Sector==1)
{
   t1=Z;
   t2=Y;
   Tb=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
   Ta=Tb+t1;
   Tc=Ta+t2;
}
else if(Sector==2)
{
   t1=Y;
   t2=-X;
   Ta=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
   Tc=Ta+t1;
   Tb=Tc+t2;
   }
else if(Sector==3)
      {
   t1=-Z;
   t2=X;
   Ta=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
   Tb=Ta+t1;
   Tc=Tb+t2;
   }
   else if(Sector==4)
   {
   t1=-X;
   t2=Z;
   Tc=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
   Tb=Tc+t1;
   Ta=Tb+t2;
   }
   else if(Sector==5)
   {
   t1=X;
   t2=-Y;
   Tb=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
   Tc=Tb+t1;
    Ta=Tc+t2;
}
else if(Sector==6)
{
   t1=-Y;
   t2=-Z;
   Tc=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
   Ta=Tc+t1;
   Tb=Ta+t2;
}
MfuncD1=_IQmpy(_IQ(2),(_IQ(0.5)-Ta));
MfuncD2=_IQmpy(_IQ(2),(_IQ(0.5)-Tb));
MfuncD3=_IQmpy(_IQ(2),(_IQ(0.5)-Tc));

MfuncF1=_IQtoF(MfuncD1);//用于观察
MfuncF2=_IQtoF(MfuncD2);
MfuncF3=_IQtoF(MfuncD3);
}

甲可虫 发表于 2012-5-11 09:30

不知道是不是正确的哦

行动苍狼 发表于 2013-1-30 23:50

看看是什么程序
页: [1]
查看完整版本: F2812 SVPWM程序IQmath版