决策规划仿真平台搭建
前提:
MATLAB R2020a/b
PreScan 8.5.0
Carsim 2019.1(or 2020.0)
VScode 2019(这个也可以不安装,替换方案是在MATLAB R2020a的附加功能中安装mingw-64)
我安装的是VS2022,不会自动识别VS2022的C++的编译器(这是因为低版本的MATLAB无法识别高版本的VScode)
具体步骤:
因为我们已经安装好PreScan 8.5.0,所以一定可以找到:
C:\Users\Public\Documents\Experiments\DemoTemplates\Demo_PreScanCarSim3D\Demo_PreScanCarSim3D.cpar
接着打开PreScan 8.5.0,新建:
Actors-->把Audi A8 Sedan拖出来-->点击小车,设置Locations里的x,y=0,z不变
如下图所示:
接着打开Carsim
打开上文提及的.cpar文件(Demo_PreScanCarSim3D.cpar)
选择要提取到的文件夹:
如图:
至此,Carsim的动力学模型已经完成
要用Prescan做联合仿真,回到Prescan:
右键点击小车,选第一个“属性”--选“Dynamics”--用户自定义--C:\Users\Public\Documents\Experiments\DynamicModel\Extensions\Simulink\CarSim_VehicleDynamics.mdl----apply----OK
接着设置仿真频率---点击时钟按钮--设置如下:
最后点击“Build”,一定要点,否则之前的工作白做了
接着打开MATLAB,注意打开方式,右击任务栏的prescan--选择“open”--Start
MATLAB安装 MinGW-w64 C/C++ 编译器:
matlab安装 MinGW-w64 C/C++ 编译器_mingw64 matlab-CSDN博客
在MATLAB命令行输入:
setenv('MW_MINGW64_LOC','E:\msys64\mingw64')
mex -setup
打开之前的TestEMplanner:
点击TestEMplanner_cs.slx
注意:当有改动,prescan里Build一下,Simulink里Regenerate一下
双击小车,进入小车的模块:
点击向下的箭头,可进入车辆的动力学模型
not found的原因是未添加求解器:
Solver_SF not found错误,carsim+prescan+simulink联合仿真_carsim simulink联合solver not found-CSDN博客
添加完还是找不到,则把“2”删掉
.sim模块目前未生成:
回到Carsim去生成:
如下,地址为C:\Users\Public\Documents\Experiments\DynamicModel\simfile.sim
(tips:找到文件,按住Shift+右键,可显示复制文件地址的选项)
回到之前,单击小车:
最后,配置一下Carsim的输入与输出:
这里我们可以参考Prescan的模板
点击AudiA8的模块:
点击小车的箭头:
报错,修改名字(与前面的名字匹配),就可以了
嗯嗯,确实是这样:
接下来就是copy了:
注意
黄线是按Ctrl连接两个模块
In1是输入1
最终如图:
CarSim2PreScanSTATE模块:
接下来配置算法:
选择这三个文件,复制到C:\Users\Public\Documents\Experiments\TestEMplanner目录下,
先regenerate一下:
打开matlab,找到emplanner_init.m文件,运行:
接下来,复制算法和输入输出模块:
copy
至此,搭建完毕:
设置仿真时长为30s,运行:
出现报错:函数或变量“vs_state”无法识别
解决方案:
在matlab的命令行输入vs_state=-1,回车,然后运行,还是会报错“函数或变量StopMode无法识别”,然后再在命令行输入StopMode=-1,即可运行
但是跑了一会,小车不见了,需要在Prescan里加一个跟随小车的摄像头
Visu Aids--Human View--Custom--
先Build再Regenerate,再Run:
那么,如何评价跟踪轨迹的好坏呢?
运行testctrl.m:(把.m文件拖到命令行)
上图,蓝色为规划的轨迹,红色为跟踪的轨迹,可以看出,两条线的贴合程度较好