智能车制作

标题: 求大神帮小妹看看这个电机的PID函数有什么问题 [打印本页]

作者: 黄美纯    时间: 2013-7-11 21:24
标题: 求大神帮小妹看看这个电机的PID函数有什么问题
本帖最后由 黄美纯 于 2013-7-11 21:25 编辑

我电机的PWM范围是0-100,0最大,100停止。码盘测速脉冲几十到几百左右,5ms采集一次。这个PID 函数有问题吗?
  1. uint8 PID_Speed(uint8 RealSpeed,uint8 SetSpeed,float Kp,float Ki,float Kd)
  2. {
  3.   int8 ei;
  4.   static int8 ei_1,ei_2;
  5.   int8 PWM_Speed;
  6.   static uint8 PrePWM_Speed;
  7.   ei = RealSpeed-SetSpeed;
  8.   PWM_Speed = PrePWM_Speed+(Kp*ei-Ki*ei_1+Kd*ei_2);
  9.   if(PWM_Speed<0)
  10.     PWM_Speed = 0;
  11.   else
  12.   {
  13.     if(PWM_Speed>100)
  14.       PWM_Speed = 100;
  15.   }
  16.   PrePWM_Speed = PWM_Speed;
  17.   ei_2 = ei_1;
  18.   ei_1 = ei;
  19.   return PWM_Speed;
  20. }
复制代码



作者: fanglichao    时间: 2013-7-11 22:19
小妹妹   你这增量PID  公式 貌似不对吧
作者: 黄美纯    时间: 2013-7-12 08:07
fanglichao 发表于 2013-7-11 22:19
小妹妹   你这增量PID  公式 貌似不对吧

那公式是什么?

作者: 穆旦阿斗    时间: 2013-7-12 10:24
0到100? 你这范围太小吧,控制的应该会比较粗糙,别个都是几千的
作者: jimmy0087    时间: 2013-7-12 10:25
OUTPUT=LastResult+Kp2*(PulseERR-PulseOLDERR)+Ki2*PulseERR+Kd2*(PulseERR+PulseOLDOLDERR-2*PulseOLDERR);

这个能看懂不   
作者: fanglichao    时间: 2013-7-12 12:56
增量  =  KP*(当前误差—上次误差) + KI*当前误差 + KD*(当前误差 - 2*上次误差 + 上上次误差)
作者: 黄美纯    时间: 2013-7-12 18:14
穆旦阿斗 发表于 2013-7-12 10:24
0到100? 你这范围太小吧,控制的应该会比较粗糙,别个都是几千的

我是8位的,你的意思是说,我要提高成16位的吗?那我试试。。

作者: 黄美纯    时间: 2013-7-12 18:15
jimmy0087 发表于 2013-7-12 10:25
OUTPUT=LastResult+Kp2*(PulseERR-PulseOLDERR)+Ki2*PulseERR+Kd2*(PulseERR+PulseOLDOLDERR-2*PulseOLDERR ...

恩恩,懂了,就像6楼说的那样吧

作者: 穆旦阿斗    时间: 2013-7-12 21:59
黄美纯 发表于 2013-7-12 18:14
我是8位的,你的意思是说,我要提高成16位的吗?那我试试。。

嗯 ,反正很多人都是搞的几千的

作者: 黄美纯    时间: 2013-7-13 09:36
fanglichao 发表于 2013-7-12 12:56
增量  =  KP*(当前误差—上次误差) + KI*当前误差 + KD*(当前误差 - 2*上次误差 + 上上次误差)

这三个参数应该先调哪个?

作者: fanglichao    时间: 2013-7-13 10:14
黄美纯 发表于 2013-7-13 09:36
这三个参数应该先调哪个?

先P  在I  然后D

作者: wangde    时间: 2013-7-13 10:53
头像是本人吗。。。挺可爱
作者: 黄美纯    时间: 2013-7-13 16:27
fanglichao 发表于 2013-7-13 10:14
先P  在I  然后D

调P的时候,另外两给用0代替吗?

作者: mhming    时间: 2013-7-13 16:49
一点资料 仅供各位参考 关于PID 在理解其原理的基础上多做实践
作者: 黄美纯    时间: 2013-7-13 17:35
mhming 发表于 2013-7-13 16:49
一点资料 仅供各位参考 关于PID 在理解其原理的基础上多做实践

太感谢了!




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