28035中SVGENDQ_MACRO(svgen1)模块中SVPWM算法疑惑,请高手帮忙看...

2019-07-22 15:02发布

下面问题困扰我是三天了,还是没有进展,请大神帮忙!
1、扇区判断逻辑?
2、时间变量Ta、Tb、Tc感觉总是和常规的算法不一样,推出不对。
#define SVGENDQ_MACRO(v) v.tmp1= v.Ubeta;               
v.tmp2= _IQdiv2(v.Ubeta) + (_IQmpy(_IQ(0.866),v.Ualpha));     
v.tmp3= v.tmp2 - v.tmp1;            
v.VecSector=3;               
v.VecSector=(v.tmp2> 0)?( v.VecSector-1):v.VecSector;      
v.VecSector=(v.tmp3> 0)?( v.VecSector-1):v.VecSector;      
v.VecSector=(v.tmp1< 0)?(7-v.VecSector) :v.VecSector;      
if     (v.VecSector==1 || v.VecSector==4)                             
       {     v.Ta= v.tmp2;               
         v.Tb= v.tmp1-v.tmp3;            
         v.Tc=-v.tmp2;              
       }                     
     else if(v.VecSector==2 || v.VecSector==5)                                   
       {     v.Ta= v.tmp3+v.tmp2;            
         v.Tb= v.tmp1;               
         v.Tc=-v.tmp1;              
       }                     
     else                                                                        
       {     v.Ta= v.tmp3;               
         v.Tb=-v.tmp3;               
         v.Tc=-(v.tmp1+v.tmp2);            
       }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。