常用控制算法(包括PID和卡尔曼滤波等)各有什么天然的局限乃至缺陷?

论坛 期权论坛 study     
小心假设   2018-11-11 22:32   155425   10
分享到 :
0 人收藏

10 个回复

倒序浏览
2#
Tam Alex  1级新秀 | 2018-11-11 22:32:16 发帖IP地址来自
反馈控制最重要的就是两点:
一是反馈;
二是测量的大方向。

只要有反馈的结构在,只要测量的反馈值正负号不搞错,那其他的都只是细枝末节的问题了。下面聊聊我比较熟悉的一些控制算法。

  • PID:天然的缺陷就是P和I和D之间的线性组合关系。至于有没有模型,寻找最优控制参数(P+I+D线性组合架构下的最优),现在有的是手段和方法搞定。但是就是这三者间的线性组合关系,现在大家都意识到了包括超调啊,震荡啊,问题都出在这里,可是现有的数学工具还是不足以支撑我们找到一个“通解”。实际上,PID控制从信息论的角度讲,是非常完美的对信息的利用,但是最理想的应用方式肯定不是简单粗暴的把它们加在一起。所以非线性PID控制现在有点像早期一段时间的Lyapunov函数,千姿百态,有很有效的,但没有什么足以形成方法论的东西。
  • LQR:很多人觉得LQR太依赖模型了,实际上,就像一开始说的一样,只要有反馈机制,只要反馈的正负号不错,控制效果都是可以操作的。工程里我用LQR还是比较多的,从理论上很漂亮的结果,要说天然缺陷,那就是和线性状态空间模型同生共死吧。为什么和线性状态空间同生共死是缺陷最后再说。
  • H-infinite:其实用LMI还蛮容易得到解的,而且仿真效果还是很好的,不过我工程里没怎么用过,想起左右互质分解还有正实性什么的就有些头大,而且鲁棒方法性能上总会保守一些。
  • Backstepping:我13年博士学位论文里有部分是基于Backstepping算法的,也是挺漂亮的算法,天然的缺陷是基于Lyapunov稳定性理论,性能上比较保守。
  • Sliding mode:理论上很漂亮的方法,而且实际上paper里天天提的震颤问题在工程里可以牺牲一些快速性很好的解决,然而工程里很多方法并不能被很漂亮的证明稳定性。。。所以。。。这也是一个典型的被中国学者发扬光大的控制方法,感觉和MPC差不多,各种变形,各种证明。。。因为当时没有专注这个方向,所以不是很了解。
  • 卡尔曼滤波:题主把卡尔曼滤波归为控制方法真是很聪明,把卡尔曼滤波看成一个观测器,是控制器的对偶问题。而且实际上,卡尔曼滤波的核心,求解卡尔曼增益利用测量值去修正预测值,实际上也可以简单粗暴的理解为控制问题。只不过这里不是大家喜闻乐见的控制一个信号去跟踪我们给定的参考信号,而是控制一个信号去跟踪一个我们不知道的“真实值”信号。韩京清老师1992年的文章《一类不确定系统的控制与滤波》的前言中就对控制问题和观测问题有很浅显易懂的论述,希望大家可以去读一读。至于卡尔曼滤波的天生缺陷,上面有答主已经说的很好的:线性和高斯性。但实际上,卡尔曼滤波的思想是非常非常值得学习的,而且经过改进在工程上有很不错的效果。

其实对于观测器最近几年我研究的比较多,可是碍于不太常用就不再这里占篇幅了。

最后说一下为什么会讲线性状态空间会是一些算法的天然缺陷呢,实际上我真正想说的是现在线性系统的大量成熟理论成果实际上很大程度束缚了我们的创造力,而对非线性,我们掌握的数学工具又实在是粗糙和弱小。打个比方,我们把线性系统这粒沙子琢磨的七七八八之后,抬头发现了一片非线性的沙漠,这就是我现在有时的感受。

以上纯属个人观点,由于博士毕业后这三四年工程做的比较多,学术前沿关注的少了,有不对的地方还请大家指出。
3#
小心假设  5级知名 | 2018-11-11 22:32:17 发帖IP地址来自
抛砖引玉:

一个 LTI 的反馈系统,控制器 C,被控对象 P。如下图示(手绘的,in case you did not notice…):




假设是控制一个轮船或无人机吧,y 是其位移或速度。y 之前有个干扰 d,即波涛起伏或风。y 之后有个噪声 n,即传感器噪声。那么:

y = S * d + T * n,其中 S = 1/(1+PC), T = PC/(1+PC)。

但对任何一个频率,都有 |S| + |T| >= |S + T| = 1,这就是个天然的局限:即无论控制器怎么设计,乃至无论什么样的被控对象,系统对干扰 d 的和噪声 n 的 attenuation,在任何一个频率,都是 trade-off。比如,在同一频率点不可能都小于 1/2。

不过现实中,干扰 d 与噪声 n 的频段不同,因此控制器设计时,可考虑在一个频段主要应对 d,另一个则主要应对 n。

当然,以上很多简化的写法,也没正式输入公式。如果想要详细了解,请参考该书第六章(以上讨论也是参考该书):

Feedback Control Theory
by John C. Doyle, Bruce A. Francis, Allen R. Tannenbaum
https://www.amazon.com/Feedback-Control-Theory-Electrical-Engineering/dp/0486469336/ref=sr_1_1?ie=UTF8&qid=1476188483&sr=8-1&keywords=john+doyle+control
4#
用户  16级独孤 | 2018-11-11 22:32:18 发帖IP地址来自
尽管一般来说,测量是越精确越好,对于固定参数的PID,或者收敛后的kalman,由于初始状态的偏移,以及模型的不确定性,适当的噪声有利于更快到逼近到真实状态。

