本文从模型问题、系统特色、设计目的、基本研究流程、研究结果评价、以及工程应用等方面初步分析了控制理论研究中的经验和教训,供后续研究参考。
一、控制理论的基础:模型问题
大概每个做控制的人都或多或少听过以下问题:控制理论与实践的差距为什么这么大?控制理论的前途在哪?控制理论应该基于模型还是应该基于数据?控制理论有什么作用,现在还有没有需求?等等等等。这些问题各个都不简单,即使是学术会议上讨论,有时也能吵起来。经过一段时间的思考,发现从头讨论会清晰一些。
我们仔细看控制理论研究的论文,无论是哪种控制理论,几乎全部都是类似于数学建模类文章,什么叫数学建模类文章?一般来说,上来给个背景,然后建个模型,基于模型和需求再进行相关讨论。
先不看下面,很多人在这地方就会提出一个问题,你这个模型符合实际吗,实际的那些被忽略的因素会不会造成影响,或者更严格的,模型都是不精确的,所以是不能用的。
为了解决这个问题,最近一些控制理论的文章,大量出现数据,学习等字眼,有人又会说了,不靠谱,不敢用,没意思。这些争论我们经常听到,但重点是,争论下面的核心问题是什么?
抛开表面上的不同,仔细思考,这实质上主要还是模型与实际的差距对控制系统性能要求影响的问题。这也就解释了为什么一些控制理论方法,你说它没用,模型不精确,它效果还是挺好,你说它有用,模型加点不能承受的变化,它就不能用了。还是一个度的问题,或者说鲁棒性,一句话,就是设计时忽略了可以忽略的,和忽略了不能忽略的区别问题。
因此,一种控制理论能不能投入使用震撼工业界,并不取决于数学推导多么精妙,而是是否考虑了所有应该考虑的东西。或者退一步,有些因素没考虑但对控制方案效果没有大的影响也可以。而准确了解和分析出这些因素的影响,在这个系统越发复杂的年代,经验丰富的工程技术人员可以胜任。但控制理论又对数学基础有一定要求,因此这就是为什么历史上一些突破来源于数学基础较好的工程师。
数据驱动控制,尤其是深度学习,强化学习,深度强化学习算法,提供了一种试图解决这个问题的思路,使得一些没有工程经验的人利用数据分析和学习也能操控真实系统,相当于请了一个虚拟的工程师顾问,但它的问题在于由于基于数据,从本源上理解也是一种对系统的近似手段,与数学角度不同的是,很难确定数据分析出的结果品质,导致实际应用时有时不太顺利。
我们可以看到,目前的控制理论研究主流,沿着两条主线迈进,但通过前面的分析,他们的大的思路是一致的,因此它们之间不是对立关系,而是基于同一大的思想对同一个目标的不同尝试路线,应该互为补充,互为借鉴,互相促进。
二、控制理论的应着眼点:系统特色
谈到控制学科,它的目的是实现对系统的调控,那么它的核心基础就是对系统的认识和剖析,所以需要抓住所研究系统的特性进行进一步的讨论。以上这句话大概是每一个接触过控制学科的人都知道的,但是这里面仍然有一些值得思索的内容,比方说,拿到一个研究成果,它真的符合这句话吗?
随着许多前辈的工作和辛勤付出,控制理论的工具已经变得非常之多,在我们之前所整理的控制理论结构图系列工作当中,一个个名词的堆叠,就足以让人眼花缭乱,挑选出任何一个名词去文献库中搜索,都能够发现成千上万篇的文章,带着这个题目,而其中大部分文章的区别仅仅是应用场景不同。
下面我们举一个例子,也是我个人比较熟悉的领域, 那就是20世纪末兴起的多智能体系统研究,多智能体系统这个词听上去有些不太好理解,这样,我们来解释一下这个研究概念的兴起,当然,因为本篇回答不是专门讨论这个学术概念,所以这里就只简单的说一下。
多智能体系统的概念兴起于物理学研究,它是指通过多个个体之间的简单的交互,去试图描绘一种群体复杂行为的产生过程。用现在的话说,也叫群体智能,只不过在控制研究当中,大多数还是关注了多个个体和简单规则的耦合形式的一种数学模型。从这个角度上,和网络化系统相当相似。
我们可以在控制理论结构图当中任选一个名词,并且把它加上多智能体的前缀,放到任何一种文献库,里面都能搜到很多篇文章。 我们这时候回头再来看开头的一句话,就是这些文章的特色究竟是在什么地方?或者说的更清楚一点,就是这些处理方法,有没有抓住多智能体系统的特色?
为了说清楚这些问题,我们先来考虑一下多智能体系统,到底有什么特色?
多个个体之间耦合的关系,是包含在定义里面的最大特色,我们就从这一点开始出发,首先,相对于传统系统而言,里面包含有多个个体,这样即使多个个体离得非常近,我们也不可能把它视作一个整体,而忽略他们中间的相互联系。这种相互联系一般用网络的形式存在,而这种网络经常用图论的形式表达,这样就产生了第一个特点:
我能非常简单的画出来多智能体系统的结构,但是如果要给一个传统系统的方程,我可能得需要一些时间去分析它的结构,而且它的结构是不能轻易改变的,因为这些结构系数往往是由系统自身的物理定律决定了,而对于多智能体系统而言,它的结构取决于每个个体的关系,尤其是在信息物理系统概念下,改变两个个体之间的关系,从而改变系统的网络结构,是可以技术实现的。
这个特点代表着什么意思呢?也就是说,在传统系统当中,我们只能依靠设计的控制器去对设计后的系统进行状态上的改变,也就是系数矩阵的性质上做出改变,但是如果是多智能体系统,我们就可以直接通过给出一些网络结构的调整规则,去实现对系统状态的改变,将一些不稳定的系统变成稳定的,将一些不可控的系统变成可控的,或者将一些没有达到我们设计目标的系统变成我们能够让他实现设计目的的系统,而这方面的工作数量是少数,2020年发表在TAC上的一篇文章就比较直接的指出:
In our paper, instead, we deal with the open problem of modifying the structure of the network of interaction in a multi-agent systems such that to obtain arbitrarily selected clusters.
(Distributed control of multi-consensus.Lucia Valentina Gambuzza, Mattia Frasca, Senior, IEEE)
另外一点,就是模型的构建问题,很多研究当中,直接给出了多智能体系统方程,但是在实践当中,是不是可以达到的?这种直接给出模型的方式是建立在我们是作为上层观测者的角度上,也就是我们十分清楚这个网络结构的样子和每个个体所处的位置,那么很容易就会遭到一个反驳,就是你这种方式比我单独指挥每个个体到底有什么优势,或者说有什么不可替代的地方,即使有那么一些性能提升,不足以完全说服人。
如果我们把自己看成是一个个体,从个体角度去考虑这些事情的话,那么事情就完全不一样,这也就是基于观测或者叫完全分布式控制。
另外,你把这些个体放在一块,它们中间会有通信,而这个通信问题,是不是又尽力的去考虑呢?无论是时滞、丢包还是近两年应用较多的事件触发或者网络攻击,其实都是在通信上做了一些探索特色。
我们回过头来去看这些开创性的工作,就可以很简单的得到一个道理,所有的开创性都是根据这个系统自身的特色而来,这对于控制研究来说就是一个启发,如果说你深刻的了解了系统的特色,抓住了这个系统的一些小小的特性,你就能够出一些开创的工作,进而去解决别人没有解决甚至没有意识的问题。
三、控制理论的初心:系统调控
对于控制学科的研究人员,尤其是学生来讲,往往会产生这么一种观点,就是我想着什么问题,都用学到的已有控制理论去解决,而把一些新事物视为换皮,实际上,作为控制理论来讲,它的每一个理论都是为了解决一类问题而生产出来的。没有说能解决所有的问题,能应对所有的任务。
再拿多智能体系统来说,很多人从单纯的控制角度出发,认为现在的讨论已经够多了,但从顶刊来看,这个字眼还挺多,我们就可以思考一下这种现象,一方面是大家都感觉研究已经做的差不多,另一方面,相关文章的数量也不断产生,那么只有一个解释,就是如果这种情况下数量上没有什么影响,研究重点上面应该是受非常大的影响,最近几年兴起的有关多智能体系统强化学习,多智能体系统的博弈分析、多智能体系统的社交网络建模和多智能体智能决策系统分析都印证这一观点。
很多人看到这几个题目就会想这些不都是别的学科的问题,为什么得到这么多人的重视?或者说这些问题为什么在这里非常的有意义?那我们就得回到这个问题的初心来看,我们要回到起点,深究当时提出多智能体系统这个概念到底是为了什么?
多智能体系统隐含的是这样一种问题:就是通过个体之间简单的交互,群体之间为什么就能够产生复杂的行为,这是一个物理学问题,并且经常出现在一些未被解决的物理学问题列表中,对于这个问题来说,我们扪心自问,控制理论能帮助解决这个的问题,但是单纯依靠原有工具能彻底解决这个问题吗?
如果要揭示出这里面的机理,我们就必须这样找到呈现出这种机理的事物,那么除了生物集群来说,就是我们自己,对于社交网络来说,人与人之间的关系不是单纯的反馈,人的行为建模至少不应该是传统的线性系统。那么,学习、博弈、社交网络动力学这些因素的引入,往往是必然的,而不是说原有方向做不下去,然后我给他生搬硬套上去,而几乎是必然的现象。
在一个更大的问题框架下利用控制理论的思想和技术,也能探索实现更加符合时代的“系统”的可行性。1950年的飞机大炮工业生产需要维纳控制论,2050年的无人驾驶、无人工厂、联网基础设施、灾难救援动物保护等等也需要新的“控制论”,方法和技术手段不断在迭代适应新的基础设施和硬件条件,但归根结底还是对系统加以研究和分析以及实现,并没有脱离控制理论本身,兼收并蓄博取众长可能会是一个好的心态。
控制理论这个词,如果要准确的来说,应该叫做系统调控理论,控制理论每个时期都应该有不同的内涵,这是需要突破的,至少在认识上要突破,如果我们从已有的控制理论框架去思考问题,我们的思维就有可能局限于这个框架,心里往往想的是如何去继续做,然后产生一个好摘的果子都摘完的感觉,但是如过从研究初心出发,奔着解决问题去,不要排斥任何东西,强化学习也好,博弈论也罢,这些东西在他们各自领域闪闪发光,把他们搬过来,能不能用到我们这里?
但正如第二部分来说,如果我们在了解这个系统特色,并且借助一些观点的启发,而不是生搬硬套过来的话,那么这种学科交叉的魅力就会带来全新的感觉。举一个例子,机器学习和控制理论的交叉,大家试图去解决的问题核心点都在于,该把这个机器学习部分用到哪个部分,是建模还是去识别控制器,还是还是去调参数,这些都是一些尝试思路,但是从方向上,尤其是对于工作效果,抓住了重点做的工作才是效果不错的开创性的工作。
需要注意的是,控制理论不光包括控制算法的设计,就像卡尔曼所说,即使当时控制算法设计与发展相当成熟,在那个时候仍然忽略了一些最基本的问题,比方说可控性,卡尔曼提出了这个问题,有些人就会说,这基本上就属于正确的废话,因为我如果不知道能不能控制,我怎么设计控制器?但是卡尔曼之前的没有人意识到这个问题,从一定程度上来讲,相当于大家都在努力的制作永动机,但是能不能做成还没有理论证明。
对于多智能体系统、复杂网络系统包括带有博弈的社交网络系统,可控性发挥的是一个辅助的作用,那么,对于这方面研究来说的话,我们所要关注的重点就着眼于这个辅助作用,就是如何更快,更方便,更直接的去判断出来,这方面问题很基础,但也有意思的比较好的工作
这里说可控性,并不是要介绍这个领域,而是说即使要做一些小小的概念,也能做出来崭新的漂亮的结果。尤其是复杂网络领域,基本上就能发一些NC或者Nature和Science,但是这些东西归根结底属于控制范畴。
四、控制理论的研究:基本流程
一个传统的控制流程,第一步应该是建模,你想控制什么地方的哪些变量,就建一个这些变量对应的模型。但对于一些控制理论研究者来说,往往第一步就会卡住,因为搞控制的,关注点往往在解决问题,一般的模型都是给出的,建模技术可能研究不深。
于是需要花一些力气,用的可以是物理建模,也可以是数据驱动建模,反正最后得到了一个模型。如果是工程常见的模型,那值得庆贺,很多经典控制理论都可以用了。比如自控里的方法。如果是不那么常见的,就有点难度,第一个想到了PID,看看好不好使,很多人可能瞧不上PID,但到了工程大多都逃不过真香定律。
要是遇到要求高的地方,如果PID不能满足要求了。比如一些设备,如果是物理建模方法,可以转化成状态空间,可以试试基本的最优控制LQR等。或者从硬件上解决,换一些性能好的器件等等。如果到了这还是不行,到了需要翻论文了这一步,首先要干啥,要知道现在这个模型叫啥系统,才能有针对性的搜。说实话,给工业界出来的模型找个学术界习惯的名有点难度。需要有懂这行的指导。
找到了相关名词,去搜了论文,各种名词眼花缭乱,打开一看,一些控制理论研究论文,尤其是注重展示控制方法的论文,模型或多或少比较理想和简单。这就有个问题:这种简单模型推出来的方法到了实际能不能用?这方面的工作较少,一些搞理论的人说这有啥,不就是灌水嘛,没有新思想,不过就这情况而言,还是有意义的。前提是模型和工程实际更接近,而不是更远。并且有些时候,推广并不是改改条件结论不变这种简单的事,翻车的有点多。
即使能用,又有一个新问题,能不能看懂,控制领域的一篇好论文应该是证明很漂亮,结论很简洁,但大多数控制方法的论文想用它的方法还是需要有大量基础知识。
花了一些心血学了数学,可以读论文了,通过仿真和经验看了看,一些方案不成立,一些方案倒是可行,试了试提升不大,少数方案做的还算满意。拿到了一套公式,接下来的问题就是转化成代码。这块也很考验人。
历经了千辛万苦,到了工程运行这步,和仿真差不多自然是不错的结局,如果有些大的偏差,得,又回到上边重新开始。
所以,一篇控制理论论文想投入使用,必须满足各种因素,包括场合,模型,方法,工程师,实际现场条件等等。
那么,如何推进控制理论与实践的差距缩小呢?一步步的看,有没有改进的地方。
第一,找到合适的需求。根据上面的思路,可以看到,能走到需要搜论文这步,还是不容易的。所以第一个方向是做高精尖的东西。希望咱们的高精尖越来越多。
第二,系统建模与辩识课程。建模需要的力学和系统辩识,一般较少出现在自动化专业课程里。不知道现在改没改。涉及到一点的在自控的频域分析里面。这块需要加强。
第三,搞控制理论研究做新方法自然是好,希望有更多的控制理论加入大家庭,但现在的问题是方法很多,能用的少。希望模型比较贴近工程实际的研究多一些,即使方法上没有什么所谓的新东西也是可以接受的。因为你证明这个方法在比较复杂的系统模型上能用就是一个有意义的创新。
第四,最重要的,理论学家和工程师要见面。控制理论家和控制工程师之间的各种输出已经很多了,天天说要在理论界与工业界之间架桥梁,但桥梁式人物一年能出几个?还是需要多交流:
其中控制理论家需要做的努力多一些,了解工程师们棘手的问题,做出解答,并参与实际方案设计,毕竟数学基础好一些。控制工程师需要做的就是提出问题和摆出需求,了解一下数学名词,告诉哪些是可行的,或者给出辅助的工程改进方案。毕竟工程经验在那。不过让两方互相妥协,难度有点高,首先要让控制理论家和工程师组成一个团队,这块寄希望于企业或者高校成果转化了。
有人说,我听到的说法有两种,一是控制理论研究超前于实践,二是控制工程很多问题亟待解决。那只让工程师们学数学赶快追不挺好
其实这里面有些误会,一方面我们的论文数量快速增长,一方面工程师们,即使是数学出身的工程大佬,有时也感叹在现在论文里找不到合适的方法。
这就像两个人在泥泞的道路上跑步,一个人给另一个人打电话,说你抓点紧,我都快到了,另一个人在地面上却没有看到脚印。然后回了一句,你跑哪条路上了?
有人问,什么时候我们真的能成为控制强国,到工业企业普遍开始愿意雇佣控制理论家小组做研究或者当顾问的时候,到我们的工程师团队有时间、有需求去阅读相关顶会和顶刊的时候。
五、控制理论的创新:结果评价
关于理论上的新结果与好结果大家都在讲创新,都在追求创新,有了新结论足以激动小半天,毕竟从科学角度上,任何新结论都可以发表,但最初的喜悦平静后,为了进一步研究,不妨想一想,这个新结论是不是最好的?这个新有没有足够的实际意义?
A.这个新结论是不是好结论?
显然,新结论并不恒等于好结论,因为新结论是比出来的,那就有几个问题,跟谁比出来的?
举几个例子:
①效果比原文的结论在某一方面好,比如某个条件上限制更宽松。那么其他地方呢?有没有明显的硬伤,比如其他地方也很重要的性能指标则远不如原文?
②场景比原文的结论广。比如场景上更宽泛,但结论(不是推导过程)复杂度变的很高?
B.这个新结论是不是最好结论?
很多工作对于问题A都是满足的,效果相比原文不错也没有其他明显硬伤,或者相较原文处理新场景的结论也没有因此变得复杂的多。这里多次提到“相较原文”,那么,如果原文就有硬伤新结论又继承下来的呢?
我们或许都曾经经历过,有些理论结果是新结论,发表了不错的期刊,但一旦你去使用,有时就会有逻辑上的矛盾,大有一种“系统一般是不满足A性质,而巧了,论文的基础(更多的是作者潜意识中使用的假设,比如某个系统信息的默认获取)是系统满足A性质”的魔幻、“系统要是满足A性质我还要用你这个方法?”的不屑,以及“原文结论就难算,好家伙你的结论不简单的就算了,比他还难点。”的无力。而对于一些工作,在问题B上还有一定的发展空间。
到这里,我们知道了理论上的好结果是什么?但作为一门总归要进入应用的学科来讲,还要关心实际上的好结果。
我们经常说,控制理论是与时俱进的。大多数时候,这句话仅仅是一个不带好坏评价而比较准确的描述。最近在看2021年诺贝尔奖获得者乔治帕里西的著作《随椋鸟飞行》,里面提到,伽利略比较早使用了简化方法对物理世界进行研究,后续一些研究者不断加入新因素,来不断增加模型所考虑的复杂性因素。对于控制理论也是如此,尤其是这几年,所考虑的因素也是来源多样。
一开始自然没有什么大问题,引入扰动、不确定、时滞、多类非线性特性等,都取得了丰富的结果,一个原因在于研究扰动、不确定、时滞、多类非线性特性的专家大多也是做控制理论或者熟悉控制理论工具的数学家或者物理学家。
后来涉及到应用,产生了不同小方向的研究者观点碰撞,在2020年的回答中已经提到,这里就不重复了。
再后来随着引入学科的差异,慢慢就出现了一些现象,这几年的控制理论文章里,网络攻击、隐私保护、传染病、博弈论、社交网络之类的关键词。成果数量看上去也不少,就在写回答时的这个午后,可能有几篇文章已经上线了,我们有些做控制的同仁会说这地方都做烂了。但,真的做烂了吗?咱们听听一直做这块的专家怎么评价。
有几次参与相关交流活动,比如把做计算机网络安全的,或者传染病建模的专家跟相关的控制学者拉在一起的学术交流会。人家专家刚开始认真听,到最后应承几句就没下文了。。要是私下问,一些专家表示,现在根本不是这样的嘛。如果是真正做不动的问题,专家听完可能说,“我们也在考虑这个问题。”,目前这个反映,只能说明才刚开始。。。。。。
这里也隐含着一个问题,开拓者从交叉中获得启发,开始了研究,后继者往往更倾向于在开拓者的工作上follow,而如果对涉及学科知识把握不足,一不小心就跑偏,进入了一个奇怪的新世界。
比如,不管实际情况,拿着控制理论地图,哪个名词最花哨就用哪个。再比如,文献里最经典的控制问题,直接RL就开始了,或者反过来。控制理论日益发展为一门交叉学科,这个坑值得注意和时刻铭记。而对于交叉学科来说,让涉及的学科专家们都算满意的,才能算上实际上的好结果。
六、控制理论的实现:控制工程师
除了对控制理论研究本身,更重要的是控制理论需求的问题,首先要解决的是定位问题,也就是正确认识控制理论在实践中的地位。更直接的说,什么是控制工程师?
控制工程师,从简单来说就是,基于客户所提出的要求,在特定的行业系统,特定的工作环境中,在团队合作下,设计出一套可行的解决方案并实施,从而满足客户的需求的一种职业。
首先,看一张总体图,了解一下工程中控制方案的出台过程。对于未来的主要工作也有自己一些清醒认识。
一个控制算法的得出,往往是综合考虑的结果,一些必须从硬件解决的,一些必须从算法中解决的,一些从算法中解决会更好的,一些从硬件上解决会更好的,一些成本低的,一些成本高但效果好的,说的高大上点,就是系统工程思想。
控制理论的框架趋于成熟,表达的意思并不是完美,而是突破速度放缓了。而规划,调度领域的突破明显增加,很多大佬感叹说control不如planning有需求,这里面说明了什么?企业什么时候对人才有需求?有问题有困难才有需求。这也反映了一个形势。
很多控制研究是丢了钥匙在路灯下找,即使不是丢在路灯附近
换在这里,就是工业界需求的,困难的,做的少;相对成熟的,学术界做的多。其实这也不能批判什么,科研成为一种职业后,尤其是与吃饭挂钩后,就很难要求每个人都去一心做难题的,也不太现实。
七、总结
到此为止,全篇都在以多智能体系统为例,但是这种思考感悟并不局限于这个领域,而是对于一种系统,要问他有什么特色?要问你自己要实现什么目的?这种目的能不能用控制理论传统工具实现?这种特色有没有必要提出来一个新指标?
拿到一个系统,这些问题提出来,得到的成果跟别人提到,至少人家会觉得你至少提供一种参考思路,研究抓住了特色,给读者提供参考,本身就是研究最大的价值。
通过上面这些分析来看,我们也能够知道,在应用场景上,有些东西它并不是万能的,能感受时代在发展,社会在进步,技术问题层出不穷。有人也许会说你这些东西,无非就是基础理论能用到吗,基础理论研究要走的道路,如果我们不去做,别人就会做,然后他们做完之后,我们就有可能受其限制。
对于控制的研究来说,适当的引进数学人才对于控制的研究是相当有裨益的,但是,正如黄琳院士在一篇文章当中所深刻指出的那样:
这种理论与实际严重分离的现状有其一定的必然性, 即数学家在研究控制问题时把着眼点放在数学的兴趣而不是控制工程问题的解决, 使追求抽象化、一般化的理论成为时尚. 但数学理论能严格证明的有应用价值的控制问题仅是浩瀚的控制领域数学问题中的个别现象, 而且从现实的控制工程中提炼出可操作的理论问题并加以解决本身就是一项十分困难的任务. 这就使得功底不深而体量较大的控制数学工作者转而走向另一个途径, 即为已有的理论与方法配上控制系统的例子以利发表科学价值不大的“论文”, 并以此造成控制理论虚假的繁荣. 面对这一怪象, 重温“工程控制论”的思想与处理问题的方法是十分有益的.
如果我们做不到对系统特色、对研究初心、对创新意识的把握,那么我们就又一次了进入了黄老所指出的这种状态,即使文章再多也是虚假的繁荣。
祝好!