MPC实际上是一种最优控制方法。线性MPC是把目标函数表达成输入序列 的二次型表达式,把约束表示成输入序列 的线性等式和不等式约束,这样利用二次规划求解出来输入序列,然后施加到被控系统,得到反馈结果以后,再不断重复这个过程。
线性MPC的特点就是:模型预测,滚动优化,反馈校正。
它擅长处理多输入和约束。
如果需要控制非线性的被控系统,那么需要先将非线性系统进行线性化。
非线性MPC是一种针对非线性系统并且不需要线性化的模型预测控制。
非线性MPC通常把状态量,输入量合并到一起作为优化问题的决策变量,然后把动力学模型(状态方程)作为非线性约束,再结合实际问题定义目标函数,最后用非线性规划求解器进行求解。求解结果施加到被控系统,得到反馈结果以后,再不断重复这个过程。
非线性预测模型:
非线性约束:
非线性目标函数:
非线性优化问题:
非线性主要体现在:
1)预测模型是非线性的
2)约束条件是非线性的
3)目标函数是非线性的
这样带约束的非线性问题,一般用非线性规划(NLP)来求解。
常见的NLP求解器有: fmincon(matlab), ipopt(c++)。
和线性模型预测控制一样,非线性模型预测控制也是一种最优控制方法,它每一次求解能够得出预测时域内最佳的决策序列,因此它也常被用来做轨迹优化。