我在做舵机的pid是遇到了一些问题,大家帮忙看(已解决)

2020-02-20 20:40发布

本帖最后由 FSL_TICS_ZJJ 于 2014-5-4 11:31 编辑
  1. volatile static int err=0,last_err=0,derr=0,l_last_err,dderr;
  2.   volatile static int M_PWM=0;
  3.   volatile static int Kd,Kp,Ki;
  4.   err=50-SenA;                              //偏差  50代表中间
  5.   derr=err-last_err;                       //derr dderr赋初值
  6.   dderr=err-2*last_err+l_last_err;

  7.    Kp=9;//5,7,8,9,
  8.    Ki=0;
  9.    Kd=0;

  10.       M_PWM=derr*Kp+Ki*err+dderr*Kd;                              //15   5  
  11.       //********************************************/
  12.       /********************************************/
  13.    if(M_PWM<-50)       //限位   
  14.         M_PWM=-50;
  15.       if(M_PWM>50)
  16.         M_PWM=50;
  17.      /********************************************/
  18.     l_last_err=last_err; //记录上上次偏差   
  19.      last_err=err; //记录上次偏差值
  20.      Set_Servo(50+M_PWM);  //最后赋值给舵机函数
复制代码
我现在只是把pid的三个系数一个一个的调,但是比例系数p始终不对,始终不稳定。大家看看程序有没有错误
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
thy110
1楼-- · 2020-02-21 14:22
 精彩回答 2  元偷偷看……
thy110
2楼-- · 2020-02-21 14:43
FSL_TICS_ZJJ 发表于 2014-5-4 14:52
就是点击一楼的编辑,然后再标题后面加上(已解决),我已经帮你加好了。以后你就自己加哦! ...

我发的帖子下面没有编辑啊,你帮我编辑后才可以看到编辑,这是怎么回事
FSL_TICS_ZJJ
3楼-- · 2020-02-21 14:52
thy110 发表于 2014-5-4 15:00
我发的帖子下面没有编辑啊,你帮我编辑后才可以看到编辑,这是怎么回事 ...

哦,这样,可能是你权限不够,那么下次问题解决了,你就跟帖说解决了,我帮你加吧。
thy110
4楼-- · 2020-02-21 15:41
FSL_TICS_ZJJ 发表于 2014-5-4 16:24
哦,这样,可能是你权限不够,那么下次问题解决了,你就跟帖说解决了,我帮你加吧。 ...

好的,谢谢啦
desireyao
5楼-- · 2020-02-21 19:13
过来看看你
thy110
6楼-- · 2020-02-21 23:13
 精彩回答 2  元偷偷看……

一周热门 更多>