扯淡一下PID控制

2020-01-12 17:10发布

最近我在做一个项目中有PID控制,就搜了些网上的文章,来学习。
发现网上的文章,很多公式都是错误的,有的居然连位置式和增量式都故意搞了很多区别,甚至影响控制性能。
我虽是自动化专业,但做这方面很少,于是抱着学习的想法,说说自己的认识,也和大家交流下。


PID的所谓位置式和增量式的,从控制算法上看,没有本质区别。
Out[k] = Out[k-1] + delta;
delta = P*E+I*ξE+D*de
如果看输出的Out值,就是位置式的,如果看delta就是增量式的。

实际应用中有又位置式和增量式,
有的执行有记忆特性,就是增量式的,如步进电机
有的执行机构,没有记忆性,就是位置式的,如加热
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
82条回答
McuPlayer
1楼-- · 2020-01-13 07:47
 精彩回答 2  元偷偷看……
月光疾風
2楼-- · 2020-01-13 12:03
好帖,必须顶~
McuPlayer
3楼-- · 2020-01-13 13:04
本帖最后由 McuPlayer 于 2012-9-16 17:52 编辑

仔细看一下,这2张图的区别,PID参数的Ki做了改变。

有个有趣的现象,积分环节越大,震荡的幅度越大,收敛得越慢。



这个是我设计的PID温度控制器的仿真工具

2.JPG (80.3 KB, 下载次数: 0)

下载附件

2012-9-16 17:48 上传



McuPlayer
4楼-- · 2020-01-13 17:29
在加热温度控制系统中,积分环节的增大不但无法加快收敛,反而会有想反的效果。
实际应用中,很多人遇到了此问题,很多人采用变种PID解决掉了,但追究问题的来源。

加热系统是个单向温度控制系统,也就是只能主动加热,而降温只能靠被动散热。
加热的升温是很快的,而自然散热就很慢了,否则锅炉的热效率不太低了。
所以加热的温控系统,在温度稳定后,误差也基本是正误差,而非负误差。
看上面的2张图,后面的阻尼振荡的收敛过程,是不是基本在设定温度上方摆动。


这个温度仿真小工具,周末做了一个,主要是用了几个现成的,其仿真结果太漂亮,偏离实际效果。
时将匆忙,没放置坐标系,大家估摸着看吧,呵呵。
有图片的帖子,还不会编辑,本来是并排的。
McuPlayer
5楼-- · 2020-01-13 20:16
细心的你应该发现了,好像温度的超调几乎是无可避免的。
没错,我是故意把这个问题暴露出来的。
实际的控制系统中,也经常有这个现象,而这来源于一个加热热量的传递过程,还有温度测量传感器的反应速度。
这个测试的是纯粹的PID计算,无法避免超调就很正常了。

当我们找到了问题的源头,解决起来就好办多了。
vjcmain
6楼-- · 2020-01-13 23:16
 精彩回答 2  元偷偷看……