TI中文支持网
TI专业的中文技术问题搜集分享网站

TI电机控制例程中速度滤波是什么算法?光看程序看不懂,希望大佬帮忙解决一下。

Connect inputs of the SPEED_FR module and call the speed calculation macro 连接速度滤波模块的输入并调用速度计算宏
// ——————————————————————————
speed1.ElecTheta = _IQ24toIQ((int32)qep1.ElecTheta);
speed1.DirectionQep = (int32)(qep1.DirectionQep);
SPEED_FR_MACRO(speed1)

完整程序如下:

#define SPEED_FR_MACRO(v) \
/* Differentiator*/ \
/* Synchronous speed computation */ \
v.Tmp = v.ElecTheta – v.OldElecTheta; \
if (v.Tmp < -_IQ(0.5)) \
v.Tmp = v.Tmp + _IQ(1.0); \
else if (v.Tmp > _IQ(0.5)) \
v.Tmp = v.Tmp – _IQ(1.0); \
v.Tmp = _IQmpy(v.K1,v.Tmp); \
/* Low-pass filter*/ \
/* Q21 = GLOBAL_Q*Q21 + GLOBAL_Q*Q21*/ \
v.Tmp = _IQmpy(v.K2,_IQtoIQ21(v.Speed))+_IQmpy(v.K3,v.Tmp); \
/* Saturate the output */ \
v.Tmp=_IQsat(v.Tmp,_IQ21(1),_IQ21(-1)); \
v.Speed = _IQ21toIQ(v.Tmp); \
/* Update the electrical angle */ \
v.OldElecTheta = v.ElecTheta; \
/* Change motor speed from pu value to rpm value (GLOBAL_Q -> Q0)*/ \
/* Q0 = Q0*GLOBAL_Q => _IQXmpy(), X = GLOBAL_Q*/ \
v.SpeedRpm = _IQmpy(v.BaseRpm,v.Speed);

#endif // __SPEED_FR_H__

user3885747:低通滤波器

赞(0)
未经允许不得转载:TI中文支持网 » TI电机控制例程中速度滤波是什么算法?光看程序看不懂,希望大佬帮忙解决一下。
分享到: 更多 (0)