搜索
bottom↓
回复: 6

请教马老师:按照你教材上的方法,使用测频法测量高转速时,当被测齿盘为12齿时,测量的转速

[复制链接]

出0入0汤圆

发表于 2011-4-8 11:02:16 | 显示全部楼层 |阅读模式
1、由于需要测量频率比较高的转速,因此采用测频法测量。
  2、使用T1计数
  3、T0使用CTC模式,T0的定时时间=10ms。
     在T0中断服务程序中读取T1的读数。
  4、设计一个队列,队列长度 = 100(保存100次读取的脉冲数,100 * 10ms = 1s),这样从队列中取出的脉冲数的累加,刚好是1秒钟的脉冲值。


  5、当测速的齿盘=60齿时, 队列中的脉冲数全部累加,刚好等于转速值。

        即:  转速值 = 1秒的脉冲累加 * 60秒 / 60齿   (转速误差±1rpm)
              

  问题是:我现在的齿盘的齿数是12齿, 如果仍然使用1秒钟的队列保存最近1秒钟的脉冲数的话,

       即:
           转速 = 1秒的脉冲累加 * 60秒 / 12齿

          由于 :(1)、1秒钟的脉冲累加是个整数。
                 (2)、60/12 = 5

                因此计算的转速值的尾数只能是0或5,尾数不会出现(1,2,3,4,6,7,8,9)

        虽然我可以使用5秒钟的队列来累加脉冲个数,但是由于时间太长,计算得到的实际转速的“实时性”太差,这种想法在实际应用中不好。


     请问:
            如何解决测频法,计算齿盘为12齿的转速的方法呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-4-8 12:28:59 | 显示全部楼层
说说我的应用吧,实践证明,频率较低小于2Khz使用测周期精度较高。
测频率仅仅适合频率较高才行。你的应用齿盘为12±1rpm齿,在60rpm每秒及时出一个读数精度很低的,精度不会优于1/12(8.3%)的,达不到±1rpm要求。建议使用测量周期法。

出0入0汤圆

发表于 2011-4-8 13:12:17 | 显示全部楼层
你测转速的思路有问题,你1s去数脉冲个数,肯定存在数得的个数和实际偏差一个的情况。假如1s你转n转,那你相当于测n*60个脉冲和n*12个脉冲
精度就是1除以他,齿熟少时明显精度很差,要么增大n(增加测量时间),要么想办法消除1个的误差
即周期法来测频率,保证测量脉冲是完整的,但是低频是精度也有问题
其实你应该用等精度测频法,啥都解决。

出0入0汤圆

 楼主| 发表于 2011-4-11 11:59:42 | 显示全部楼层
高频的时候,采用测频法始终存在±1个脉冲的误差。

      如果采样频率=1S,则假如测速齿盘=12齿时,频率转换成转速

                转速 = 1s采集的脉冲 * 60          1s采集的脉冲 * 60
                       -----------------  =    ----------------------   =  1s采集的脉冲 * 5
                            测速齿盘                  12


         显然增大了误差,即分辨率=5.

         
   结论:测速时,使用测频法是无法得到准确的“转速值”的。
          齿盘=12时,虽然增加采样时间=5S时,可以修正分辨率从5到1,但是也影响了转速的“实时性”。




    请问:马老师,如果我采用AVR的捕获方式,可否彻底解决低频率和高频率的误差问题呢?
       (测频范围达到0.1HZ ---> 15000HZ,而且误差非常小呢?)


         (1)、低频时,扩展定时器的溢出次数,可以测量0.1HZ的频率,但是不知道在齿盘=12齿时,转速误差是否会小于0.5rpm呢?
         (2)、高频时,增大采样次数,可以测量15000HZ的频率,但是不知道在齿盘=12齿时,      转速误差是否会小于0.5rpm呢?

出0入0汤圆

发表于 2011-4-11 13:44:14 | 显示全部楼层
用捕捉功能ICP!?

出0入0汤圆

发表于 2011-4-12 21:21:06 | 显示全部楼层
1.先确定测试间隔,你说是1秒。那么1秒内用测周法也只能测0.5Hz频率,再低的频率根本测不出,需要增加时间的,你先介绍如何在1秒内测出0.1Hz的频率?

2。转速误差为0.5rpm定义的不合理。因为这个是绝对误差,意味着1分内为6个齿的误差,一秒内为0.1个齿,那么达到这个精度至少需要10秒的测量周期!

3。所以要误差小的话,齿数就要多。比如120齿,那么1秒内误差1的话,正好是0.5rpm。12齿的,就需要10秒的测试间隔。要么增加齿数,要么增加测量时间的长度。

=================================================
测量频率,高频采用测频法,低频采用测周法,是指测量精度高,误差小。但不是指什么频率都能测的出。

0.1Hz的频率,你在1秒内如何测的出?测量都测不出,还谈什么误差?

出0入0汤圆

 楼主| 发表于 2011-4-13 09:31:41 | 显示全部楼层
回复【5楼】machao
1.先确定测试间隔,你说是1秒。那么1秒内用测周法也只能测0.5hz频率,再低的频率根本测不出,需要增加时间的,你先介绍如何在1秒内测出0.1hz的频率?
2。转速误差为0.5rpm定义的不合理。因为这个是绝对误差,意味着1分内为6个齿的误差,一秒内为0.1个齿,那么达到这个精度至少需要10秒的测量周期!
3。所以要误差小的话,齿数就要多。比如120齿,那么1秒内误差1的话,正好是0.5rpm。12齿的,就需要10秒的测试间隔。要么增加齿数,要么增加测量时间的长度。
=================================================
测量频率,高频采用测频法,低频采用测周法,是指测量精度高,误差小。但不是指什么频率都能测的出。
0.1hz的频率,你在1秒内如何测的出?测量都测不出,还谈什么误差?

-----------------------------------------------------------------------


      马老师:
         我是说:当使用测频率法时,由于始终存在±1个脉冲的误差,因此只能采取如下方法尽量将误差控制在±1之内。   
            方法1:增加测速时间(从1S增加到5S,即可将误差控制在±1之内)
            方法2:增加齿盘齿数  
            
               方法1虽然可行,但是由于测速时间太长(5S),导致“实时性”太差,如果采集的“转速”仅仅用于监视还可以
                   说得过去,但是5S的测速值进行“PID调节控制系统”,可能不敢使用。

               方法二,一般不可行,你不可能要求用户将齿盘从12齿更换成60齿或者120齿吧。

     其实我是想问:
          使用AVR单片机提供的捕获模式,使用外部12M晶振,测频的精度如何呢(包括低频和高频)?
              
                 (1)、当使用你教材上的方法,低频时,增加定时器的溢出次数,能否测到0.5HZ,同时精度能否达到0.001HZ?
                 (2)、当使用你教材上的方法,高频时,增加捕获的脉冲个数,  能否测到20000HZ,同时精度达到0.001HZ?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 10:05

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表