我只找到了SVGEN_DQ.h 和SVGEN_MF.h的文档说明,但是没有看到SVGEN.h中公式推导,例程没有看明白,求文档说明
SVGEN.h中例程如下
#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); \
}
wang wang hongxing:
我也在困惑这个子程序的推导过程,SVGEN_DQ.h的文档说明的比较详细,也很容易推导,但是这个就不知所以然。
还有一个现象,我用SVGEN.h与PWM.h配套,在三相PFC中最小的升压倍数也是1.8倍,在逆变程序中,降压倍数超过两倍,而不是0.7倍,不知道是什么造成的。
从SVGEN_DQ.h的解释文档中可以看到有个系数Vdc/SQRT(3),我感觉这个1/sqrt(3)应该怎么使用造成错误的根源,但是有找不到办法。
我只找到了SVGEN_DQ.h 和SVGEN_MF.h的文档说明,但是没有看到SVGEN.h中公式推导,例程没有看明白,求文档说明
SVGEN.h中例程如下
#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); \
}
yanhui fu:
回复 wang wang hongxing:
我最近是把这个SVGEN模块直接用SVGEN_DQ取代了,修改一下声明,定义直接可以使用
我只找到了SVGEN_DQ.h 和SVGEN_MF.h的文档说明,但是没有看到SVGEN.h中公式推导,例程没有看明白,求文档说明
SVGEN.h中例程如下
#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); \
}
wang wang hongxing:
回复 yanhui fu:
我用过SVGENDQ.H,当时烧保险丝,我没继续使用,看来我也要细致的研究研究,应该是能用的。
我只找到了SVGEN_DQ.h 和SVGEN_MF.h的文档说明,但是没有看到SVGEN.h中公式推导,例程没有看明白,求文档说明
SVGEN.h中例程如下
#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); \
}
yun he:
是啊,Ti怎么不给出说明文档呢?