Board logo

标题: ECT 测量转速 结果不稳定 [打印本页]

作者: transmission    时间: 2010-7-28 20:50     标题: ECT 测量转速 结果不稳定

关于转速测量的,我测量的结果波动较大,我做了Buffer【8】去除最大最小值后做个除以6平均,还是不稳定有时候会突然蹦下 。S12xdp512的mcu在xgate处理ECT中断,共有三路转速信号的测量。代码如下;
   //read RISING sec rpm @ic3
         interrupt  void ic3(void)
       {                                                
        TFLG1_C3F=1;
          T_3_over=overtime;
        T3over=T_3_over-T_3_over_last;
        if(T3over<0)
        T3over+=300;
        period3=((long)T3over*65535+ TC3-TC3_last) ; //ms
        sec_rpm[i_secrpm%8]= (120000000/period3);
   
       T_3_over_last=T_3_over;
       TC3_last=TC3;
       i_secrpm++;
        //asm SIF;
         }
这个是xgate里头的处理的,ECT的输入捕捉。

接下来在 mcu的每20ms中断里头处理计算转速
interrupt  void clutch0 (void)   
   {   
   XGIF1_XGIF_65=1;                                            
     do{SET_SEM(0);}
       while(!TST_SEM(0));
     
            if(period3>12000000)sec_ave=0;  
       else {  
         
          max_sec=sec_rpm[0];
         min_sec=sec_rpm[0];
       for(i=1;i<8;i++)
          {if(sec_rpm[i]>max_sec)
           max_sec=sec_rpm[i];
           if(sec_rpm[i]<min_sec)
           min_sec=sec_rpm[i];        
          }
       sec_ave=(sec_rpm[0]+sec_rpm[1]+sec_rpm[2]+sec_rpm[3]+sec_rpm[4]+sec_rpm[5]+sec_rpm[6]+sec_rpm[7]-min_sec-max_sec)/6;
       }
    REL_SEM(0);
}
作者: pauljames    时间: 2010-8-6 09:29

转速不稳定会不会是设备本身运行就有问题?我碰到的液压马达,转动过程本身就有脉动现象,有跳变才是正常的。
作者: transmission    时间: 2010-8-12 18:31

里头的那个信号周期的计算出了问题,到65535后的溢出处理要特别修正,所以会突变。不是信号发生器的问题。
作者: hxcic    时间: 2010-8-13 09:46

支持,什么出错了?
作者: 梦逍遥    时间: 2010-8-13 19:46

要怎么修正呢?
作者: 康桥人    时间: 2010-8-13 21:06

我还真没有看明白你的意思 ,不过,我觉得一个测速,还真没有必要弄的那么复杂
作者: transmission    时间: 2010-8-20 16:06

就是输入捕捉的时候,每个上升沿会记录单前的TC值,前后两次的值一般情况是前次的数值小于当前的。若是反了,就是说TC值到65535后溢出,这个时候会出现较小的数减去较大的数,这样计算出来的数据会很大。(unsigned long 数据)这个时刻的处理要修正。注意period3的计算方法。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0