搜索
bottom↓
回复: 18

关于PID控制时,积分i导致的超调问题的讨论,自己做算法的来看看

[复制链接]

出0入0汤圆

发表于 2011-5-16 09:05:05 | 显示全部楼层 |阅读模式
PID算法其实很简单,假设目标值是tgt,现值是value,误差err = tgt- value;

则控制量为比例、微分、积分三项和:

err = tgt- value;
interr += err;//误差的积分
ctl = kp*err + ki*interr + kd *(err-errlast);//p i d三项
errlast=err;//保存上次的误差值给kd用

很好理解吧?但是现在的遇到积分参数必然导致超调的问题,如下图:


(原文件名:未命名2.JPG)


在0到t1时间段,假设现值与目标值完全重合,PID的三项都为0。
在t1到t2时间段,假设外力使四轴有一偏离(抬头),则PID三项都开始增大,开始反向调节,到达顶端时微分项为0进而变为反向,使得反向调节不会太快(防止超调)
在t2到t3时间段,由于积分项interr不为零,必须继续增加,在低头部分持续一段时间后,才能让interr反向累加到0~~

也就是说,interr的积分必然要导致超调,例如风将四轴吹抬头2秒,则“必然”要低头一段时间才能将interr反0,(正反向的面积相等才行)这样是不是不利于控制?(当然对于不怕超调的系统,例如液压管应该没有这个问题)

是否应该在err为0的时候,将interr清零,以达到图中蓝色线的效果?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-5-16 09:15:51 | 显示全部楼层
用增量法计算试试,积分分离,微分前馈等等

出0入0汤圆

 楼主| 发表于 2011-5-16 10:44:31 | 显示全部楼层
回复【1楼】cqfeiyu
用增量法计算试试,积分分离,微分前馈等等
-----------------------------------------------------------------------

汗,查了下,原来到达0附近就把interr清零,这个就叫做积分分离...

(原文件名:未命名2.JPG)


终于把名字对上号了,呵呵

出0入0汤圆

 楼主| 发表于 2011-5-16 10:49:54 | 显示全部楼层
不过不对啊,我是要求不超调,应该是在<e内无积分,

这个积分分离算法是>e外无积分,正好相反嘛


http://wenku.baidu.com/view/5d979610f18583d0496459a4.html

出0入0汤圆

发表于 2011-5-16 10:55:33 | 显示全部楼层
可以考虑积分限制

如,调节输出的是±10V信号,把积分输出的效果限制在±1V

出0入0汤圆

发表于 2011-5-16 11:22:00 | 显示全部楼层
<e积分可以减少误差比较大时,积分容易饱和,从而导致出现退饱和时出现过冲和振荡
误差比较小时,积分起到消除静差的作用
超调可以通过减小积分项系数或者增加微分项减弱

出0入0汤圆

发表于 2011-5-16 11:24:42 | 显示全部楼层
你这个其实没有考虑到当误差减小时,比例项同时也在减小的,积分项可以补偿这个减小的控制量,如果不积分,到达设定值时,输出就是0!!!!!

出0入0汤圆

 楼主| 发表于 2011-5-16 12:57:22 | 显示全部楼层
回复【6楼】fm007 一叶流水
你这个其实没有考虑到当误差减小时,比例项同时也在减小的,积分项可以补偿这个减小的控制量,如果不积分,到达设定值时,输出就是0!!!!!
-----------------------------------------------------------------------

也就是说Ki的结果必然会产生超调,大概懂了,也就是ki应该如此,不想超调的话只好别用它

出0入8汤圆

发表于 2011-5-16 13:10:36 | 显示全部楼层
PID我看了很多文章,没用啊;自己做东西时还不知所措。最近又要调PID,表示鸭梨很大

出0入0汤圆

 楼主| 发表于 2011-5-16 15:23:00 | 显示全部楼层
回复【8楼】lindabell 欧海
-----------------------------------------------------------------------

先调P ,再调D,效果就差不多了

出0入0汤圆

发表于 2011-5-16 16:35:47 | 显示全部楼层
要想无超调太难了感觉

出0入0汤圆

 楼主| 发表于 2011-5-16 16:53:43 | 显示全部楼层
回复【10楼】eaglelpx
-----------------------------------------------------------------------

没有I的时候很容易无超调嘛。。。把kp,kd降低点

出0入8汤圆

发表于 2011-5-16 16:55:56 | 显示全部楼层
回复【9楼】Ian11122840  船儿舟
回复【8楼】lindabell 欧海
-----------------------------------------------------------------------
先调p ,再调d,效果就差不多了
-----------------------------------------------------------------------
说的容易做难,我很怀疑我上次给那个女生讲PID算法比我的老师讲的好;但是一直整不出来

出0入0汤圆

发表于 2011-5-16 20:26:49 | 显示全部楼层
回复【7楼】Ian11122840 船儿舟
-----------------------------------------------------------------------

但是没有KI的话是有静态误差的。就是你给定10V,但是输出的时候说不定到8V就平衡了。

出0入0汤圆

 楼主| 发表于 2011-5-17 08:44:10 | 显示全部楼层
回复【13楼】ahuang227
-----------------------------------------------------------------------

老大,我知道Ki是消除静态误差用的,感觉咋没听懂我的意思啊

我的意思是,在正向积分造成变量interr增加,必须要在反向达到同样的“面积”才能抵消,也就是图中“红线”与目标值围成的“面积”,

这样的话,抬头2秒意味着必须低头1秒,变量interr才能积分为0.

出0入0汤圆

发表于 2011-6-8 19:52:07 | 显示全部楼层
找了这么多PID算法的资料,还是楼主几句代码受用,受教了.

出0入0汤圆

 楼主| 发表于 2011-6-9 09:01:45 | 显示全部楼层
回复【15楼】autopass
找了这么多pid算法的资料,还是楼主几句代码受用,受教了.
-----------------------------------------------------------------------

有些东西其实都很简单,前两天在搞卡尔曼滤波,什么“线性化渐进”,“最优贝叶斯决策”,“特殊状态估计器”讲得人头晕

最后看代码,30多句就能实现,也不难

出0入0汤圆

发表于 2011-6-9 20:52:14 | 显示全部楼层
很怕看那些东西,动不动就一本书的,看的人头都晕,绕啊绕的最后出来也就几条公式。还是直接给几个公式,复杂点的给点推理过程,这样就好了!

出0入0汤圆

发表于 2011-7-4 15:59:03 | 显示全部楼层
求解个..
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 06:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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