PMSM速度例程的疑问
void speed_frq_calc(SPEED_MEAS_QEP *v){
_iq Tmp1;
// Differentiator
// Synchronous speed computation
if ((v->ElecTheta < _IQ(0.9))&(v->ElecTheta > _IQ(0.1))) // 这条语句为什么要对电角度 进行限制,不限制会怎样?
// Q21 = Q21*(GLOBAL_Q-GLOBAL_Q)
Tmp1 = _IQmpy(v->K1,(v->ElecTheta - v->OldElecTheta)); //这句为什么 Tmp1就是Q21格式了,难道Q21格式和Q-GLOBAL_Q格式相乘就等于Q21格式吗?要是等于的话,为什么?
还有就是IQmath库中关于两个不相同的Q格式相乘用的是_IQmpyIQX这个函数啊?
小弟关于以上的疑问甚是不解,请各位知道的解释一下,在此谢谢了! 你程序中定义Q-GLOBAL_Q是Q几格式的啊?关于两个不相同的Q格式相乘用的是_IQmpyIQX这个函数 例程中定义的是Q24格式,所以我疑惑两个不相同的Q格式相乘怎么不用_IQmpyIQX函数 我也对你说的那个电角度限制问题有疑问,不知道限制的作用是什么,也不知道这个0.9和0.1是根据什么来确定的,希望高手能不吝赐教 回复【3楼】cl0201
-----------------------------------------------------------------------
如果没记错的话,是防止临近位置是计算出现误差。long long ago的事情了,不好意思^_^ 回复【4楼】yzak_juel
-----------------------------------------------------------------------
别客气。
速度计算其实是对角度的一个微分,取0.9-0.1之间的角度,之外的忽略,但不知这个被忽略的范围有没有什么讲究,这个好像还真不知从哪研究起 苦逼啊
页:
[1]