关于测周法转速测量改进:采样次数的设定

来源:互联网 发布:php截取字符串第一组 编辑:程序博客网 时间:2021/06/16 02:54
我从一个研究资料中看到的方法。下面我写出了具体实现过程
根据上次的转速设定本次采样的次数N,计算采样时间后,得出本次转速N.。精度很高,适合高低转速。最低可至4 r/min
1.求N采样脉冲个数,
2.采样完成后,调出采样的用时t。
3.计算转速
n=(N/124)/t*60     r/min
N=int(n/E)+1     //int(n/E)向下取整函数。正好适合单片机操作。除法就是他的实现。加1是启动时的考虑。
1.设计一个计时器,计算采样用时t
2.每次计算采样个数。
3.采样个数计数用外部中断完成
注意:由于1500r/min不是很高,计算N时可以适当放大100倍。
数据:1500r/min  一圈124齿,即124个脉冲。
每分钟就有124*1500个脉冲。  3100个/秒的脉冲。
例如:把E设置为10  n1=0; N1=1; 求得n2=1/124/t  t=1/3100 秒 则n2=1/124*3100=25r/s=1500r/min 很准。再推,假设转速成了1200r/min
则:为2480 个/秒脉冲
N2=int(1500/E)+1=151;  n3=151/124/t2*60; t2=采样计数时间 实际t2=N2*(1/2480)=151/2480   n=151/124/(151/2480)=151/151/124*2480*60=1200
可见:此种方法的关键是:1.采样个数N 2.采样时间t.  所以设计程序时,采样中断不处理任何东西,只N--。时间t直接用一个16位定时器。最长65MS.定时不够长就用标志位递增。主程序一直循环判断 while(N==0){}
原创粉丝点击