在Matlab中使用ACADO进行MPC的C++代码生成
前期准备
安装步骤
- 解压acadotoolkit至任意文件夹内
- 打开matlab,在命令行中输入
mex -setup;
- 在matlab提供的编译器选项中点击 mex -setup C++
- matlab中当前路径设置为解压的acadotoolkit文件夹
- 在matlab的命令行中输入
cd interfaces/matlab/;
- 当前所在的文件夹及其内容为
- 在matlab命令行中输入
make clean all;
- 可以看到如下的编译提示,等待一段时间后编译成功。
MPC模块的示例及代码生成
在matlab的当前文件夹栏中,先进入acado工具箱的原目录,然后在命令行中输入
cd /interfaces/matlab/examples/simulationenv/active-damping;
打开现在文件夹目录中的 active_damping.m 文件。此文件目的是实现使用MPC进行简单的车辆主动悬架控制。
问题描述为:利用主动阻尼,使悬架状态稳定在一个给定的参考值附近。该模型的四种微分状态xb, vb, xw, vw 分别为车身/车轮的位置/速度;控制输入F是作用在车身和车轮之间的有限阻尼力;R表示道路干扰。车辆动力学方程如下:
MPC的目标是使车身和车轮的位移回到0,假定没有道路干扰,控制约束为阻尼力F范围设为[-500N,500N]。
运行active_damping.m文件,可以在输出的图像中观察到车身和车轮受到激励,但很快被MPC控制器调节回0,在这个过程中,同时满足了阻尼力的控制约束。
在同一文件夹内,找到active_damping.cpp文件,即为matlab使用MPC方法和ACADO工具箱生成的C++代码。
(全文完)