智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8465|回复: 13
打印 上一主题 下一主题

我觉得位置式PI和增量式PI都会有积分饱和现象,很多资料上说:增量式不会出现积

  [复制链接]

2

主题

18

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1052
威望
558
贡献
214
兑换币
127
注册时间
2012-2-11
在线时间
140 小时
毕业学校
淮阴工学院
跳转到指定楼层
1#
发表于 2013-11-3 22:05:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 卧听南窗雨 于 2013-11-3 22:08 编辑

void speed(void)   //50ms 调用一次 位置式PI
{        
    e=Speed_Target-Speed;         // e(k)
    fP = e * Kp;
    fI = e * Ki;
    g_fSpeedControlIntegral += fI;  //积分累加
    SPWMnew = fP + g_fSpeedControlIntegral;  //求出当前的控制量
}

void speed(void)   //50ms 调用一次 增量式PID
{   
   e=Speed_Target-Speed;            // e(k)   
   de=e-last_e;                            // e(k)-e(k-1)   
   dde=de-last_de;                       // e(k)-2e(k-1)+e(k-2)   
   last_e=e;                                // e(k)保存为e(k-1)供下次计算使用
   last_de=de;                             // e(k)-e(k-1)保存为e(k-1)-e(k-2)   
dPWM=Kp*de+Ki*e+Kd*dde;       // 根据公式求出PWM份数需要改变量        
SPWMnew+=dPWM;                   // 由公式求出当前PWM份数并输出
}

红色字体部分显示两种算法都有积分累加项呀,只是在程序不同的部位累加的,但是最终的累加效果应该是一样吧。难道是我理解错了?求大神指导呀


21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
2#
发表于 2013-11-3 22:25:44 | 只看该作者
积分项是将控制量的积分和目标的积分比较,其差值乘以I系数。
所以你可以只保存这个差值。
而这个差值是在零附近的。
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1052
威望
558
贡献
214
兑换币
127
注册时间
2012-2-11
在线时间
140 小时
毕业学校
淮阴工学院
3#
 楼主| 发表于 2013-11-3 22:42:06 | 只看该作者
rubick 发表于 2013-11-3 22:25
积分项是将控制量的积分和目标的积分比较,其差值乘以I系数。
所以你可以只保存这个差值。
而这个差值是在 ...

积分项是将控制量的积分和目标的积分比较,其差值乘以I系数。

这句话不太理解呀,积分项不是对以前所有的目标值与实际值的差求和吗?
回复 支持 反对

使用道具 举报

137

主题

4169

帖子

1

精华

杰出人士

我认为最省轮子的跑法最快。曾经的西科4队

Rank: 12Rank: 12Rank: 12

积分
14006
QQ
威望
6233
贡献
1229
兑换币
4171
注册时间
2013-1-10
在线时间
3272 小时
4#
发表于 2013-11-3 23:49:39 | 只看该作者
其实增量式计算时基本把积分项减掉了,所以积分项只在0附近,甚至直接忽略处理成0。
回复 支持 反对

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
5#
发表于 2013-11-4 00:05:43 | 只看该作者
卧听南窗雨 发表于 2013-11-3 22:42
积分项是将控制量的积分和目标的积分比较,其差值乘以I系数。

这句话不太理解呀,积分项不是对以前所有 ...

对,一样的。系统的稳定性保证这个值是接近零的。所以不会饱和。
否则系统就不稳定了。
也就是说只要平衡车不倒,这一项总是接近零的。
回复 支持 反对

使用道具 举报

3

主题

72

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1645
威望
882
贡献
453
兑换币
393
注册时间
2012-6-17
在线时间
155 小时
6#
发表于 2013-11-4 00:14:31 | 只看该作者
回复 支持 反对

使用道具 举报

27

主题

332

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1842
威望
967
贡献
517
兑换币
575
注册时间
2012-12-20
在线时间
179 小时
毕业学校
广工
7#
发表于 2013-11-4 11:06:16 | 只看该作者
我才Ki应该很小吧
回复 支持 反对

使用道具 举报

18

主题

98

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2591
威望
1358
贡献
799
兑换币
805
注册时间
2012-5-19
在线时间
217 小时
8#
发表于 2013-11-4 19:00:27 | 只看该作者
楼主觉得哪个更好?
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1052
威望
558
贡献
214
兑换币
127
注册时间
2012-2-11
在线时间
140 小时
毕业学校
淮阴工学院
9#
 楼主| 发表于 2013-11-4 19:12:47 | 只看该作者
nxdliuquan 发表于 2013-11-4 19:00
楼主觉得哪个更好?

本人很菜,觉得还是先用官方的比较稳妥
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1052
威望
558
贡献
214
兑换币
127
注册时间
2012-2-11
在线时间
140 小时
毕业学校
淮阴工学院
10#
 楼主| 发表于 2013-11-4 19:14:16 | 只看该作者
Jyoun 发表于 2013-11-3 23:49
其实增量式计算时基本把积分项减掉了,所以积分项只在0附近,甚至直接忽略处理成0。

从什么地方能够体现积分项基本被减掉了呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 20:44 , Processed in 0.060972 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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