当前位置: 华文问答 > 科学

PID 控制器的优缺点有什么?如何改进?

2022-02-18科学

简单的说,PID博而不专,因为物理意义还算明确,对很多系统都能上去调几下子,不论有没有模型,有没有输入输出数据。

而一旦有了模型,乃至有了输入输出数据,除了三阶(包括)以下的LTI系统,对大多数系统来说,PID效果只能算可以接受。一般都能找到专门适应于某一小类系统的控制算法,比PID效果好;但这些算法往往专而不博,换到另外一个系统上可能会出大问题。

其实很多时候,PID只是底层,或曰内环,先把某个系统稳定住,或是改变下其动态。然后中层、上层再引入其它控制算法。当然,好几层都是PID的也挺常见的。

另外,PID做些小改动,在实际中用的也不少。其实最简单的PID也是要考虑饱和的。但同时,很多控制系统,比如电力的,乃至粒子加速器的,等等,用的都是很奇怪的控制算法,当然不是PID或改进PID,效果也都很好。据我所知,这很多实际中在用的,没人也很难分析其性能(稳定性啥的),但实际中用着还不错。

这里有个很奇怪现象,很多领域都有:现实中在用的,往往很难分析为什么效果好;论文中在写的,往往很难用在实际中。我知道的一个,就不具体说了,某控制算法,是法国人在工厂里搞出来的,后来全世界出名,在很多500强的公司在用,没出过问题(爆炸什么的),但就是没法证明其稳定性。后来有人竟然为了证明稳定性,把这个算法改了一下。。。这不就是一个人钥匙在别处丢了,可偏偏跑到路灯下来找,仅仅因为路灯下面有亮么。。。

相当一部分学术圈的人,全世界各国的,靠在这个方向发论文来糊口,至今仍是一个非常hot的方向(当然在工程中确实效果很好)。说了之后,岂不是得罪这么多人。

扯远了。。。

---

其实如果仔细想想,控制器的本质是被控对象输出(也就是控制器出入)跟控制输出的函数映射关系。其实从这个角度来看,时变非线性的控制器其实参数空间最大,线性时不变的算是很受限制的了,而PID是则在线性时不变的基础上限制到三个自由度。视具体系统,有的就够了,有的甚至只要两个自由度(PD或PI),有的一个就行(P)。

当然,实际中,PID其实要加很多trick。比如考虑到执行环节的动态,防止过饱和,考虑传感器的动态等等,其实就不再是限制到三个自由度了,乃至已经是时变非线性的了。而且最简单的,串级PID,其实综合起来的话,已经不只是三个自由度了。另一个方面,有的高阶系统无法分离,也就无法用串级的话,那PID就很难调到很好的效果了。

PID的限制多了去了。比如时延。个人预测,时延是未来控制系统的一个大问题,因为是物理上无法克服的,而全球、万物互联又是大趋势。有人用预估器等,当然也就不是原来的PID了。但预估器也要知道时延的大小或范围吧。现实中在用的一个,是改变了系统的拓扑结构(如果只有控制器跟系统,则没有拓扑结构可言;有了网络之后,比如在遥操作时,则存在拓扑结构了),可以做到对时延非常鲁棒。你说是PID吧,已经面目全非了,而且原初的PID再调也调不到这个效果;你说不是吧,PID也还是其中一个环节。

PID也可以用鲁棒控制那一套来分析和设计啊,你说是鲁棒呢还是PID呢。也可以用优化那一套来调参啊。也可以做到分工况(模糊等)啊,自适应啊,等等。就是各个模块凑在一起。这在工程中是普遍的,也无可厚非。直到出现一个更宽广的理论,可以更简洁而具有包容性。但当然,在没有更好的框架之前,PID加上各种trick,不失为好的工程方案。但你不能说这就到头了,谁知道未来会不会出现控制界的卡尔曼呢?

这里插一句,电梯的曲线,很多感觉不舒服,有的超调、振荡非常明显,还有的加速没优化,其实就是没调好。PID好好调,加上小trick,足够了。还有一点,就是最好加上个监测是不是有人被卡住的环节。

话说回来,到底什么样的曲线算好呢?其实不存在最优的,比如有的对速度、加速度有限制,有的则对能耗比较侧重,有的一定不能有超调等等,有的则是响应越快越好。当然,所有的这些都是在功率限制之下。为什么说这个呢?因为再调试时,有用机器学习或优化算法调参的,需要有量化优化指标或是比较曲线优劣,但这个指标或评价标准却很难确定,但同时却又非常重要。很多指标,二次型,绝对值,等等。但选取哪个?如何评判指标?有没有指标的指标?问题多着呢。。。

物理学中,有两种情况需要重视,一是实验中有出乎意料现象,但找不到理论解释;一是理论有出乎意料的预测,但实验中尚未观察到。这两种情况,都可能带来物理学的大变革。当然,有很多出乎意料的现象,是可以用已存在的理论解释的,只是人们没认识到;同时,很多理论的预测是错的。

对应地说,有时候工程中,在PID上修修补补,或是几个现有方法的组合,效果很好。这时候可能背后有更简单的理论,可以作为更简洁的框架。比如卡尔曼之前,很多人在现有的滤波基础上增增减减,效果也不错,直到卡尔曼滤波出现。不恰当的比喻,这就像地心说时,有的观察很难解释,用地心说加上修修补补也能解释,但很复杂;一改成日心说,就简单地多了。

而就理论而言,很多新理论,声称自己效果好,但大部分其实不如已有的。可另外一方面,人类的控制理论,不大可能到今天就为止了吧?PID也才有不到一百年的历史。这些新理论中,只有极少的,可以真正带来变革。现在觉得一个有可能,不能确定。只能拭目以待。

---

在采用常规PID控制器可能会遇到什么问题? - 自动化 的回答:

PID比较适用的是低阶LTI系统,特别是三阶以下的。确切的说,单入单出、三阶一下、LTI系统。(PID提供三个参数自由度,视具体情况,有的系统三个已经足够,有的甚至只需要两个、乃至一个)。或是高阶系统,但可以串级控制,或者本身就是纵向级联系统。每一级都是三阶以下的,每一级引出个反馈用PID控制。形象点,是深度系统。当然有时候,几入几出,耦合不是很强,也可以。

但十几入十几出以上的宽度系统,耦合强的话,那用PID调经常是很难的。还有无法串级的高阶系统也是问题。

有的系统需要自适应,比如地铁的自动驾驶,每站上下人,所以每站质量会变;在比如云台不能随便换挂载。

时延系统。即使常数时延,预估器太脆弱,加大反馈又有饱和限制。而如果只知道时延的大概范围,就更难处理了。

对精度要求很高的系统,一般是variance降低多少就可以获得多少效益的系统。特别是阶数一高,输入输出一多(且带着强耦合),往往光靠PID则不行。

---

有较精确的模型,且对控制性能要求较高时。

非线性较强,时变系统。

多入多出系统。特别是变量较多,或耦合较强时。解耦方法比较难调。

有约束的系统。其实所有系统都有约束,至少有个饱和环节吧,比如马达最高转速。但很多时候,可以基本忽略。如果不能忽略,PID就无能无力了。

这里岔开一句,其实状态估计就是个反馈控制器,目标是让状态估计的方差最小。Kalman滤波,针对LTI系统,高斯白噪声是最优的,但Kalman滤波是个线性时变的。如果换成LTI的(当然包括PID),就不是最优了。

等等。