智能车制作

标题: 车子调速问题怎么解决 [打印本页]

作者: 王锐英    时间: 2013-6-25 20:39
标题: 车子调速问题怎么解决
我们组的速度一直都没有调好 现在有个想法 就是通过直接调节加速度计的零偏量来调节
void speed_control1(void)
{
    float fDelta;
    float fP,fI;

    g_fCarspeed=(g_RightMotor+g_LeftMotor)/2;
    g_RightMotor=0;
    g_LeftMotor=0;

    fDelta1=CAR_SPEED_SETfDelta-g_fCarspeed;


      if(g_fCarspeed>=24)
    {
      ZaxleOffset=1228;
      SPEED_CONTROL_P=10;  
      SPEED_CONTROL_I=0;
      g_fSpeedControlIntegral=0;  
    }
    else if(15<g_fCarspeed<18)
    {
      ZaxleOffset=1198;
      SPEED_CONTROL_P=10;  
      SPEED_CONTROL_I=0;
      g_fSpeedControlIntegral=0;  
    }
     else if(18<=g_fCarspeed<23)
    {
      ZaxleOffset=1200;
      SPEED_CONTROL_P=10;  
      SPEED_CONTROL_I=0;
      g_fSpeedControlIntegral=0;  
    }   
    else if(-2<fDelta1<2)
    {
       ZaxleOffset=1189;
       SPEED_CONTROL_P=20;  
       SPEED_CONTROL_I=1;
    }
    else if(4<g_fCarspeed<8)
     {
       ZaxleOffset=1188;
     }

     else if(1<g_fCarspeed<=3)
    {
       ZaxleOffset=1186;
       SPEED_CONTROL_P=20;  
       SPEED_CONTROL_I=1;   
    }
}

    求大神指点 这样做有时候有效 但是参数老是要改 另外编码器一定要识别方向么?

作者: qurter    时间: 2013-6-25 22:01
首先小生觉得编码器不一定要有方向识别,因为如果LZ占空比给的对的话,小车肯定是往前走,不可能出现负速度的,所以方向可以不要,除非LZ想要小车做到原地直立。

其次小生觉得通过调节加速度计零偏移位置来调节小车加速度是很不错的想法,之所以参数老变小生觉得有可能是因为加速度计测量参数的不稳定造成的,小生觉得LZ把参数做成跟速度有关的函数可能会有效果,不要完全靠分段,如果编码器的瞬时值跳变一点,LZ程序的参数就会有比较大的变化了。其次加速度计测量也不太稳,如果用陀螺仪角度或者融合角度的话可能效果会更好。

以上就是小生愚见
作者: 王锐英    时间: 2013-6-27 13:40
qurter 发表于 2013-6-25 22:01
首先小生觉得编码器不一定要有方向识别,因为如果LZ占空比给的对的话,小车肯定是往前走,不可能出现负速度 ...

谢谢   我再把他调好一点 看看有没有效果





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2