如果把PID的输出类型以及值的空间固定下来之后,那么剩下来的调参主要就是依赖于系统响应特性以及常态误差,而kalman滤波中的模型不确定性辨识也非常依赖于更新间隔和误差。

特别是kalman,我们通常都是在利用其滤波能力的同时去逼近未知模型参数,适当的误差扩大了解空间的搜素范围,避免了不必要的较大的系统误差设定。但反过来,大的观测误差也不利于稳态情形下的精度逼近。

如何提高精度的同时,提高系统的动态响应特性,我认为是控制算法中的一个需要解决的主要问题。
5#
草原之火  4级常客 | 2018-11-11 22:32:19 发帖IP地址来自
节选自 Hrigglund, Tore.Advanced PID Control[M].1st.Lund:Research Triangle Park,2006,87-88
《先进型PID控制器》
第三章6节When Can PID Control Be Used?
There are many requirements on a controlled system. It should respond well to set-point changes, it should attenuate load disturbancds,measurement noise should not give excessive control actions, and the system should be insensitive to process variations.

控制系统应该很好地回应设定点的变化
控制系统应该衰减负载扰动
测量噪声不能影响太大
系统本身不能随变量变动过大(时不变系统)

简单而言:动作响应要线性不能太黏,负载扰动不能太大,测量噪声不能太大,系统模型不能随 其他变量(非 观测与控制 变量) 发生变化
6#
慕容初晓  3级会员 | 2018-11-11 22:32:20 发帖IP地址来自
卡尔曼滤波存在两个限制:
1、系统和观测值必须是线性的;
2、状态必须是高斯的。
7#
刘品杰  4级常客 | 2018-11-11 22:32:21 发帖IP地址来自
常用控制算法(包括PID和卡尔曼滤波等)最大的问题是,研究生的时候学习一大堆,到了工作实际当中,除了PID,其他用的都非常少。过程控制系统里,本来那些高阶系统,全部被分解为低阶系统。从工艺指标上,就分解的很完美,每个参数在多少到多少之间波动。很简单的一个PID就都搞定了。而且随着项目越做越多,工程的标准化,连PID参数都是基本恒定的。一台火电站和一台核电站里,用到的串级PID控制也只有一个。算是稍微复杂一点。
在学校里,PID算法是需要先对对象建模的,实际工作中根本没人这么做。本来可以简化的系统,被做的很复杂。优秀的控制算法本身可以降低系统的能耗,能够减少执行机构的动作,能够延长设备的寿命,但是在中国这些根本不在考虑范围。反正中国人多,在国外无人值守的地方,在中国总是要常驻几个人的。
上面有人说PID控制因为无法建模控制不了机器人。工业流水线和工业机器人基本上都是PID控制的,只不过跟我上面说的一样,每个执行机构一个PID,没有高阶控制。
控制算法工程师在中国反而成了最没有技术含量的工种。真是学控制的悲哀!!!
8#
用户  16级独孤 | 2018-11-11 22:32:22 发帖IP地址来自
任何反馈算法都需要“测量反馈”。反馈不准就白扯了。

观测器和滤波器是能提高准确度,但是也会带来额外的时间开销、反馈延迟,给整个闭环的稳定性造成隐患
9#
锐眼  4级常客 | 2018-11-11 22:32:23 发帖IP地址来自
PID控制算法最大的优点也就是它的缺点——没有数学模型。

经过国内外数学建模大赛的宣传和各大高校在课程中的渗透,数学模型的重要性不言而喻。由于PID在工程领域的资深老大哥地位,至今多数产品、设备的控制算法都采用PID控制,PID在实际应用中确实优势明显,以至于产生了很多参数整定方法,但这些方法也多是难以量化的,比如:”先调P参数,增大P到系统振荡后减小一点,再增大I...“。使用者对PID控制始终保持一种懵逼的感情,好用,但又不知道为什么?归根结底就是因为没有数学模型。

没有数学模型意味着没有可移植性。如果没有对系统的深度解剖,分析工作原理,只用调参实现一个无人机的姿态控制,换一个机架可能参数就完全不同了,飞机就炸了。如果有相对准确的数学模型,同样的飞控,对不同的机架适应性会强很多。

另一个缺点是,没有数学模型的控制很难应用于大型系统,所以PID最好是用在小模块尤其是末端执行器的控制上,比如控制一个双足机器人行走,不能直接用一个PID控制器实现,而是在结合机器人结构,进行运动学、动力学分析后推导出各个关节舵机的输入量,再结合PID计算合适的输出。
10#
橙子   | 2018-11-11 22:32:24 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
11#
用户  16级独孤 | 2018-11-11 22:32:25 发帖IP地址来自
实际系统的建模问题。

我不是控制科班所以水平不高。本科学自动控制的时候,最纳闷的就是
在设计系统时如何对执行机构、受控对象、传感器的建模?

实际系统存在非线性、迟滞、环境噪声,怎么把这些因素考虑到系统内,然后设计具体算法?所以科班水平高的也许会设计复杂的模型,然后验证稳定性,进行仿真什么的,但是模型或算法太复杂,实际效果可能建立在很高的调试成本上。一般人就用PID、局部近似的线性模型。

人们都期望有一种算法像一个强大的黑箱,通用、易用、效果好。但更现实的问题是,如何无缝联通理论到实际到需求的两岸三地。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP