转速测量疑问?
用测频法测电机速度,用定时器和外部中断,外部中断记录霍尔传感器的脉冲,定时器1S时记下脉冲的个数p,这时电机的转速就是N=p/n (p为脉冲个数,n为转盘的磁钽数),如果转换为每分多少转,则要乘以60,那么只要p/n变化1,显示结果不是就要变化60,这样不是不波动太大,请问如何解决? 用低通滤波算法就不会有波动了,如 speed=a*speed_last+(1-a)*speed,speed_last=speed ,a越接近1,滤波时间越长~ bsb_f_gyf 发表于 2012-5-3 00:17 static/image/common/back.gif用低通滤波算法就不会有波动了,如 speed=a*speed_last+(1-a)*speed,speed_last=speed ,a越接近1,滤波时 ...
请问,这个公式就是低通滤波的算法吗?看来是把所有数据进行了一个时间上的有权重的压缩。 低通滤波从一个方面来说就是调整过去和现在获得的数据的权重,另外你这种计数的方式本身就会导致这种情况。编程T法或者M/T法会好很多。 你的控制器是否有捕获功能,你可以捕获沿的变化,然后算时间间隔,这样你就可以精确些,你这种是1S内变化多少次,我的方法是变化一次用多少秒,你可以试试 1S的时间转速变化会比较大的,所以还是计下每转的时间然后处理为转速比较好 syauxwm 发表于 2012-5-3 09:03 static/image/common/back.gif
你的控制器是否有捕获功能,你可以捕获沿的变化,然后算时间间隔,这样你就可以精确些,你这种是1S内变化多 ...
你是说用测周期法吗? adcr 发表于 2012-5-3 09:28 static/image/common/back.gif
1S的时间转速变化会比较大的,所以还是计下每转的时间然后处理为转速比较好 ...
测周期法? 常规做法是加工一个转速盘,1转输出60个脉冲数就OK了. 进中断开始计时,再进中断停止计时,然后计算,结果输出,计数器清零再等中断 cqfeiyuxmj 发表于 2012-5-3 09:35 static/image/common/back.gif
常规做法是加工一个转速盘,1转输出60个脉冲数就OK了.
做一个60孔转盘太麻烦了,我没那些工具,我只在转盘上粘四颗磁铁,粘60个磁铁又不可能 goolloo 发表于 2012-5-3 01:34 static/image/common/back.gif
请问,这个公式就是低通滤波的算法吗?看来是把所有数据进行了一个时间上的有权重的压缩。 ...
有啊 滤波时间常数可以用公式 t=a*dt/(1-a) 大致计算出来 dt为程序循环时间 顶帖,了解了一下
页:
[1]