智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8466|回复: 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份数并输出
}

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


1

主题

85

帖子

0

精华

高级会员

Rank: 4

积分
802
威望
448
贡献
190
兑换币
231
注册时间
2012-7-28
在线时间
82 小时
14#
发表于 2013-11-4 22:22:30 | 只看该作者
ek2=ek1;
  ek1=ek;
Kp*(ek-ek1)+Kd*(ek-2*ek1+ek2)+Ki*ek
回复 支持 反对

使用道具 举报

1

主题

85

帖子

0

精华

高级会员

Rank: 4

积分
802
威望
448
贡献
190
兑换币
231
注册时间
2012-7-28
在线时间
82 小时
13#
发表于 2013-11-4 22:13:46 | 只看该作者
   last_de=de;                             // 把e(k)-e(k-1)保存为e(k-1)-e(k-2)   
这句话不对吧,   last_de是ek-2,   last_de=last-e吧
回复 支持 反对

使用道具 举报

137

主题

4169

帖子

1

精华

杰出人士

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

Rank: 12Rank: 12Rank: 12

积分
14006
QQ
威望
6233
贡献
1229
兑换币
4171
注册时间
2013-1-10
在线时间
3272 小时
12#
发表于 2013-11-4 20:01:37 | 只看该作者
卧听南窗雨 发表于 2013-11-4 19:14
从什么地方能够体现积分项基本被减掉了呢?

增量式是相邻两次位置式相减的结果,因为相邻两次位置式的积分项很接近,减掉之后就很小了。
回复 支持 反对

使用道具 举报

7

主题

86

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1041
威望
439
贡献
302
兑换币
246
注册时间
2012-11-4
在线时间
150 小时
11#
发表于 2013-11-4 19:56:33 | 只看该作者
ki应该是很小的
回复 支持 反对

使用道具 举报

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。

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

使用道具 举报

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
楼主觉得哪个更好?

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

使用道具 举报

18

主题

98

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

27

主题

332

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

3

主题

72

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 22:35 , Processed in 0.066731 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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