主题中讨论的其他器件:INSTASPIN-BLDC
我正在使用 InstaSPIN BLDC 运行一个小型12伏电机。 我正在使用 SPED_PR_MACRO 来计算电机的 RPM。 从我可以看到的结果中、只计算特定时间内的电转数并计算 RPM。 来自这个引脚的速度 RPM 输出似乎非常嘈杂、所以我对它进行滤波以获得一个平均值。 对于某些电机、RPM 似乎大部分时间为20 RPM、但对于某些电机、RPM 大约为1400 RPM 软件报告的 RPM 为1400 RPM、但电机的机械 RPM 大约为1300 RPM。 所有测试的电机都是相同的模型电机、但我想电机之间的电感略有差异可能会导致不同的 RPM 误差。
我只是想知道为什么速度 RPM 上有这么多的噪声、我该怎么做才能使速度 RPM 与机械 RPM 相匹配? 是否有更好的方法来测量 RPM?
下面是我认为仍然与 TI 实验室中的 InstaSpin BLDC 示例相同的代码。
//在递增计数时,我们需要正速度
if (((mod_dir1.Counter=5)&&(PreviousState==4)&&(mod_dir1.TrigInput))
{
speed1.timestamp =虚拟计时器;
SPED_PR_MACRO (speed1);
SpeedLoopFlag = true;
}
//在递减计数时,我们需要负速度
否则、如果(((mod_dir1.Counter=0)&&(PreviousState=1)&&(mod_dir1.TrigInput))
{
speed1.timestamp =虚拟计时器;
SPED_PR_MACRO (speed1);
speed1.Speed =_IQmpy (speed1.Speed、_IQ (-1.0));
SpeedLoopFlag = true;
}