简介
本篇主要说明Simulink模型的搭建、MPC控制器的S-function的编写
1、Carsim设置
新建一个空白的Simulink模型,或复制Carsim自带的Simulink模型,存放在如下路径C:\Users\Public\Documents\CarSim2016.1_Data\Extensions\Simulink)
单击下图中的红圈按钮
如下图所示,将新建好的Simulink模型添加到进来
单击Send to Simulink按钮,如下图红圈所示,该操作将打开MATLAB及Simulink
2、Simulink模型搭建
步骤1的操作将自动打开MATLAB的Simulink(需等待几十秒,MATLAB启动较慢),并且Simulink Library Browser中将出现Carsim S-Function模块,之前在Carsim里搭建的汽车模型被封装成S-Function用以被调用。
搭建如下的Simulink模型
经测算,所选车型的方向盘转角约为车前轮转角的17.86倍
Simulink模型的下载链接
3、S-Function的编写
一个很好的S-Function教程
新建MPC_Costfunction.m 、MPC_Nonlcon.m 、MPC_S_Function.m 三个.m文件,存放在如下路径C:\Users\Public\Documents\CarSim2016.1_Data\Extensions\Simulink)
双击Simulink模型中的MPC_S_Function中模块,出现如下的窗口,点击Edit按钮
单击Browse按钮,添加已经建好的MPC_S_Function.m 文件
4、源码
a. 参考轨迹有两个可供选择
y = 0.5 * sin( 0.1 * pi * x )
y = 1
b. 目标函数中的各个惩罚项权重需要进行调参,过多的惩罚项将大大降低实时性
c. 增加预测的周期周期数可以降低调参的压力,但是会牺牲实时性
MPC_S_Function.m 程序的下载链接
MPC_Costfunction.m 程序的下载链接
MPC_Nonlcon.m 程序的下载链接
Reference
1.龚建伟, 姜岩, 徐威. 无人驾驶车辆模型预测控制[M]. 北京理工大学出版社, 2014.
2.Matlab中S-函数的编写https://blog.csdn.net/acelit/article/details/59082349
评论(0)
您还未登录,请登录后发表或查看评论