496772467 发表于 2012-5-3 00:02:42

转速测量疑问?

用测频法测电机速度,用定时器和外部中断,外部中断记录霍尔传感器的脉冲,定时器1S时记下脉冲的个数p,这时电机的转速就是N=p/n (p为脉冲个数,n为转盘的磁钽数),如果转换为每分多少转,则要乘以60,那么只要p/n变化1,显示结果不是就要变化60,这样不是不波动太大,请问如何解决?

bsb_f_gyf 发表于 2012-5-3 00:17:24

用低通滤波算法就不会有波动了,如 speed=a*speed_last+(1-a)*speed,speed_last=speed ,a越接近1,滤波时间越长~

goolloo 发表于 2012-5-3 01:34:56

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,滤波时 ...

请问,这个公式就是低通滤波的算法吗?看来是把所有数据进行了一个时间上的有权重的压缩。

tiancaigao7 发表于 2012-5-3 07:53:17

低通滤波从一个方面来说就是调整过去和现在获得的数据的权重,另外你这种计数的方式本身就会导致这种情况。编程T法或者M/T法会好很多。

syauxwm 发表于 2012-5-3 09:03:44

你的控制器是否有捕获功能,你可以捕获沿的变化,然后算时间间隔,这样你就可以精确些,你这种是1S内变化多少次,我的方法是变化一次用多少秒,你可以试试

adcr 发表于 2012-5-3 09:28:00

1S的时间转速变化会比较大的,所以还是计下每转的时间然后处理为转速比较好

496772467 发表于 2012-5-3 09:33:44

syauxwm 发表于 2012-5-3 09:03 static/image/common/back.gif
你的控制器是否有捕获功能,你可以捕获沿的变化,然后算时间间隔,这样你就可以精确些,你这种是1S内变化多 ...

你是说用测周期法吗?

496772467 发表于 2012-5-3 09:34:04

adcr 发表于 2012-5-3 09:28 static/image/common/back.gif
1S的时间转速变化会比较大的,所以还是计下每转的时间然后处理为转速比较好 ...

测周期法?

cqfeiyuxmj 发表于 2012-5-3 09:35:49

常规做法是加工一个转速盘,1转输出60个脉冲数就OK了.

adcr 发表于 2012-5-3 09:40:28

进中断开始计时,再进中断停止计时,然后计算,结果输出,计数器清零再等中断

496772467 发表于 2012-5-3 09:42:51

cqfeiyuxmj 发表于 2012-5-3 09:35 static/image/common/back.gif
常规做法是加工一个转速盘,1转输出60个脉冲数就OK了.

做一个60孔转盘太麻烦了,我没那些工具,我只在转盘上粘四颗磁铁,粘60个磁铁又不可能

bsb_f_gyf 发表于 2012-5-3 13:19:44

goolloo 发表于 2012-5-3 01:34 static/image/common/back.gif
请问,这个公式就是低通滤波的算法吗?看来是把所有数据进行了一个时间上的有权重的压缩。 ...

有啊 滤波时间常数可以用公式 t=a*dt/(1-a) 大致计算出来 dt为程序循环时间

jinjin_xia 发表于 2013-6-18 15:53:30

顶帖,了解了一下
页: [1]
查看完整版本: 转速测量疑问?