智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1783|回复: 1
打印 上一主题 下一主题

关于位置式pid里面的疑惑

[复制链接]

2

主题

5

帖子

0

精华

注册会员

Rank: 2

积分
91
威望
53
贡献
28
兑换币
29
注册时间
2015-5-31
在线时间
5 小时
毕业学校
hangtian
跳转到指定楼层
1#
发表于 2015-12-21 12:04:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 motianlun1111 于 2015-12-21 12:07 编辑

小弟这里实现电机定位控制,之前采用的是增量式pid控制算法,感觉增量式并不太好,积分项截断误差比较多,我看了我操作的是电机的力矩,实际我用增量式pid最后还是把输出量加到力矩的值上来控制的,感觉本质还是位置式的pid,而且还弱化了积分项,等等,感觉就是增量式pid不适合我这个系统,我想试试位置式pid,但是有个疑问了,位置式pid里面那个sumError这个误差和,也就是积分项,要怎么处理,要是溢出怎么办,我现在的pid是5khz,32位的数int类型,有效位31bit,感觉我这个分分钟就有可能sumError溢出啊,对于溢出这个问题,大神们是怎么去处理的,我其实打算的是用位置式pid外加分段,也就是有个误差阀值,大于阀值采用p或者pd控制,只有进入阀值了,才使用pid控制,但是对于误差和这个问题,犯难了,
问题1:误差和前面打算乘以一个系数,系数为0和1,当误差进入小阀值范围内时候,系数为1,在阀值外系数为0,那么误差和是一直在累积,也就是在阀值外的时候积分项的积分和也在加呢,只是系数为0,然后在小误差阀值内的时候,才一下子把系数变成1?这样感觉是不是有很大的冲击吗,?还是说sumError,之前记录的是误差的积分值乘以那个系数之后的值,也就是误差在阀值以外时候,误差和sumError是0,误差进入了阀值内,sumError才开始有数?
问题2:要是sumError一直累积,然后溢出了怎么办,毕竟我这个是5khz的频率,感觉加数很容易溢出啊,怎么处理溢出,或者什么机制保障了其实不会溢出?
回复

使用道具 举报

12

主题

2039

帖子

2

精华

顶级版主

只好把岁月化成歌 留在山河

Rank: 11Rank: 11Rank: 11Rank: 11

积分
44057

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章优秀版主奖章

威望
26263
贡献
9408
兑换币
6553
注册时间
2011-9-30
在线时间
4193 小时
毕业学校
南京动专
2#
发表于 2015-12-21 14:10:27 | 只看该作者
进去前先把error尖笑一下吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 04:33 , Processed in 0.091875 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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