自动驾驶仿真 软件在环测试
什么是SIL (what is software in the loop)?
运行模型的软件在环 (SIL) 仿真。仿真为顶层模型或模型的一部分生成源代码。SIL 仿真在计算机上编译并运行生成的代码。仿真在开发计算机上交叉编译源代码,然后在目标处理器或等效的指令集仿真器上下载并运行目标代码。
- 跟自动驾驶测试有什么关系?(what about of automatic derive)?
因为自动驾驶系统也需要测试,
- 为什么要自动驾驶系统测试?
因为有国家标准:工业和信息化部、公安部、交通运输部联合印发的《智能网联汽车道路测试管理规范(试行)》明确要求,智能网联汽车在申请上公开道路测试之前,需由第三方检测机构进行封闭道路、封闭场地测试。
美国智能车辆和公路系统(Intelligent Vehicle andHighway System,IVHS)的建立(后更名为ITS)。
欧洲共同体委员会(Commission ofEuropean Communities,CEC)。
二、然后嘞?你又要问为什么要有仿真测试?
试场景丰富、计算速度快、测试效率高、资源消耗低、可重复性好、可嵌入汽车开发的各个环节等优势。通过仿真测试,可以在实际路面行驶之前对车辆进行全面、安全的测试,从而提高自动驾驶系统的安全性和可靠性,并减少实际测试的风险和成本,加速自动驾驶技术的发展和应用。
总的来说:嵌入式在各个领域都有应用,仿真测试具有三大特性:安全性、丰富性、经济性
- 再然后嘞?你又会问自动驾驶仿真都有什么测试?
自动驾驶测试评价体系的组成:仿真测试、场地测试和道路测试三大测试方法
世界汽车组织(OICA)提出的"多支柱法"。
- 有什么区别?
自己看图。
- 自动驾驶仿真有什么技术优点?
自动驾驶仿真有:可量化、可复现、效率高。
智能驾驶仿真测试指通过计算机仿真技术,建立静态环境与动态交通场景的数学模型,让智能驾驶汽车在虚拟交通场景中进行驾驶测试。
仿真测试可满足测试场景可量化(场景要素特征可量化)、
可复现(同一场景可在软件中重复)和高保真(在一定程度上呈现真实世界)的要求,具有场景覆盖率高、场景可定制和可控的特点。
仿真测试还具有效率高、成本低和安全性高的优点,可多核心并行测试,极大提高测试速度,缩短测试周期。
- 再然后嘞?你又会问自动驾驶仿真都有什么测试方法?
仿真测试可应用于智能驾驶系统的概念设计、模型开发、软件开发、硬件开发和整车开发的各个阶段,从而大幅缩短开发和测试评价周期,提高测试中的可重复性并降低风险,同时便于数据采集。
根据不同阶段,可将仿真测试方法分为MIL、SIL、HIL、驾驶人在环(Driver In Loop,DIL)和整车在环(VehicleIn Loop,VIL)。
- 纯软件仿真的方式有什么?
7.1模型在环测试
模型在环(MIL)模型在环是较节省成本的嵌入式系统测试方式,模型驱动的开发及仿真环境有MATLAB/Simulink、ASCET等。模型在环测试主要应用于系统开发的初期阶段及建模阶段,没有硬件参与系统测试,主要用于验证算法的正确性。通过实时计算机仿真实现了虚拟部分。
根据应用程序的不同,这种测试方法有许多优点:
①仅对动力学未知的关键部件进行物理测试,降低了物理测试仪器的成本和复杂性;
②在系统设计的初期就可开展测试工作;
③有时很难在物理上创造的使用条件,例如实际环境或空气动力,可用计算机模型准确模拟;④模拟系统的特性可改变,比改变物理组件更方便。
7.2软件在环测试
软件在环(SIL)软件在环是一种等效性测试,测试的目的是验证代码与控制模型在功能上是否完全一致。其基本原则一般是使用与MIL完全相同的测试用例输入,将MIL的测试输出与SIL的测试输出进行对比,考察二者的偏差是否在可接受范围内。
通常将Simulink中开发的模型算法自动生成为C代码。但由于代码自动生成工具本身的原因或代码生成工具没有正确设置或其他未知原因,自动生成代码过程可能引入一些错误。因此需要验证自动生成的代码与算法模型的一致性,这就是SIL测试。SIL测试使用与MIL相同的测试用例,查看对相同的测试用例其输出是否与MIL测试一致。为保证测试的高效性,有时甚至不接入被控对象模型,而是对算法模型和生成代码进行相同的输入,查看输出是否一致。
- 简单来讲SIL是什么?
8.1 SIL(Software-in-the-Loop)自动驾驶仿真是通过将自动驾驶的控制软件与虚拟仿真平台结合,实现自动驾驶系统的软件功能测试和验证的一种方法。SIL仿真通过对自动驾驶系统的各种算法(如路径规划、决策控制、感知等)进行模拟,允许在不依赖硬件的情况下评估软件性能、稳定性和安全性。其核心目标是减少开发时间、降低成本并提高系统可靠性。
8.2 通过 SIL 仿真,
测试您的模型和生成的代码在数值上是否相等。
观察代码覆盖率。
运行代码执行探查。
- SIL 仿真的工作原理(以Simulink为例子)
在 SIL 仿真,代码是为顶层模型或模型的一部分生成的。对于 SIL,此代码针对开发计算机编译并在其上执行。
通过通信通道, 在仿真的每个采样间隔内向您的计算机或目标处理器上的代码发送激励信号。
对于顶层模型, 使用来自基础工作区或模型工作区的激励信号。
如果指定模型的一部分在 SIL 下进行仿真,则模型的一部分将保留在 Simulink 中,并且不会为模型的此保留部分生成代码。通常,需要配置模型的此部分来为在硬件上执行的软件提供测试向量。模型的此部分可以表示算法的其他部分或算法运行的环境。
当计算机或目标处理器接收到来自 Simulink 的信号时,处理器执行 SIL 算法,执行时间为一个采样步长。SIL 算法通过通信通道将在此步长内计算的输出信号返回到 Simulink。仿真的一个采样周期完成后,Simulink 进入下一个采样间隔。此过程不断重复,仿真持续进行。SIL 仿真不以实时方式运行。在每个采样周期内,Simulink 和目标代码会交换 I/O 数据。
|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| 指定方式: 顶层模型仿真模式 Model 模块的 Simulation mode 参数 | 在开发计算机上测试生成的源代码的行为。仿真不测试针对目标硬件编译的代码,因为代码是针对开发计算机编译的(编译器和处理器架构与目标不同)。 生成的生产代码作为独立进程在开发计算机上编译和执行,独立于软件进程。 执行采用主机/主机和非实时方式。 |
| 使用从子系统创建的 SIL 模块。 | 仿真通过 S-Function 运行编译后的目标代码。S-Function 与作为独立应用程序在开发计算机上执行的目标代码进行通信。SIL 模块执行独立于软件进程。 执行采用主机/主机和非实时方式。 |
十、 导入的数据和其他的生成代码
SIL 仿真不会修改从模型生成的代码。
10.1如果使用导入的数据,SIL 仿真会生成支持 SIL 目标应用程序编译和链接所需的其他代码。生成的其他代码对应于在模型中指定的接口。
10.2对于导入的数据,SIL仿真什么时候定义存储,以及什么时候必须定义存储。
SIL 仿真要为其生成其他代码的接口
10.3 SIL 仿真中的导入数据
在 SIL 仿真中,可以使用信号、参数和数据存储,它们使用导入的数据定义来指定存储类。仿真会为与以下各项相关联的导入数据定义存储:
位于组件根级的信号(在 I/O 边界上)。
基础工作区或数据字典中的参数。对于模型工作区中的参数:
顶层模型的 SIL模块仿真定义存储。
Model 模块 SIL仿真不定义存储。您必须定义存储并指定特定值匹配的初始值。
10.4全局数据存储。
SIL 仿真不会为其他导入的数据定义存储。例如,仿真不会为与以下项目相关联的导入的数据定义存储:
内部信号(不在 I/O 边界上)。请注意,如果内部信号的数据位于通过使用指针导入的结构体中,则仿真会定义存储。
- SIL自动驾驶仿真如何实现仿真模拟?
一、SIL自动驾驶仿真测试的实现步骤
集成自动驾驶软件与仿真平台
自动驾驶控制算法(如路径规划、决策控制、感知处理等)以软件模型的形式运行,并与仿真平台(如CarSim、PreScan、VISSIM等)进行连接。
仿真平台模拟虚拟车辆的物理行为、传感器输入和外部环境(如交通、道路、天气等)。
软件模型通过MATLAB/Simulink、C++等平台开发,并通过标准接口(如CAN、Ethernet、UDP等)与仿真平台进行数据交换。
虚拟传感器数据生成与输入
仿真平台模拟自动驾驶系统中所用的各种传感器(如激光雷达、摄像头、雷达、GPS、IMU等),并生成虚拟数据传递给控制软件。
虚拟传感器数据为自动驾驶系统提供感知、决策和控制的输入。
控制指令输出与行为模拟
自动驾驶软件根据仿真环境中的感知数据生成控制指令,如加速、刹车、转向等。
控制指令反馈给仿真平台,模拟虚拟车辆的行为,并实时更新车辆状态。
实时仿真与数据交换
SIL测试需要保证仿真平台与自动驾驶控制软件之间的数据交换和处理是实时的。
仿真平台使用高性能计算资源和实时操作系统(RTOS)来满足实时性需求。
二、SIL自动驾驶仿真测试的功能模块组成
SIL自动驾驶仿真系统通常包括以下几个关键模块:
环境模拟模块
道路网络模拟:生成各种道路条件,并考虑道路标志、交通信号等。
交通参与者模拟:模拟其他车辆、行人等,设定不同的交通流量和驾驶行为。
天气与光照模拟:模拟不同的天气和光照条件,对自动驾驶系统的感知和决策能力进行测试。
传感器模拟模块
摄像头仿真:模拟视觉感知输入,如车道线检测、交通标志识别等。
激光雷达(LIDAR)仿真:生成虚拟点云数据,模拟障碍物检测。
雷达仿真:模拟雷达信号的反射与检测,用于测距与障碍物感知。
IMU/GPS 仿真:提供虚拟的车辆定位、速度和方向信息。
自动驾驶控制与决策模块
路径规划模块:基于地图数据和实时交通状况规划最优路径。
决策模块:根据环境和传感器输入进行决策,生成车辆行为。
运动控制模块:根据决策模块的输出生成具体的控制指令,控制虚拟车辆的运动。
仿真平台接口模块
实时通信接口:通过标准化接口协议与自动驾驶控制软件进行数据交换。
传感器数据接口:传递虚拟传感器数据给自动驾驶控制软件。
控制输出接口:发送控制指令回仿真平台,控制虚拟车辆的行为。
数据记录与分析模块
实时数据记录:记录仿真过程中的传感器数据、车辆状态、控制指令等。
性能评估工具:评估自动驾驶系统的性能,包括响应时间、路径规划精度等。
测试用例与报告生成:自动化生成测试报告,评估系统在不同场景下的表现。
三、SIL自动驾驶仿真测试的核心功能组成
SIL仿真测试的核心功能可以概括为以下几个方面:
控制算法验证:测试自动驾驶软件中的核心算法,验证其在不同仿真场景下的表现。
感知系统验证:通过虚拟传感器模拟,测试感知算法对不同场景的响应能力。
安全性测试:验证自动驾驶系统在复杂、危险环境下的表现。
多场景测试与回归测试:在不同的交通场景进行广泛测试,确保系统的稳定性和可靠性。
传感器模拟与多源数据融合测试:测试传感器数据融合算法的准确性和鲁棒性。
实时性与控制反馈测试:测试自动驾驶系统的实时反应能力,确保系统对动态环境能够作出快速响应。
四、SIL自动驾驶仿真测试对ECU的测试
在SIL测试中,自动驾驶ECU(电子控制单元)是虚拟化的软件,直接与仿真平台连接进行交互。对ECU的测试主要包括:
软件功能验证:测试ECU中的控制软件在不同交通和环境条件下的表现。
传感器数据处理能力:验证ECU对虚拟传感器的数据处理能力。
控制指令准确性:测试ECU生成的控制指令是否准确、稳定。
算法响应时间与稳定性:测试ECU在处理不同输入数据时的响应时间,确保算法能够实时响应并保持稳定性。
通过SIL自动驾驶仿真测试,可以全面、高效地验证自动驾驶系统的性能,为自动驾驶技术的研发和应用提供有力支持。
- 自动驾驶仿真技术
车辆仿真模拟技术原理与架构设计文档
一、引言
车辆仿真模拟技术是一种通过计算机模型预测和分析车辆动态行为的方法。该技术广泛应用于车辆设计、性能优化、安全性评估以及控制系统开发等领域。本文旨在概述车辆仿真模拟技术的核心原理与架构设计,为相关领域的专业人士提供参考。
二、车辆仿真模拟技术原理
车辆仿真模拟技术主要基于物理建模和数值计算,通过模拟车辆在不同驾驶工况下的动态表现,实现对车辆性能的全面分析。
多体动力学原理:
车辆被视为由多个刚性或柔性体构成的多体系统,采用多体动力学模型进行建模和求解。
通过拉格朗日方程或牛顿-欧拉方程描述系统中各个物体的运动关系和相互作用力。
车辆动力学方程:
涉及平移和转动的多自由度系统,包括横向和纵向动力学方程、转向力学和操控性模型、悬挂系统模型等。
这些方程描述了车辆在行驶过程中的加速、制动、转向以及悬挂系统的动态响应等。
轮胎模型:
轮胎是车辆与地面之间的唯一接触点,轮胎模型的准确性对仿真结果至关重要。
常见的轮胎模型包括Pacejka轮胎模型和Magic Formula轮胎模型,用于描述轮胎的力学特性。
控制系统模型:
现代车辆配备各种电子控制系统,如ABS、ESC、驾驶辅助系统等。
控制系统模型通过传感器、执行器和控制算法来影响车辆的动态行为。
道路与环境模型:
路面摩擦系数、坡度、弯道曲率等环境因素会影响车辆的动态响应。
道路与环境模型用于模拟不同的驾驶条件,包括路面类型、天气条件等。
三、车辆仿真模拟架构设计
车辆仿真模拟架构需要集成多个子系统,以确保仿真过程的高效性、准确性和可扩展性。
模型构建与参数化模块:
几何建模:构建车辆及其各个部件的几何模型。
动力学建模:建立车辆的动力学模型,包括悬挂系统、车轮、车身的自由度等。
控制系统建模:包括动力系统、转向系统、刹车系统等。
仿真计算与求解模块:
数值求解器:用于求解车辆动力学模型的方程。
实时仿真支持:在高要求的应用中,如控制系统开发,需要进行实时仿真。
道路与环境模拟模块:
道路模型:包括不同类型的道路和路面条件。
环境因素:如风速、温度、降水、光照等,这些因素可能影响车辆的操控和稳定性。
输入/输出与数据分析模块:
输入:定义测试场景和驾驶行为。
输出:仿真输出包括车辆的速度、加速度、操控力、轮胎侧偏角等关键参数。
数据可视化与分析:通过可视化工具对仿真结果进行分析。
集成与优化模块:
多学科优化(MDO):将仿真结果与设计目标相结合,进行多目标优化。
敏感性分析:分析输入参数对仿真结果的敏感性。
测试与验证模块:
将仿真平台与硬件进行集成,进行硬件在环(HIL)仿真,验证仿真模型的准确性。
四、常用车辆仿真软件与工具
Adams Car:用于多体动力学仿真,广泛应用于车辆动力学、操控性、舒适性等性能评估。
CarSim:专业的车辆动态仿真软件,适用于车辆操控性、稳定性、舒适性等方面的测试。
MATLAB/Simulink:常用于控制系统、动力学建模和优化分析。
Simpack:用于车辆多体动力学仿真,适合高精度建模和复杂系统分析。
LS-DYNA:用于碰撞仿真和结构分析,广泛应用于安全性分析。