QUICK REVIEW
[论文解读] Implementation of Linear Model Predictive Control -- Tutorial
Michael Fink|arXiv (Cornell University)|Sep 24, 2021
Advanced Control Systems Optimization参考文献 6被引用 6
一句话总结
本教程介绍了针对具有状态和输入约束的离散时间系统,实现线性模型预测控制(MPC)的实用方法,通过终端约束和终端代价函数强调递归可行性与稳定性。演示了如何将MPC优化问题重构为二次规划(QP)以实现高效的MATLAB计算,并通过仿真示例(含与不含终端集)说明了递归可行性的丧失与恢复。
ABSTRACT
This tutorial shows an overview of Model Predictive Control with a linear discrete-time system and constrained states and inputs. The focus is on the implementation of the method under consideration of stability and recursive feasibility. The MATLAB code for the examples and plots is available online.
研究动机与目标
- 提供一份全面、分步的教程,介绍针对具有状态和输入约束的离散时间系统的线性模型预测控制(MPC)实现方法。
- 通过引入终端约束集和终端代价函数,确保MPC中的递归可行性和稳定性。
- 演示如何将MPC优化问题重构为标准二次规划(QP),以实现在MATLAB中高效求解。
- 通过仿真说明省略终端约束的后果,展示递归可行性的丧失。
- 提供所有示例和图表的开源MATLAB代码,以支持可重现性与实践学习。
提出的方法
- 将线性离散时间系统模型表述为 $ \boldsymbol{x}_{k+1} = \boldsymbol{A}\boldsymbol{x}_k + \boldsymbol{B}\boldsymbol{u}_k $,并施加状态约束 $ \boldsymbol{x}_k \in \mathcal{X} $ 和输入约束 $ \boldsymbol{u}_k \in \mathcal{U} $。
- 定义具有二次代价函数的有限时域最优控制问题,其中包含状态权重 $ \boldsymbol{Q} \succeq 0 $、输入权重 $ \boldsymbol{R} \succ 0 $ 以及终端代价 $ \boldsymbol{Q}_f $。
- 将MPC问题重构为提升系统表示形式,将预测时域内所有预测状态和输入表示为单一优化向量。
- 对状态和输入序列施加提升后的约束,包括终端约束 $ \boldsymbol{x}_{k+N|k} \in \mathcal{X}_f $,以确保递归可行性。
- 通过将代价和约束表示为标准QP形式,构建二次规划(QP)问题,从而可使用MATLAB中的标准QP求解器高效求解。
- 利用MPT3工具箱计算终端约束集 $ \mathcal{X}_f $ 作为最大稳定集,以保证稳定性和递归可行性。
实验结果
研究问题
- RQ1如何在确保状态和输入约束下,高效实现线性模型预测控制,同时保证递归可行性和稳定性?
- RQ2终端代价和终端约束集在保证MPC中递归可行性和稳定性方面起到什么作用?
- RQ3省略终端约束会导致MPC仿真中递归可行性丧失的原因是什么?
- RQ4状态和输入约束对MPC优化及其实际求解有何影响?
- RQ5如何将MPC优化问题重构为标准二次规划(QP),以实现在MATLAB中快速可靠的数值求解?
主要发现
- 若不设置终端约束集 $ \mathcal{X}_f $,MPC优化在几次迭代后可能变得不可行,如初始状态 $ \boldsymbol{x}_0 = [7.3\ 10]^\top $ 的仿真所示,最后预测状态违反了状态约束。
- 通过MPT3工具箱计算出的适当终端约束集 $ \mathcal{X}_f $(即最大稳定集)可恢复递归可行性,并实现稳定、长期的MPC运行。
- 终端集 $ \mathcal{X}_f $ 与可行初始状态集 $ \mathcal{X}_N $ 一致,初始状态 $ \boldsymbol{x}_0 = [7.3\ 10]^\top $ 位于其边界上,表明对扰动敏感。
- 所施加的输入 $ u $ 初始时达到输入约束极限 $ -20 $,表明约束处于激活状态,随后随着系统向原点演化,进入非激活状态。
- 仿真结果证实,当使用终端集时,递归可行性得以维持,因为每个时间步的最后预测状态始终位于 $ \mathcal{X}_f $ 内。
- 所有示例和图表的MATLAB代码均可在 https://github.com/placebovitamin/MPC-Tutorial 公开获取,支持可重现性与实际实现。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。