发现在TI的官方文档BPRA048《Clarke & Park Transforms on the TMS320C2xx》给出的CLARKE变换公式如下所示:
但是在InstaSPIN的源代码中,对应的CLARE变换核心公式如下:
clark.h中有 CLARKE_run()中有:
if(numSensors == 3)
{
pOutVec->value[0] = _IQmpy(lshft_1(pInVec->value[0]) – (pInVec->value[1] + pInVec->value[2]),alpha_sf);//zyj: alpha_sf=1/3
pOutVec->value[1] = _IQmpy(pInVec->value[1] – pInVec->value[2],beta_sf);//zyj: beta_sf=1/sqrt(3)
}
else…
在ctrl.c中找到上述公式中对应的alpha_sf与beta_sf系数后,对应的CLARE变换解释为:
Out0=1/3*(2*In0-In1-In2) ;
Out1=1/sqrt(3)*(In1-In2)
与TI给的官方文档中给出的系数不太一致,求问两者哪个出错了?还是都对,我没有理解,求解释一下,谢谢!
rookiecalf:
程序中的运算是标准的等幅值变换,你上面的公式写的有问题,多了个2系数