系统辨识理论及应用_控制理论到底有什么用?

读书期间对控制理论的理解比较粗浅,比较多的专注于理论推导,稳定性证明,花式拼凑控制输入的公式设计,以至于忽略了行业里面的核心问题。工作后在实际问题中思考锻炼,体会到了不同的感受。很多人都说现代的理论和工程实践似乎已经阴阳两隔,PID就是控制器的主流,工程师不想弄懂复杂的数学理论,理论家不想深入参与实际工程,甚至有人说控制已死,那我们学了个这些控制理论到底有什么用?

由于知乎上劝退控制理论的人一大堆,普遍认为工作难找,天下只有写软件,做人工智能才能算正经行业,我想了一想,既然知乎没给我设置发表言论的门槛,我也可以来谈一下我对控制理论的想法。之前有回答过类似的问题,这里就重新组织整理一下。

首先,控制理论主要在干什么?一堆人认为控制理论就是推公式,或者就是PID调参数。这样的理解是非常片面的。控制理论的确涉及到广泛的应用数学内容,公式推导也是学习过程中不可避免的,但它们不是控制理论的核心所在。真正重要的是对整个控制系统的理解,对控制策略的理解,对控制需求的理解。

对控制系统的理解意味着你需要很清楚你面对的对象是什么样的。这里的对象不仅是指被控的物理系统,还包括输出目标,控制器,能提供输出以及某些系统状态反馈的传感器,这是一个完整的闭环。控制理论要做的就是针对一个具有一系列特征的被控物理系统,考虑到现有的反馈能力,设计一种算法来处理反馈量和输出目标量,使得该物理系统真实的输出能够足够接近输出目标。理论上,这就是一个微分方程由状态到输入的逆向求解过程。对于绝大多数控制算法,控制能力的好坏取决于设计人员对于被控对象的的了解程度。这很好理解,对被控对象的动态性能理解得越深刻,或者能提供给控制器利用的系统信息越多,那么我们对被控对象的数学描述也就越精确,那么逆向求解控制输入的可能性也就越大。现实中用几个微分方程去等价一个物理系统那是不良行为,因为现在研究的物理系统往往很复杂,光由运动学动力学推导出来的数学模型是不够用的。工程上常用的是用真实的系统输入输出数据做系统模型辨识,找到尽可能接近的模型。复杂的数据模型对于具体的控制器设计是极其不利的,因为这些被控对象往往是不确定的非线性的系统,其非线性在不同的工作点有强有弱,输入输出通道也能根据你的定义而有数量上的变化,加之具体的对象本身有物理结构,需要反馈的状态有时候很难找到一个地方去装传感器,有的状态甚至根本无法测量。这时候你就需要回答控制系统一系列的评估问题:你可以控制的量是什么?你是怎么测量输出误差的?如果模型太过复杂,什么样的简化才是合理的?控制可以在工作点把系统线性化以后再做设计吗?如果是通过一系列的工作点线性化后做的控制设计,那么系统在工作点之间的控制量是不是简单做插值?如果系统可以合理地线性化,那系统可控吗?如果有的状态量因为传感器不行而测不到,那可不可能设计状态观测器?系统在控制总线和传感器的反馈信息上带着的时间延迟有多少?很多人对PID不屑一顾,但工程上在“想当然地”决定使用如此简单的PID控制之前,是需要回答以上很多问题的。如果使用其他高端控制算法之前并不能实在地回答例如如何处理控制对象的模型之类的问题,那你不应该冒险去使用那些算法,而回答这些问题的根基就在于你所学的控制理论知识。

