- 积分
- -71
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 0
- 最后登录
- 1970-1-1
该用户从未签到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
F2812 SVPWM程序IQmath版
F2812 SVPWM程序IQmath版.rar
(909 Bytes, 下载次数: 47)
-
- //======================================================================================================
- //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);
- }
复制代码 |
评分
-
查看全部评分
|