matlab、carsim、prescan联合仿真从零开始详细步骤

article/2025/8/27 15:54:30

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中出现仿真动画。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/G9l4fRFY.shtml

相关文章

Prescan(一):无人驾驶仿真软件简介

Prescan介绍: Prescan原作为ADAS测试仿真专用软件,近几年来由于无人驾驶技术的兴起,越来越多的无人驾驶团队迫切的需要一款软件来实现对无人驾驶车辆进行软件在环,硬件在环的检测。Prescan在其做智能辅助驾驶仿真的基础上&#x…

Prescan基础知识总结

文章目录 1. Prescan 基本介绍2. 场景搭建2.1 静态部分环境和天气基础设施之路段、路面、路标和交通信号基础设施之静态物体 2.2 动态部分路线行人和车辆 2.3 监测部分——传感器和可视化传感器3D VisViewer 2.4 整体——地图导入 3. 测试部分3.1 Parse和Build3.2 MATLAB配置3.…

Prescan基础知识

文章目录 前言一、PreScan干什么的?二、学习PreScan基本操作总结 前言 因为毕设是自动场景下的多目标检测跟踪与轨迹预测研究,所以需要学习到自动驾驶仿真软件PreScan,这周的主要工作是对PreScan进行一定的了解:首先是了解PreScan…

PreScan快速入门到精通第二讲PreScan功能介绍

智驾社 小明师兄 PreScan产品功能包含如下: 1. Pre-processor or GUI: 预处理器或GUI 2. Engineering Workspace or Compilation Sheet:工程工作区或编译表 3. Main modules:主要模块 4. Process Manager:进程管理 5. Miscellaneous:其它项 1.1 预处理器或GUI GUI的关键…

【prescan入门】prescan入门教程(场景搭建、参数设置、连接MATLAB实现仿真)

环境 windows10PreScan8.5.0MATLAB2019bvs2019社区版 场景搭建 双击打开【PreScan GUI 8.5.0】【File】->【New Experiment】新建实验 搭建环境(草地、水泥地、砖地等) 这里我选择草地场景,将【Grass】拖入网格区域 选择基础设施&…

数据库与缓存一致性解决方案

数据库与缓存一致性解决方案 文章目录 数据库与缓存一致性解决方案前言几种方案的分析方案的实现 前言 项目中如果用到了缓存,就会涉及到数据库与缓存的双写,由于这两个操作不是原子性的,在并发的场景下,容易产生数据库与缓存不一…

数据库实时同步技术解决方案_两个数据库同步_数据库双向同步方案

SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用于大容量数据库快速同步。 安装包下…

MySQL数据库主从双向同步

MySQL数据库主从双向同步 一 环境二 主从同步1.主服务器配置2.从服务器配置 二 双向同步三 其他相关参数配置四 后记 一 环境 由于开发需要,需要两台服务器进行负载均衡,两台服务器配置完全相同,均为windows server 2012,且MySQL数据库版本为…

容灾解决方案介绍

1.容灾需求 2.容灾挑战 3. 什么是HA 4.什么是容灾 5.HA和DR的关系 6.容灾和备份的区别 7.衡量容灾系统的主要指标 8.容灾系统的级别 9.灾备系统建设的国际标准 10.华为业务连续性灾备解决方案全景图 11.容灾备份解决方案框架 12.容灾设计模式-同步、异步相结合 13.主备容灾方…

数据库容灾方案

**数据库容灾方案** 场景一 “阵列硬盘坏了,数据库读写文件异常,系统停运啦!”场景二 “不小心执行了TRUNCATE操作,核心业务表被清空,系统关键功能无法使用!”场景三 “在硬件投入变化不大的情况下&#xf…

MySql数据库从库同步的延迟问题及解决方案

1)、MySQL数据库主从同步延迟原理mysql主从同步原理: 主库针对写操作,顺序写binlog,从库单线程去主库顺序读”写操作的binlog”,从库取到binlog在本地原样执行(随机写),来保证主从数据逻辑上一致…

数据同步解决方案-canal

1、canal简介 canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。 canal是应对阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。 阿里系公司开始逐步的尝试基于数据库的日志解析,获…

数据库灾备解决方案

文章目录 行业背景解决方案优势核心产品灾备设计及技术指标DBS冷备热备份同城容灾同城容灾——复制加高可用同城容灾——A-S同城容灾——A-A更多信息 行业背景 数据是企业重要的生产资料,关键数据的丢失可能会给企业致命一击,因为数据是计算机系统存在的…

【解决方案 三十一】Navicat数据库结构同步

最近在开发过程中遇到一个问题:刚经历了一个两个月的长迭代,导致测试库已经被改的面目全非了,最关键的是所有的变更语句都没有记录,这上线的时候怎么办啊,一百多张表呢,幸好组里的老程序猿说用过一个工具&a…

Redis与数据库数据同步解决方案

本文转自:http://3gods.com/2016/06/23/Redis-Sync-DB.html 部分图片来自:http://blog.csdn.net/stubborn_cow/article/details/50586990 数据库同步到Redis 我们大多倾向于使用这种方式,也就是将数据库中的变化同步到Redis,这种…

跨数据库同步方案汇总

Datax 一般比较适合于全量数据同步,对全量数据同步效率很高(任务可以拆分,并发同步,所以效率高),对于增量数据同步支持的不太好(可以依靠时间戳定时调度来实现,但是不能做到实时&…

唯一性约束(unique)

在字段类型后面加一个unique,表示这个字段的值是唯一的,不能够有相同的值出现。 给某一列添加unique 给两个字段加唯一性约束,不同的方式的约束范围不同 联合加约束时只有两个字段的值都是一样的才会出错 单独加约束时,只要有一个…

ORA-00001: 违反唯一约束条件 的解决办法

最近在做项目是测试的时候出现了这种错误:ORA-00001: 违反唯一约束条件 其实说白了这种错误就是 数据库的ID值,小于他的next number 由于表的ID是唯一的,所以用 select max(id) from test 查的该ID大于Sequences里面的开始ID,所以…

ORA-00001: 违反唯一约束条件 -- 解决方法

1、错误 Caused by: java.sql.BatchUpdateException:ORA-00001: 违反唯一约束条件 (SOLEX.SYS_C0012537) 2、分析 ①通过SYS_C0012537找到对应的表 select a.constraint_name,a.constraint_type,b.column_name,b.table_name from user_constraints a inner join user_cons_col…