智能车制作

标题: 大神求助啊 看看我们的程序 ,我们的PID卡了三天了 一点进展都没得啊 [打印本页]

作者: 假@真:№→丫es    时间: 2013-4-25 11:40
标题: 大神求助啊 看看我们的程序 ,我们的PID卡了三天了 一点进展都没得啊
大神帮忙看看吧  我们这个是怎么回事
我下面程序过后  我吧储存的三次偏差值显示出来  三个数都一样啊   

这个是怎么回事?

int yuding_min=10,yuding_max=40;   //设置预定的最大与最小速度
void speed_PID_init()// PID值设定
{
  dianji.speed_p=18;                              //numbers代表当前测到的速度
  dianji.speed_i=1;
  dianji.speed_d=2;  
}
void speed_deal()//
{

  if(zhidao_flag==1)                               //now_speed代表当前偏差   last_speed1 上一次偏差
{
    now_speed=yuding_min-numbers ;        // last_speed2上上次偏差
    last_speed1=now_speed ;
    last_speed2=last_speed1 ;
  }
  else
  {
    now_speed=yuding_max-numbers ;
    last_speed1=now_speed ;
    last_speed2=last_speed1 ;
  }
  x2=dianji.speed_p*(now_speed-last_speed1)+ dianji.speed_i*now_speed+dianji.speed_d*(now_speed-2*last_speed1+last_speed2);      

}

void speed_control()//
{
    xl_zhong();
    speed_deal();

    zhengzhuan(x2);
}


作者: sky源鸣    时间: 2013-4-25 13:40
last_speed2=last_speed1 ;
    last_speed1=now_speed ;
now_speed=yuding_min-numbers ;    试试把顺序改改~

  
作者: baixiaoday    时间: 2013-4-25 17:48
楼上说的对,你刚把现在速度给上一个,紧接着又传给了上两个速度。
作者: 假@真:№→丫es    时间: 2013-5-2 22:30
sky源鸣 发表于 2013-4-25 13:40
last_speed2=last_speed1 ;
    last_speed1=now_speed ;
now_speed=yuding_min-numbers ;    试试把顺序 ...

嗯  谢谢  问题已经解决了




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