实例中FOC中svgen程序如下:
Va_tmp = -(pVab->value[0]>>1);
Vb_tmp = _IQmpy(SVGEN_SQRT3_OVER_2,pVab->value[1]);
Va = pVab->value[0]; //alpha
Vb = Va_tmp + Vb_tmp; //-0.5*alpha + sqrt(3)/2 * beta;
Vc = Va_tmp – Vb_tmp; //-0.5*alpha – sqrt(3)/2 * beta;
if (Va > Vb)
{
Vmax = Va;
Vmin = Vb;
}
else
{
Vmax = Vb;
Vmin = Va;
}
if (Vc > Vmax)
{
Vmax = Vc;
}
else if (Vc < Vmin)
{
Vmin = Vc;
}
Vcom = _IQmpy(Vmax+Vmin, _IQ(0.5));
// Subtract common-mode term to achieve SV modulation
pT->value[0] = (Va – Vcom);
pT->value[1] = (Vb – Vcom);
pT->value[2] = (Vc – Vcom);
请问,有这个sv的说明么?我把常规的sv算法替换进去,电机不会转。我用的常规sv算法,和附件中的原理相同。只是替换时候我有做修改。请问怎么将常规的sv用到FOC中?谢谢
rookiecalf:
附件中算法运算到了分配pwm开关时间的环节,这边则是alpha,beta坐标转换到abc坐标,应该还有后续运算时间的部分,你有找过在哪里实现没有