智能车制作

标题: 从不同的角度理解PID!!! [打印本页]

作者: 碛北的孤狼    时间: 2014-4-19 11:56
标题: 从不同的角度理解PID!!!
从不同的角度理解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的求取上也还是有很多问题的
比如电磁组,由公式就可以推导出的问题
即它可能出现的非线性情况与出现死区的情况
。。。。未完待续。。。。。。

作者: Jyoun    时间: 2014-4-19 12:02
顶~~~
作者: 碛北的孤狼    时间: 2014-4-19 12:04
Jyoun 发表于 2014-4-19 12:02
顶~~~

这个不全,还有一个是附件的,希望指点一下哦!!!
作者: 杨先生    时间: 2014-4-19 12:18

作者: 布衣强    时间: 2014-4-19 12:22
大神膜拜!
作者: 碛北的孤狼    时间: 2014-4-19 13:13
布衣强 发表于 2014-4-19 12:22
大神膜拜!

我不是大神,这个时代没啥大神不大神的,也就是有些人知道的些而已!
作者: huang91    时间: 2014-4-19 14:20
本帖最后由 huang91 于 2014-4-19 14:25 编辑

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

作者: huang91    时间: 2014-4-19 14:26
姑且认为可以泰勒展开,系数是输出函数对自变量误差的导数,而位置式PID的公式中微分项是误差对时间的导数。

作者: huang91    时间: 2014-4-19 14:30
“你可以把误差看成是横坐标,而纵坐标就是你需要的动作也就是舵机的输出,这条曲线可能是线性的也可能是非线性的(大部分是非线性的),如果是现行的,或者说是一条直线,那么一个比例就搞定了 如果是非线性的,那么你就需要用P来构造这条曲线。
如果关系仅仅是 y = k * x,那么这就是金典pid,但完全有可能是y =a*sqrt( x) + b*x* x + c* ...”

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

作者: 碛北的孤狼    时间: 2014-4-19 14:52
huang91 发表于 2014-4-19 14:30
“你可以把误差看成是横坐标,而纵坐标就是你需要的动作也就是舵机的输出,这条曲线可能是线性的也可能是非 ...

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

作者: 碛北的孤狼    时间: 2014-4-19 14:58
huang91 发表于 2014-4-19 14:26
姑且认为可以泰勒展开,系数是输出函数对自变量误差的导数,而位置式PID的公式中微分项是误差对时间的导数。 ...

http://www.znczz.com/thread-218948-1-1.html在这个帖子,那些是别人在QQ群里说的:我就把它给记录下来了,希望指点一下哦!!
作者: liningbo888    时间: 2014-4-19 17:42

作者: 苯笨笨    时间: 2014-4-27 16:18
huang91 发表于 2014-4-19 14:30
“你可以把误差看成是横坐标,而纵坐标就是你需要的动作也就是舵机的输出,这条曲线可能是线性的也可能是非 ...

pid的本身目的就是减小与设定值之间的误差,pid的调节我觉得可以看成是拟合一条曲线,

作者: 张宇9600    时间: 2014-6-7 20:13
顶一个。。
作者: horizon_z40    时间: 2014-6-7 20:43
不错
作者: 竹音清影    时间: 2014-6-7 20:47
有影
作者: ﹋q蚀べつ    时间: 2014-6-7 21:23
小白飘过
作者: 如此~/簡單    时间: 2014-7-7 21:57


作者: Quixote    时间: 2014-7-8 01:28
一直从根轨迹理解PID,P即增益,增加至右侧区域以造成等幅振荡的可能。I即增加极点,D即增加零点。
作者: 碛北的孤狼    时间: 2015-7-28 17:42
Quixote 发表于 2014-7-8 01:28
一直从根轨迹理解PID,P即增益,增加至右侧区域以造成等幅振荡的可能。I即增加极点,D即增加零点。

这样理解好像和公式上有很大的差别呢,版主的理解很特别嘛
作者: Quixote    时间: 2015-7-28 18:18
碛北的孤狼 发表于 2015-7-28 17:42
这样理解好像和公式上有很大的差别呢,版主的理解很特别嘛

坟贴





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2