第7章基于TMS320F2812的永磁同步电动机控制
例1、空间矢量算法实现
SVGEN_DQ对象结构体定义
typedefstruct
_iqUalpha输入:轴参考电压
_iqUbeta输入:轴参考电压
_iqTa_iqTb_iqTc
输出:参考相位a开关函数输出:参考相位b开关函数输出:参考相位c开关函数
voidcalc函数指针
SVGENDQ
typedefSVGENDQSVGENDQ_ha
dle
SVGEN_DQ模块调用方法:
mai
voidi
terruptperiodic_i
terrupt_isr
svge
_dq1UalphaUalpha1svge
_dq1UbetaUbeta1svge
_dq2UalphaUalpha2
提供输入参数:svge
_dq1提供输入参数:svge
_dq1提供输入参数:vge
_dq2
svge
_dq2UbetaUbeta2svge
_dq1calcsvge
_dq1svge
_dq2calcsvge
_dq2
提供输入参数:svge
_dq2调用函数模块svge
_dq1调用函数模块svge
_dq2
Ta1svge
_dq1TaTb1svge
_dq1TbTc1svge
_dq1Tc
访问运算结果svge
_dq1访问运算结果svge
_dq1访问运算结果svge
_dq1
Ta2svge
_dq2TaTb2svge
_dq2TbTc2svge
_dq2Tc
访问运算结果svge
_dq2访问运算结果svge
_dq2访问运算结果svge
_dq2
为进一步了解空间矢量算法的基本原理,下面给出空间矢量模块的源代码:
voidsvge
dq_calcSVGENDQv
_iqVaVbVct1t2_iqsector0设相位置(sector)等于Q0逆clarke变换
VavUbetaVb_IQmpy_IQ05vUbeta_IQmpy_IQ08660254vUalfa08660254sqrt32
1
fVc_IQmpy_IQ05vUbeta_IQmpy_IQ08660254vUalfa08660254sqrt32
60度sector的确定ifVa_IQ0sector1ifVb_IQ0sectorsector2ifVc_IQ0sectorsector4
XYZVaVbVc的计算VavUbetaVb_IQmpy_IQ05vUbeta_IQmpy_IQ08660254vUalfaVc_IQmpy_IQ05vUbeta_IQmpy_IQ08660254vUalfa
XVaYVbZVc
ifsector1sector1t1Za
dt2YabcTbTaTc
t1Vc
t2Vb
vTb_IQmpy_IQ05_IQ1t1t2
tbo
1t1t22
vTavTbt1
tao
tbo
t1
vTcvTat2
tco
tao
t2
elseifsector2sector2t1Ya
dt2XabcTaTcTb
t1Vb
t2Va
vTa_IQmpy_IQ05_IQ1t1t2
tao
1t1t22
vTcvTat1
tco
tao
t1
vTbvTct2
tbo
tco
t2
elseifsector3sector3t1Za
dt2XabcTaTbTc
t1Vc
t2Va
vTa_IQmpy_IQ05_IQ1t1t2
tao
1t1t22
vTbvTat1
tbo
tao
t1
vTcvTbt2
tco
tbo
t2
elseifsector4sector4t1Xa
dt2ZabcTcTbTa
t1Va
t2Vc
vTc_IQmpy_IQ05_IQ1t1t2
tco
1t1t22
2
fvTbvTct1
tbo
tco
t1
vTavTbt2
tao
r