关于MPC(模型预测控制),网上的理论很多,简单易懂的,复杂全面的都有。这边我也记录一下MPC的学习,主要是通过汽车ACC的例子,这里汽车模型只是简单的积分器,主要目的还是MPC的一个应用。
1,simulink模型搭建
(中间的相减模块不小心被注释掉了,不想打开Matlab重新截图了,因为懒,直接编辑了一下,ahhh)
首先分别用两个积分器表示前车与本车的速度与位置的变化,左上角的sine模块来模拟前车加速度的变化,我们的目的是通过两车之间的距离、本车的车速以及设定的本车车速限制来作为控制器的输入,输出是本车的加速度值,制器通过一个Matlab function 模块来实现。
2 MPC控制器
首先定义主函数的输入输出,初始值,周期和步长,一般来说,步长和周期的选取和系统相关,步长选取过长,只会增加计算量,且通常我们只取求出来第一个控制量。步长选取过小,预测效果可能不太好。一般选取预步长的20%作为控制步长,当然也可以将两者设置为一致,不能一概而论。周期的选取类似,一般选取开环系统响应上升时间5%到10%。myOptimizer是模型的求