智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6370|回复: 20
打印 上一主题 下一主题

从不同的角度理解PID!!!

  [复制链接]

21

主题

368

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1277
威望
722
贡献
183
兑换币
440
注册时间
2013-11-2
在线时间
186 小时
毕业学校
跳转到指定楼层
1#
发表于 2014-4-19 11:56:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从不同的角度理解PID
————在网上看的有关PID的一些东西,整理出来!希望和大家交流一下!
传统PID
PID控制是最早发展起来的应用经典控制理论的控制策略之一,由于算法简单,鲁棒性好和可靠性高,被广泛应用于工业过程并取得了良好的控制效果。随着工业的发展,对象的复杂程度不断加深,尤其对于非线性的复杂系统,常规PID控制显得无能为力。因此常规PID控制的应用受到很大的限制和挑战,这也就是我们说的:传统的PID
对于传统的PID :比如说:PID如果控制线性系统就是由于P就一个定值!也就是说:在你调智能车的时候:无论你是调舵机还在调电机:我们用的就是传统的PID,比如说:在你调舵机的时候,调啊调啊,终于调出了一个合适的P 和D的值,可是在不同的跑道上,效果又不好了啦!
这就是传统的PID的局限性!
在PID中的误差:
你可以把误差看成是横坐标,而纵坐标就是你需要的动作也就是舵机的输出,这条曲线可能是线性的也可能是非线性的(大部分是非线性的),如果是现行的,或者说是一条直线,那么一个比例就搞定了 如果是非线性的,那么你就需要用P来构造这条曲线。
如果关系仅仅是 y = k * x,那么这就是金典pid,但完全有可能是y =a*sqrt( x) + b*x* x + c* ...
如果你以sqrt( x)  x* x ...看成变量,那么其它的一个个系数就是常值 ;如果你只用 x,那么系数就需要灵活了,为什么呢,因为这是泰勒公式告诉我们的 如果你以sqrt( x)  x* x ...看成变量,那么其它的一个个系数就是常值 ;自变量的选取和各个参数都是很灵活的,
比如说:y = f(x)+g(x1)+k(x2)其中x为error,x1为errorold,x2为errorold2
                              
  
从位置式的公式即可推导增量式的PID
智能车的反馈点很特殊,不说说是反馈系统还是前馈系统,因为反馈点就是输出的位置如果车跑的很慢很慢的时候你可以看成是反馈系统,而车很快的时候就更偏向于前馈系统
积累的话   就每次积累附近的三个误差?
增量式的是这样的
位置式的不是
其实在自动控制原理中是可以直接得到 f  g  k的
其实在自动控制原理中是可以直接得到 f  g  k的
泰勒公式学了,那么f  g  k知道怎么搞了吧
泰勒公式学了,那么f g  k知道怎么搞了吧
因为起始的时候误差为0还有,对于各个组,在error的求取上也还是有很多问题的
比如电磁组,由公式就可以推导出的问题
即它可能出现的非线性情况与出现死区的情况
。。。。未完待续。。。。。。
回复

使用道具 举报

137

主题

4169

帖子

1

精华

杰出人士

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

Rank: 12Rank: 12Rank: 12

积分
14006
QQ
威望
6233
贡献
1229
兑换币
4171
注册时间
2013-1-10
在线时间
3272 小时
2#
发表于 2014-4-19 12:02:34 | 只看该作者
顶~~~
回复 支持 反对

使用道具 举报

21

主题

368

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1277
威望
722
贡献
183
兑换币
440
注册时间
2013-11-2
在线时间
186 小时
毕业学校
3#
 楼主| 发表于 2014-4-19 12:04:33 | 只看该作者
Jyoun 发表于 2014-4-19 12:02
顶~~~

这个不全,还有一个是附件的,希望指点一下哦!!!
回复 支持 反对

使用道具 举报

5

主题

900

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7366

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

威望
3282
贡献
2418
兑换币
2121
注册时间
2014-1-19
在线时间
833 小时
4#
发表于 2014-4-19 12:18:52 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
463
威望
229
贡献
140
兑换币
153
注册时间
2014-3-21
在线时间
47 小时
5#
发表于 2014-4-19 12:22:05 | 只看该作者
大神膜拜!
回复 支持 反对

使用道具 举报

21

主题

368

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1277
威望
722
贡献
183
兑换币
440
注册时间
2013-11-2
在线时间
186 小时
毕业学校
6#
 楼主| 发表于 2014-4-19 13:13:20 | 只看该作者
布衣强 发表于 2014-4-19 12:22
大神膜拜!

我不是大神,这个时代没啥大神不大神的,也就是有些人知道的些而已!
回复 支持 反对

使用道具 举报

47

主题

1053

帖子

1

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
30566

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

威望
19719
贡献
7191
兑换币
2325
注册时间
2012-2-1
在线时间
1828 小时
7#
发表于 2014-4-19 14:20:21 | 只看该作者
本帖最后由 huang91 于 2014-4-19 14:25 编辑

泰勒公式没有sqrt(x)项,不知道你是在哪点展开,就那几项,误差也太大了。
回复 支持 反对

使用道具 举报

47

主题

1053

帖子

1

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
30566

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

威望
19719
贡献
7191
兑换币
2325
注册时间
2012-2-1
在线时间
1828 小时
8#
发表于 2014-4-19 14:26:00 | 只看该作者
姑且认为可以泰勒展开,系数是输出函数对自变量误差的导数,而位置式PID的公式中微分项是误差对时间的导数。
回复 支持 反对

使用道具 举报

47

主题

1053

帖子

1

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
30566

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

威望
19719
贡献
7191
兑换币
2325
注册时间
2012-2-1
在线时间
1828 小时
9#
发表于 2014-4-19 14:30:30 | 只看该作者
“你可以把误差看成是横坐标,而纵坐标就是你需要的动作也就是舵机的输出,这条曲线可能是线性的也可能是非线性的(大部分是非线性的),如果是现行的,或者说是一条直线,那么一个比例就搞定了 如果是非线性的,那么你就需要用P来构造这条曲线。
如果关系仅仅是 y = k * x,那么这就是金典pid,但完全有可能是y =a*sqrt( x) + b*x* x + c* ...”

楼主想通过类似最小二乘法的方法拟合出转向曲线,然后通过误差查表??这和PID有什么关系?
回复 支持 反对

使用道具 举报

21

主题

368

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1277
威望
722
贡献
183
兑换币
440
注册时间
2013-11-2
在线时间
186 小时
毕业学校
10#
 楼主| 发表于 2014-4-19 14:52:12 | 只看该作者
huang91 发表于 2014-4-19 14:30
“你可以把误差看成是横坐标,而纵坐标就是你需要的动作也就是舵机的输出,这条曲线可能是线性的也可能是非 ...

在另一个帖子里,在0处展开的,这个帖子没发好,一些公式看不到。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 20:48 , Processed in 0.055776 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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