[讨论] [请教]PMSM例程中关于速度计算的问题

lsbeilei   2009-6-20 14:34 楼主


请教工程师和各位牛人:
void speed_frq_calc(SPEED_MEAS_QEP *v)
{

   _iq Tmp1;

// Differentiator  
  // Synchronous speed putation   
   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));
   else Tmp1 = _IQtoIQ21(v->Speed);
。。。。。。

if里的Tmp1的Q应该是GLOBAL_Q吧,但是else里的Tmp1是Q21,这样不是不一致了?

还有,// Q21 = Q21*(GLOBAL_Q-GLOBAL_Q)这句什么意思? 本帖最后由 dontium 于 2015-1-23 11:12 编辑

回复评论 (6)



if里的Tmp1就是Q21的,你问的这句// Q21 = Q21*(GLOBAL_Q-GLOBAL_Q)就是对它下边那句的解释,意思是v->ElecTheta - v->OldElecTheta的结果是GLOBAL_Q,K1是Q21,他们相乘的结果也是Q21的,所以这里的Tmp1和else里的都是Q21的。
本帖最后由 dontium 于 2015-1-23 11:12 编辑
点赞  2009-6-25 07:54


哦,明白了,谢谢LS 本帖最后由 dontium 于 2015-1-23 11:12 编辑
点赞  2009-6-28 01:54
GLOBAL_Q是Q24的,那GLOBAL_Q*Q21为什么是Q21的呢,还是不明白
点赞  2009-11-20 12:58
同楼上的问题,有知道的请赐教,还有就是为什么要将角度的值限定在0.1—0.9的范围内
点赞  2010-5-19 07:46
同样请教角度为什么要把角度限定在0.1-0.9?这两个值如何确定?
点赞  2010-7-27 10:58
引用: batmanliufan 发表于 2009-11-20 12:58
GLOBAL_Q是Q24的,那GLOBAL_Q*Q21为什么是Q21的呢,还是不明白

为何没有人回答这一句呢
点赞  2014-5-13 20:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复