请教工程师和各位牛人:
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 编辑
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 编辑
GLOBAL_Q是Q24的,那GLOBAL_Q*Q21为什么是Q21的呢,还是不明白
同楼上的问题,有知道的请赐教,还有就是为什么要将角度的值限定在0.1—0.9的范围内
同样请教角度为什么要把角度限定在0.1-0.9?这两个值如何确定?