随着计算机的能力不断提升,优化方法现在应用也比较多,最近一直在看优化方法,典型的就是MPC,关于MPC与数据驱动相结合的论文现在也很多:
各自优缺点:
MPC方法的性能(Performance)非常依赖于物理模型的精度。为了提高控制性能,通常的做法是搭建更加复杂的物理模型,或者使用非线性的优化求解器。
这些做法面临几大挑战,一是难以通过物理学方法(例如牛顿力学)对越来越复杂的工程系统(例如自动驾驶)进行足够精确的建模,特别是当被控对象的运行环境存在较大不确定性;
另一方面,过于复杂的物理模型和非线性优化必然带来过高的计算负荷和存储需求,导致这种方法通常止步于计算机仿真和实验室用于学术研究的高性能控制器,难以进一步走向能大规模量产的低成本控制器。
此外,传统的MPC控制是不具有进化能力的,其物理模型和控制参数并不会随被控对象和运行环境的变化(例如产品的老化)做出自适应的调整。
ML是基于数据来进行预测,随着有效数据的积累,理论上ML的预测能力可以持续的进化。
ML也存在一些问题,一是其预测性能非常依赖于训练数据的数量,然而,在很多的应用领域难以获取大量有效的训练数据,这就极大的限制了ML的应用。
另一方面,很多的ML方法(例如深度神经网络DNN)被视为黑盒子,其预测性能难以被解释。还有很重要的一点,一旦学习失败,ML通常难以保证安全(No Safety Guarantees),这种失效对于很多安全性要求比较高(Safety Critical)的工程应用是难以接受的。
MPC与机器学习相结合可以从三个方便进行探索:
1)利用ML算法(例如非线性回归)从数据中学习预测模型,以提高预测模型的精度,进而实现更优的控制;
2)利用ML算法(例如强化学习)从数据中直接学习并生成MPC控制策略,以及MPC控制参数标定;
3)利用ML算法(例如深度神经网络)从数据中学习和重构不可直接测量,而需要估计的MPC控制所需的状态量。
下面给出一个架构:
很多人问这个架构资料,这里可以我上传的bibi视频:Competitive Car Racing with Multiple Vehicles - YouTube_哔哩哔哩_bilibili