liuhao511zz 发表于 2010-5-20 20:53:51

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这个函数啊?
小弟关于以上的疑问甚是不解,请各位知道的解释一下,在此谢谢了!

cnhzjwq 发表于 2010-6-2 20:07:45

你程序中定义Q-GLOBAL_Q是Q几格式的啊?关于两个不相同的Q格式相乘用的是_IQmpyIQX这个函数

liuhao511zz 发表于 2010-6-5 08:43:50

例程中定义的是Q24格式,所以我疑惑两个不相同的Q格式相乘怎么不用_IQmpyIQX函数

cl0201 发表于 2010-7-27 18:38:45

我也对你说的那个电角度限制问题有疑问,不知道限制的作用是什么,也不知道这个0.9和0.1是根据什么来确定的,希望高手能不吝赐教

yzak_juel 发表于 2010-7-28 16:52:08

回复【3楼】cl0201
-----------------------------------------------------------------------

如果没记错的话,是防止临近位置是计算出现误差。long long ago的事情了,不好意思^_^

cl0201 发表于 2010-7-29 22:01:47

回复【4楼】yzak_juel
-----------------------------------------------------------------------

别客气。
速度计算其实是对角度的一个微分,取0.9-0.1之间的角度,之外的忽略,但不知这个被忽略的范围有没有什么讲究,这个好像还真不知从哪研究起

msrsffxiao7 发表于 2011-12-31 01:46:50

苦逼啊
页: [1]
查看完整版本: PMSM速度例程的疑问