光电,差速转弯

2020-02-21 21:35发布

刚开始做小车,采用差速转弯,求助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
wgjn123
2020-02-23 21:10


  1. 这是arduino的基本PID程序

  2. unsigned long lastTime;
  3. double Input, Output, Setpoint;
  4. double errSum, lastErr;
  5. double kp, ki, kd;
  6. void Compute()
  7. {
  8.    /*How long since we last calculated*/
  9.    unsigned long now = millis();
  10.    double timeChange = (double)(now - lastTime);
  11.   
  12.    /*Compute all the working error variables*/
  13.    double error = Setpoint - Input;
  14.    errSum += (error * timeChange);
  15.    double dErr = (error - lastErr) / timeChange;
  16.   
  17.    /*Compute PID Output*/
  18.    Output = kp * error + ki * errSum + kd * dErr;
  19.   
  20.    /*Remember some variables for next time*/
  21.    lastErr = error;
  22.    lastTime = now;
  23. }
  24.   
  25. void SetTunings(double Kp, double Ki, double Kd)
  26. {
  27.    kp = Kp;
  28.    ki = Ki;
  29.    kd = Kd;
  30. }
复制代码
output=Kpe(t)+Ki
这是一个PID的基本程序,我看了一下,一知半解,如果用到我的这种小车里,
input:编码器检测小车速度值,
output:输出小车速度:
setpoint:设置小车直线标准速度
unsigned long now = millis();//这是arduino中计时的一个函数,即now为从程序执行到此的时间
我不太了解timechange计算是从哪开始到哪结束???????

一周热门 更多>