干货文稿|当模型预测控制遇见机器学习

本文来自深蓝投稿作者喻超。加拿大滑铁卢大学在读博士,主要研究方向:基于机器学习的模型预测控制技术,及其在车辆动力学、自动驾驶规划和控制领域的应用,硕士毕业于上海交通大学,拥有8年电动汽车控制系统开发工作经验,曾担任上汽通用汽车电气化控制架构开发经理,美国通用汽车高级控制系统工程师。
最近几年,人工智能和机器学习受到了各行各业的热捧,已经不再是计算机科学系(CS)的“专利”,甚至连我这个传统的机械工程系(ME)研究生都跑来凑了个热闹。本文将不使用任何让人敬而远之的公式,试图通过自然语言深入浅出的讨论,当模型预测控制遇见机器学习,它们会擦出怎样的思想火花。
一、模型预测控制原理及应用
凡学过自动控制原理的学生,或者从事控制系统开发工作的工程师应该对于PID(比例Proportional-积分Integral-微分Derivative)这种最为古老和成功的控制方法并不陌生,而对于MPC(模型Model-预测Predictive-控制Control)这种新兴的强大的控制技术可能并不很熟悉。
国际自动控制联合会(英文缩写IFAC)每三年召开一次的世界大会是自动控制领域公认的顶级学术会议,其在2014年发布的一项调查报告显示,PID仍然是在工业领域具有最大影响力的控制技术,紧随其后的就是MPC。
图片
图1. 影响工业界的控制技术
(来源: Tariq Samad, A Survey on Industry Impact and Challenges Thereof)
PID和MPC控制的共同之处在于其目的都是通过控制执行器,例如电机,阀门等,使被控对象,如汽车,化学反应器等,跟随一种期望的行为轨迹。
其不同之处在于,如图所示,PID控制器使用通过传感器采集到的被控对象当前的和过去的状态来控制执行器动作,而MPC控制器基于被控对象当前的状态,利用控制器内部简化的被控对象物理模型来预测被控对象在接下来一段时域内,一系列执行器动作作用下的行为轨迹。
进而通过优化工具搜索到能实现对期望轨迹最优跟随效果的一系列执行器动作,然后只将第一步动作施加在被控对象上,被控对象执行完毕后再次反馈其当前的状态给MPC控制器,以重复这个控制过程。
两种方法各有优劣,PID控制方法简单,工程实现容易,但存在超调问题,而且难以胜任多个输入和输出(Multi-Input and Multi-Output,简称MIMO)的复杂控制系统的多目标受限优化问题;MPC理论上可以实现最优的控制性能,并且可以轻松应对MIMO系统的挑战,但其性能非常依赖预测模型的精度。
图片
图2. PID控制与MPC控制效果的差别
(来源: Ylva Lindberg, A Comparison Between MPC and PID Controllers)
图片
图3. MPC控制原理示意
(来源: Melda Ulusoy, Understanding Model Predictive Control)
学术界的读者通常比较关心某个技术的理论和原理,而工业界的读者可能更加关心这种技术的量产应用。相比PID这种已经在产品控制器中大量使用的控制技术,MPC的量产应用,特别是在我所熟悉的汽车领域可以说还处在早期阶段。
这与MPC控制技术的研究起步较晚,技术门槛较高,以及量产控制器出于成本考虑所用芯片较为有限的计算能力和存储资源有关。
令人振奋的是,通用汽车(GM)与ODYS公司合作,在2018年将MPC技术成功的应用到了GM 的量产控制器,用于发动机扭矩控制和变速箱速比控制,并取得了不错的节油效果。
这是MPC在汽车工业界的第一次量产应用,感兴趣的读者可以阅读GM 和 ODYS 在SAE上联合发表的文章。另外,在百度Apollo开源自动驾驶平台上,MPC被用于百度自动驾驶车辆的路径跟踪控制。感兴趣的读者可以在百度Apollo的网站上观看相关培训视频和下载MPC代码学习。
因此,总体而言,虽然MPC在汽车工业量产的应用案例还不多,但随着芯片技术的飞速发展,可以预见未来会有越来越多的基于MPC的产品控制器落地。
图片
图4. MPC 用于GM量产发动机控制器扭矩控制和变速箱控制器速比控制
(来源: Alberto Bemporad, Supervisory Model Predictive Control of a Powertrain with a Continuously Variable Transmission)
图片
图5. MPC用于百度Apollo自动驾驶车辆路径跟踪控制
(来源: Qi Luo, An Automated Learning-Based Procedure for Large-scale Vehicle Dynamics Modeling on Baidu Apollo Platform)
二、浅谈机器学习技术
在过去的几年,机器学习技术在不同的应用领域取得了巨大的成功,这主要归功于大量可获取的数据,更加高效的算法,以及越来越强大的传感器、芯片和通讯技术。机器学习(ML)是人工智能(AI)的一个分支,也是实现AI的一个途径。大家可以在书籍或网上找到很多关于ML的定义。
我从工程系统的角度理解,用一句话解释,那就是ML是利用数学(例如概率论)将工程系统的历史数据(Data)转换为数字(Numbers),并从中找出系统的行为模式(Patterns),以对其未来的行为进行预测(Prediction)。
如果只用一个词解释,那就是预测(Prediction)。ML跟MPC一样,都是预测,只不过ML的预测是基于数据(Data-based),而MPC的预测是基于物理模型(Model-based or Physics-based)。
机器学习方法可以分为如下几种类别:
监督学习从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。
无监督学与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有生成对抗网络(GAN)、聚类。
迁移学习:专注于存储已有问题的解决模型,并将其利用在其他不同但相关问题上。比如说,用来辨识汽车的知识也可以被用来提升识别卡车的能力。
强化学习机器为了达成目标,随着环境的变动,而逐步调整其行为,并评估每一个行动之后所到的回馈是正向的或负向的。
图片
图6. ML方法及问题分类
(来源: Daniel Bourke, Introducing the 2020 Machine Learning Roadmap)
这些ML的基础知识并非本文讨论的重点,仅作为接下来要讨论的内容的铺垫。
2020年9月份,计算机科学领域的世界知名学者、加州大学洛杉矶分校计算机科学教授朱松纯,以国家战略科学家的身份回国并任教清华大学自动化系。我读过他在2017年写的一篇很有意思的科普文章,中文题目为《人工智能的现状、任务、构架与统一》,英文题目为“AI:The Era of Big Integration”。
在这篇文章里,首先讲了一个“聪明的乌鸦”的故事来启示读者,然后科普了AI涉及到的六大学科的前沿问题,包括计算机视觉、自然语言理解与交流、认知与推理、机器人学、博弈与伦理以及机器学习,最后总结了一个很有意思的观点,在此先按下不表。
让我们先看看这只乌鸦是何等聪明。事实上,这是日本东北大学的一项研究,图a是一只乌鸦,它找到了一个坚果,然而砸碎坚果吃到果肉超出了它自己的物理动作能力。于是,它想到一个办法,那就是飞到高处,然后把坚果丢到地面上,试图砸开果壳。
这是在利用坚果自身的重力势能砸碎果壳。很可惜,这个办法不行(图b)。于是,它通过观察,又想到另一个办法,那就是飞到马路上的斑马线上空,然后把坚果丢到斑马线上让汽车轧过去。这其实是在利用汽车的重量轧碎果壳。这个方法成功了(图c和图d)。
生物都有趋利避害的本能,乌鸦知道如果在车辆穿过斑马线时去吃果肉,自己很可能会被轧死。但它观察到一个现象,那就是当允许行人通行的指示灯亮起时(图e),汽车都会停在斑马线前方。于是它选择在这个时候飞到斑马线上,安全的吃到了果肉(图f)。
我们不难发现,在这个过程中,乌鸦巧妙的利用了物理学中的重力。
朱松纯教授认为,物理学往往把生物智能排除在研究之外,而人工智能也很少关注物理学,但两者本质上是相通的:当你有了一个概率分布,你就有了势能函数,然后就有了相互作用,也就是力和场。
因此,他认为人工智能本质上必将是以牛顿和达尔文为代表的物理学和进化论两大理论的统一。
图片
图7. 牛顿(物理学)和达尔文(进化论)
(来源: Song-Chun Zhu, AI: The Era of Big Integration)
图片
图8. 牛顿和达尔文
(来源: Song-Chun Zhu, AI: The Era of Big Integration)
三、基于机器学习的模型预测控制
写到这里,终于可以毫无违和感的引出本文的主题——基于机器学习的模型预测控制,英文名为Learning-based MPC。
前面讲了传统的MPC是在控制器内部基于牛顿力学搭建了一个简化的被控对象物理模型以用于预测,并基于预测,在一定的约束条件下搜索最优的控制解。通过合理的设置约束条件,MPC可以确保控制行为的安全性(Safety Guarantees)。
然而,这种控制方法的性能(Performance)非常依赖于物理模型的精度。为了提高控制性能,通常的做法是搭建更加复杂的物理模型,或者使用非线性的优化求解器。
这些做法面临几大挑战,一是难以通过物理学方法(例如牛顿力学)对越来越复杂的工程系统(例如自动驾驶)进行足够精确的建模,特别是当被控对象的运行环境存在较大不确定性;
另一方面,过于复杂的物理模型和非线性优化必然带来过高的计算负荷和存储需求,导致这种方法通常止步于计算机仿真和实验室用于学术研究的高性能控制器,难以进一步走向能大规模量产的低成本控制器;
此外,传统的MPC控制是不具有进化能力的,其物理模型和控制参数并不会随被控对象和运行环境的变化(例如产品的老化)做出自适应的调整。
ML是基于数据来进行预测,随着有效数据的积累,理论上ML的预测能力可以持续的进化。
ML也存在一些问题,一是其预测性能非常依赖于训练数据的数量,然而,在很多的应用领域难以获取大量有效的训练数据,这就极大的限制了ML的应用。
另一方面,很多的ML方法(例如深度神经网络DNN)被视为黑盒子,其预测性能难以被解释。还有很重要的一点,一旦学习失败,ML通常难以保证安全(No Safety Guarantees),这种失效对于很多安全性要求比较高(Safety Critical)的工程应用是难以接受的。
基于上述讨论不难看出,MPC的不足刚好是ML的优势,而ML的不足又刚好是MPC的优势。
因此,加州大学伯克利分校的学者在2012年首次提出了一种基于机器学习的模型预测控制方法,把MPC和ML两种技术完美的结合起来,并通过理论和试验证明了该方法的安全性,以及比传统MPC更优的控制性能。这种新的方法的提出如同打开了一扇门,让牛顿和达尔文走到了一起。
从此之后,越来越多的学者开始研究这种新的控制方法,设计出了不同的变种,并探索了不同的ML方法(如回归,强化学习,深度学习等)在MPC控制问题上的应用。
我在今年7月份参加了IFAC 2020国际会议(自动控制领域的顶级会议)。在该会议上,Alberto Bemporad 教授受邀做了题为Machine Learning: A New ICE (Identification, Control, Estimation) Age 的主题报告。
Alberto Bemporad 是意大利Lucca IMT先进技术研究院的教授,MATLAB MPC 工具箱的作者,MPC研究领域的专家,同时也是上文提到的是与GM合作率先实现MPC控制技术在汽车工业量产应用的ODYS公司的创始人。
Alberto Bemporad 教授的报告内容非常精彩,受限于篇幅,我这里只引用其中两页纸并略作解释。
在第一页报告里,Bemporad教授认为ML可以在三个方面赋能MPC,分别是:
1)利用ML算法(例如非线性回归)从数据中学习预测模型,以提高预测模型的精度,进而实现更优的控制;
2)利用ML算法(例如强化学习)从数据中直接学习并生成MPC控制策略,以及MPC控制参数标定;
3)利用ML算法(例如深度神经网络)从数据中学习和重构不可直接测量,而需要估计的MPC控制所需的状态量。
在总结报告中,Bemporad教授认为ML和MPC的结合会产生“化学反应”,并会极大的提高控制系统的设计和开发水平,同时指出单独使用ML搭建的黑盒模型(例如DNN)不能替代自动控制技术,因此应尽量使用灰盒模型(即ML+MPC)以实现可解释的最优性能,同时确保控制系统的稳定性和安全性。
感兴趣的读者可以阅读Bemporad 教授发表的一系列文章。朱松纯教授和Alberto Bemporad 教授,一位是ML领域的知名学者,一位是MPC领域的顶级专家,他们的观点居然不谋而合,何其妙哉!
图片
图9. ML如何赋能MPC
(Source: Alberto Bemporad, Presentation at IFAC 2020)
图片
图10. 当MPC遇到ML
(Source: Alberto Bemporad, Presentation at IFAC 2020)
四、总结
本文首先介绍了模型预测控制技术(MPC)的原理,及其在汽车控制领域的应用。然后简要的谈了谈机器学习技术(ML)的基本概念,引用了全球著名的人工智能专家朱松纯教授的科普文章中“聪明的乌鸦”的故事,并借用他的观点“人工智能本质上必将是达尔文与牛顿为代表的两大理论的统一”引出了本文重点讨论的基于机器学习的模型预测控制技术(Learning-based MPC)这一前沿的技术方向。
最后结合MPC领域专家Alberto Bemporad 教授在IFAC 2020国际会议上的报告,讨论了ML将如何赋能MPC。