matlab、carsim、prescan联合仿真详细步骤

在matlab、carsim、prescan联合仿真中,prescan提供测试场景和传感器模型,但prescan也提供车辆动力学2D和3D模型,因此在验证自动驾驶算法功能逻辑时,或者对车辆动力学模型要求没有那么高时,可以选择matlab和prescan的联合仿真,而无需配置carsim的环境。matlab、carsim、prescan下载和安装资源见软件下载和安装 下面默认matlab、carsim、prescan已经安装好。 版本如下: carsim 2019.1 PreScan 8.5 matlab R2020b

1、prescan场景建立和车辆配置

1、打开prescan,点击"File"->"New Experiment"新建实验项目,编辑项目文件夹名字和存储位置,实验采样时间默认为20Hz,在联合仿真中建议改为1000Hz。 2、在prescan中建立测试场景,首先建立背景环境,在左侧功能区中选择“Environment”->“Underlays”,选择一种背景底色,按住拖到中间编辑区中,选择“Nature Elements”,可以在场景中添加植被,选择“Dirt Spots”,可以在场景中添加泥点。

3、建立道路模型,在功能区中选择“infrastructure”,此处选择道路类型,可以通过连接不同道路段构建复杂的道路场景,以直线段举例。按住“Straight Road”,拖动到中间编译区中,在右侧属性编辑界面可以设置右侧行驶车道数量、车道宽度、总车道数和车道长度等属性。 4、设置车辆行驶路径,点击左侧功能区中的“Inherited Path Definition”,在场景的车道线上会出现可行驶路线的端点,从起点处开始逐个连接路径控制点。

5、添加车辆模型,在左侧功能区选择“Actors”->“Cars&Motors”,选择“Audi A8 Sadan”,左键车辆型号的小图标拖到道路上的路径线上,车辆图标会自动调整到路径的起点处。

6、添加摄像头传感器模型,功能区选择“Sensors”->“Detailed”,左键选中“Camera”按住不放,拖到车辆模型上松手。设置摄像头属性,包括安装位置、角度、帧率等属性。 7、设置车辆属性,在编辑区中右键车辆图标,选择“Object configuration”,此处可以设置车辆的属性,在“Trajectories”中确认行驶路径和速度文件,在速度文件中可以设置初始速度和目标速度等;在“Driver Model”中选择“Path Follower”;在“Animation”中勾上“Wheel displacement”;在“Dynamics”中选择动力学模型,如果对动力学模型精度要求不到,那么选择不使用动力学模型(“None”),可以选择prescan中自带的动力学模型(2D Simple或者3D Simple),点击“Apply”,点击“OK”。如果选择使用carsim中的车辆动力学模型,请参考第二部分;如果不使用,直接跳到第三部分。

2、carsim车辆动力学模型设置

8、在工作目录中新建一个文件夹,用于存储carsim生成的车辆动力学模型,在matlab中将工作目录切换到这个文件夹下,点击“Simulink”,新建一个Simulink模型,将空模型保存到这个文件夹下。

9、carsim设置,建议将carsim自带的数据库备份一下,将carsim自带的数据库复制到工作目录下,后期设置到carsim的操作在复制出来的文件夹下操作。 10、双击carsim图标,打开软件,选择数据库时选择从其他数据库中选择,打开工作目录下的carsim数据库,确定打开,在选择使用模块界面,默认选择全部组件,点击“select”。 11、加载prescan中的动力学模型,点击“File” -> “Import Parsfile…”,在弹出的文件选择对话框中选择prescan数据库安装路径下的…\DemoTemplates\Demo_PreScanCarSim3D目录下的Demo_PreScanCarSim3D.cpar,并进行加载。 12 设置模型属性,点击“Carsim_VehicleDynacis”,在新对话框中勾选“Identify Simulink working directory”,在上方新出现的工作目录中选择第8步中新建的文件夹。在右侧“simulink model”对话框中选择文件夹下的simulink模型。将动画刷新速率设置为1000Hz(可以不用更改),将数学模型和输出文件对话框中的频率设置为1000Hz。 13 调整carsim车辆模型输入输出接口,点击“Model:Simulink:CarSim_VehicleDynamic”->“Import:Inputs”,选择转向角,油门和制动三个信号作为输入,对于想要去掉的信号,双击信号名前的序号位置即可删除信号,信号含义可以通过点击打开“View Spreadsheet”查看信号详细含义。如果点击无法打开,可以在carsim安装路径下搜索“Run_imp.xls”查找打开。 检查输出信号中包含x,y,z三个方向上的位置、速度、角度共9个信号。 点击上方的“Home”,回到主界面,点击“Send to Simulink”将模型发送到simulink中。

14 在通过carsim打开的simulink中点击“Library Browser”->“carsim s-function”,将“CarSim S-Function”模块拖到simulink模型中去。点击保存。点击上方的“RUN”,运行模型。正常运行后,停止模型运行。 15 回到prescan中,设置车辆属性,在编辑区中右键车辆图标,选择“Object configuration”->“Dynamics”->“User specified”->“Browse”,选择我们新建放置carsim生成的动力学模型的文件夹下的slx文件,点击“打开”。在“Model file”对话框中选择“CarSim Contact”,点击“OK”确认退出。

3、模型编译、联合仿真

16、prescan仿真频率设置,将仿真频率设置为1000Hz,设置完成后点击“Parse”检查设置是否正常,然后点击“Build”编译模型,编译完成后,点击“Invoke”将模型发送到matlab中。

17 在新打开的matlab界面中双击工作目录下的项目文件夹,将工作目录切换到项目文件夹下, 18 双击打开目录下的…_cs.slx文件,或者将其拖到命令行窗口打开,在打开的simulink模型中点击“Regenerate”重新生成。每次prescan修改模型后,都需要重新发送到simulink中再次重新生成。

19 连接carsim模型接口。点击simulink中的模型,进入到CarSim_Vehicle模块中。如果模块边线正常,跳到下一步。如果出现CarSim S-Function为红色虚线框,则需要在matlab中设置carsim路径。在matlab主界面中点击“设置路径”->“添加并包含子文件夹”,选择carsim的安装路径下的求解器文件夹…\CarSim2019.1_Prog\Programs\solvers,->“选择文件夹”,点击“保存”后点击“关闭”。

20 关闭simulink模型后再次打开,并进入到CarSim_Vehicle模块中发现模块已经正常。将CarSim S-Function模块两端如图连接起来。

21 组合carsim输入信号,在Audi_A8_Sedan_1模块内新建一个“Mux”模块,输入端口设置为3,输入分别连接转角信号、油门信号和制动压力信号,输出连接到carsim_vehicle中。保存模型。 22 此时直接点击“RUN”,运行模型会出现报错,出现“vs_state无法识别”或者“StopMode无法识别”在模型中右键选择“Model Properties”,点击“Callbacks”->“InifFcn”,在右侧编辑区加上两行

vs_state = 1;

StopMode = 0;

23 此时运行模型仿真如果出现“Unable to find solver DLL path from sim file”,则需要在carsim模型中添入simfile的完整路径 24 运行模型,成功开始仿真,同步在prescan和simulink中出现仿真动画。

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。