来自系列:了解模型预测控制
Mathworks Melda Ulusoy
此视频通过提供用于实现MPC以进行快速应用的快速提示。为了降低MPC计算的复杂性,您可以尝试使用模型顺序减少技术,使用更短的预测和控制视野,减少约束的数量,并使用低精度的数据表示和操作。
如果您需要进一步减少快速应用程序的采样时间,您可以使用显式MPC或SubOltiMal解决方案。通过使用脱机预先计算的最佳解决方案,显式MPC比传统MPC更少的运行时间计算。万博 尤文图斯通过在迭代次数超过指定的最大值后,可以保证MPC控制器的最坏情况执行时间。
在此视频中,我们将讨论更快运行MPC的实现提示。我们将继续使用上一个视频中的煎饼隐喻。喂养人煎饼是一个复杂的过程。您需要准备混合,煮煎饼,并在客户用完耐心之前快速服务。另一个挑战是您的餐厅空间有限,可以存储所有这些成分。
类似地,MPC是计算复杂的。其中一个原因是模型预测控制在每个时间步骤解决了在线优化问题。将MPC问题标明为试图最小化二次成本函数的QP问题。MPC计算随着越来越多地获得更复杂的状态数,约束,控制的长度和预测视野。如果MPC控制器在大型服务器上运行,则具有缓慢动态的应用程序,例如在过程行业中,那么计算复杂性不应该是一个大问题。但是,假设您要将MPC算法部署到自主车辆的ECU。然后,需要在毫秒的顺序中在小的采样间隔内解决优化问题。另一个挑战是您的嵌入式硬件的内存有限。需要存储用于MPC计算的矩阵随着优化变量的数量越来越多地增长,但您需要确保不耗尽内存。
有什么方法可以提高吞吐量并降低内存使用量?对于煎饼的例子,如果有成分对味道没有贡献,但需要花费大量时间准备,你可以从食谱中删除它们。这将减少准备和服务时间,并更容易将所有成分存储在有限空间中。类似地,为了降低MPC的复杂性和计算时间,您可以尝试应用用于丢弃不会有助于系统动态的状态的模型顺序减少技术。这也有助于减少控制器的内存占用空间。您可以尝试处理吞吐量和内存的其他事情是使用更短的控制和预测地平线,减少约束的数量,并使用低精度操作和用于实现MPC的数据表示。
您可以尝试使用小型采样时间的应用程序实现MPC的快速提示。但是,如果您需要控制具有更小的采样时间的系统,那么您可以尝试使用显式MPC。显式MPC的煎饼类比如下。每次烹饪煎饼时都可以使用更良好的煎饼混合物,而不是混合成分。而不是在线解决当前状态的优化问题,而是显式MPC解决了给定范围内的所有状态的脱机。对于给定范围内的每个x值,显式MPC预先拍摄最佳解决方案。事实证明,该解决方案由线性函数组成,该函数是分段仿射和连续的X。任何约束将解决方案空间都切入区域,每个区域映射到一个独特的最佳解决方案中。将这个想法扩展到两个状态系统看起来像这样。在脱机计算最佳解决方案后,所有MPC都在线找到,找到当前状态所在的区域,并评估线性函数以创建当前的控制操作。 Reducing the iterative optimization process to linear function evaluation greatly simplifies the run-time computations. So, explicit MPC can be deployed for applications with a very small sample time.
预先制作的混合很棒,但如果你有各种各样的味道,那么找到你正在寻找的味道需要时间。并且对于每个不同的调味组合,您将需要有限的存储空间。类似地,如果存在许多区域,则搜索当前状态所在的区域可能是耗时的。而且,存储所有这些区域需要大的存储器占地面积。通过将它们合并在一起,有技术可以减少区域的数量。但是,在这种情况下,解决方案不再最佳。
更快地运行MPC的另一种方法是使用次优解决方案。回到煎饼类比:服务时间可以大大改变,基于板材装饰的幻想。不想等待长时间的客户可以从菜单中选择基本的煎饼选项。其他人更耐心,可以等待更长时间可以使用鸽友的选择。在MPC问题中,找到最佳解决方案的迭代次数是完全不可预测的,并且可以从一次步骤到另一个时间从一个时间变化。在最坏的情况下,计算时间可能超过控制器采样时间。但是,您希望确保在示例中找到解决方案,并且甚至还有一些需要在硬件上执行的其他任务的额外时间。要处理此问题,您可以确定优化迭代次数的最大值。此示例演示了解最佳解决方案需要10个迭代。但是,由于最大迭代次数设置为5,因此当达到5时,控制器停止优化并使用该迭代中的子优化解决方案。 Note that this is a suboptimal solution, but it still satisfies all the constraints of the optimization problem. To determine the maximum number of iterations, you can test your algorithm on your hardware and identify the execution time used by each iteration. Assuming that each iteration takes a similar execution time, you can choose the maximum number of iterations such that the total execution time does not exceed the controller sample time.
总之,运行MPC更快,您可以先尝试这些快速提示,看看它们是否适用于系统。对于具有非常小的采样时间的快速应用程序,您可以使用显式MPC,这通过预先计算脱机最佳解决方案来大大降低运行时计算。增加吞吐量并保证MPC控制器的最坏情况执行时间的另一种选择是使用SubOltimal解决方案。
在下一个视频中,我们将在Simulink中使用自主车辆转向系统示例,以演示如何使用MPC Designer应用程序设计MPC控制器。万博1manbetx
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。