链接:https://www.zhihu.com/question/56964498/answer/218815544
J.B.Rawlings and D.Q.Mayne. Model predictive control : Theory and Design
MPC real-time application
Bemporad 在PPT的第三讲 embedded MPC
思路 linear MPC 最后就是求解一个二次优化的问题--》matlab: x= quadprog(H, f, A, b, etc...)
想要embedded MPC,需要一个 fast and roubst enough and online qp 求解器
PPT 第三讲中 gradient projection, fast gradient projection, ADMM 都可以用来在线求解
工业级产品级MPC code 一定要简单,不仅速度快更要方便维护, 同时给出了不同算法的收敛速度以及最糟糕情况下的迭代次数
如果不用一个 qp solver , 先离线把implicit MPC 算好, MPC 的solution 可以看成是状态x的函数(x不仅时系统的状态),通过把x的空间拆成一个个region, 使得MPC的solution 在某个region变成x 的线性函数。
在线使用时,只要存储region 的分布,参数以及线性函数的参数,就可以不用求qp问题, 而得到explict 的MPC解
Bemporad 的hybrid MPC Toolbox提供了这一工具
自己在整理出C code 或者直接用toolbox 带的codegen工具都可以方便导出C代码,设计的计算也很简单,就是基本的举证运算和查表。
Explicit MPC 实际是求解一个多参数二次规划问题,得到一个u和x在对应可行域上的关系,通过这个表在每个周期直接点搜索,找到对应关系进行运算,求解速度是挺快的