对控制策略的理解是建立在对控制系统本身的理解之上的。只有清楚了你在面对一个什么样的控制问题,你才能去判断和选择控制方案。控制理论的一个作用是开阔我们对控制算法应用的眼界,你只有脑中积累了很多的控制策略以及清楚它们的适用范围,你才可能会去思考如何在目前的情境下使用和选择它们。在这里同样牵扯到以上提到的种种问题:你需要明智地利用你处理完的系统模型,例如简化模型后系统保留了多少不确定性,这些不确定性可不可以通过一些实际的假设来描述,以及这样的不确定性对闭环控制的稳定性是什么样的影响。非常特别地,实际工程对于控制的稳定性和安全性的考虑要多于控制效果。很多文献和研究提出的控制器,对于一类非线性系统,止步于满足闭环的李雅普诺夫稳定。这样的稳定性分析实际中用的多吗?谁用谁知道。很多人就是因为太关注这一类的稳定性分析而抛开了控制策略的核心问题:如何评价设计好的控制策略。是输出能稳定地跟踪到目标就可以吗,还是需要保留一定的稳定裕度?那我该怎么去量化闭环系统到底有多稳定?实际应用里,只有在保证足够的稳定性之后,才有资格去谈如何提升和优化控制效果。更多的牵扯到系统稳定性的问题还有,如果单纯的李雅普诺夫稳定性判定不能可靠使用,那能不能试试频域的分析方法?系统传感器和控制总线上带来的时间延迟是会影响闭环稳定性的,你所选的控制策略有没有对这些影响做一个量化分析呢?另外控制策略的选择是很依赖于成本和可靠性的,一个实用的控制器肯定是实现复杂度低,硬件设备尽可能少的。这些目标有时会冲突,需要考虑做出妥协。例如当系统某些状态可观时,设计观测器就能省下买传感器的一大笔钱,还能减少系统硬件设备连接提高可靠性,但设计观测器本身却是个艰难的任务,往往会使控制算法复杂化,增加设计和维护成本。在做控制设计时面对这么多的问题,一个不懂控制理论的人如何能回答,以及你的团队怎么被你提出的控制策略说服?在使用你认为简单的PID控制器的时候,你同样不能避开这些问题,并且你需要以回答这些问题的方式具体给出调参的依据。

对于控制需求,这就属于更高层级的问题了,这里往往会涉及到系统运行的安全性和对控制目标做出一定的让步和限制。举个现在很火的自动驾驶的例子,车辆在本身没有部件失灵或者损坏的情况下,你的控制器需要让让它在跟踪轨迹时保证在一定的空间范围内。你设计控制器时就要清楚这个空间在低速时候有多大,在高速时又有多大。根据这些空间的大小需求,控制器能给规划路径上最大侧向加速度提出什么要求,或者车辆最多能跟踪多大曲率的路径。有这些回答后,车辆可以在某些速度下做多的快变道呢?这些是需要控制工程师在设计好的控制器后所要写出来让其他团队去考量和验证的东西,如果其他团队对你的结果不满意,那你还要继续修改控制器。控制理论的作用就是告诉你如何面对这些性能需求问题时提出合理的控制设计,这里就包括界定系统所需的稳定裕度需求,对车辆动力学模型的不确定性界定需求,以及清楚你的控制器的每个部分变化还能不能满足这些控制需求。即使看起来最简单的PID,也不是随便调调参数看到系统稳定了就算了,你需要和整个团队的工作去做整合,满足各种控制需求,并随时准备更改参数。

简单总结一下,控制理论的应用并没有简单的根据微分方程推推公式,用一下李雅普诺夫的理论,稳定了就结束了。系统是复杂的,需要考虑各种问题,而控制理论带来的就是面对这些问题时候做出的合理判断和决定。同样,简单的PID控制,包含的也远远不止调参数这样的问题,而是它到底能多好的应对你的系统。如果不用控制理论,请问你该如何设计好这样一个简单的控制器呢?虽然很多核心知识都在一个自动化领域的本科学习过程中接触到了,但是获得这个领域更高的学位是能带来更多好处的。广阔的眼界和知识能帮助你在困难中寻求出路,对简单的理论反复理解,则能让你认识到,其实你还根本不懂那些理论,更别提在实际应用中游刃有余。对于这个领域毕业的学生,特别是获得了高等学位的,我很希望他们能进军工业界,用他们更多的知识来填补工程应用和理论上的沟壑,这些沟壑不仅仅是决定是不是只要用PID,更深远的在于,到底怎么样能用出一个控制器的精髓。我们应该抛弃那些只为炫数学理论分析之技而严重忽略实际应用的控制理论,掀掉这层模糊不清误导学生的布,让控制理论理应发挥的能力能被更多人看到和理解,调和理论和实际这看似魔幻的矛盾。前路漫漫,我辈当奋斗。

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页