智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 785|回复: 3
打印 上一主题 下一主题

PID位置式与I相乘的error_all怎么计算

[复制链接]

21

主题

58

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1978
威望
1017
贡献
617
兑换币
625
注册时间
2015-8-15
在线时间
172 小时
毕业学校
浙江理工
跳转到指定楼层
1#
发表于 2016-6-1 21:32:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
int Dianji_PID_Adjust(int Dianji_Expect)
{
  int dianji_pwm;//电机的变化值
   dianji_Bianhua=(int)(dianji_KP*(now_error ) +
                              dianji_KI*all_error +
                               dianji_KD*(now_error - last_error));      
      all_error +=now_error;
      now_pwm=last_pwm+dianji_pwm;

  if(now_pwm>6000)
  {
    now_pwm=6000;
  }
  else if(now_pwm<-6000)
  {
    now_pwm=-6000;
  }
  last_error=now_error;
  return now_pwm;
}
all_error是所有的误差,那么他的误差值是从一开始就累计,一直累计到最后吗,还是累计达到一定程度就清零,从新开始。
被这个问题困扰好久了,求解释。


回复

使用道具 举报

23

主题

152

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2589
威望
1193
贡献
768
兑换币
736
注册时间
2014-9-25
在线时间
314 小时
4#
发表于 2016-6-2 12:44:50 | 只看该作者
是一直累计到最后,当达到设定值的时候,now_error为0,积分就不再变化
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

注册会员

Rank: 2

积分
85
威望
59
贡献
18
兑换币
25
注册时间
2015-2-4
在线时间
4 小时
毕业学校
西藏大学
3#
发表于 2016-6-2 00:06:50 | 只看该作者
你程序里是一直加的
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
QQ
威望
187
贡献
112
兑换币
119
注册时间
2015-10-9
在线时间
25 小时
毕业学校
华北理工
2#
发表于 2016-6-1 22:42:40 | 只看该作者
用增量式比较好吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 14:52 , Processed in 0.042031 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表