汽车HiL测试:利用TS-GNSS模拟器掌握硬件性能的仿真艺术

一、汽车HiL测试的概念

硬件在环(Hardware-in-the-Loop,简称HiL)仿真测试,是模型基于设计(Model-Based Design,简称MBD)验证流程中的一个关键环节。该步骤至关重要,因为它整合了实际操作中将使用的全部硬件与软件资源。HiL测试通常位于现场试验之前,是模型在环(Model-in-the-Loop,简称MiL)、软件在环(Software-in-the-Loop,简称SiL)或处理器在环(Processor-in-the-Loop,简称PiL)测试之后的最终阶段。HiL仿真不仅能够针对单个被测设备(Device Under Test,简称DUT)进行精确测试,而且还能对由多个被测设备构成的复杂系统进行全面的测试与验证。

在整个测试流程中:

  • MiL(Model-in-the-Loop)模型在环:在PC上基于模型的测试,它的输出是经过验证的控制算法模型,其作用是验证控制算法模型是否准确地实现了功能需求。
  • SiL(Software-in-the-Loop)软件在环:将模型生成代码或者手工编写代码,编译成PC程序,在PC上的测试。它的输出是经过验证的嵌入式代码,其作用是在PC上验证代码实现的功能是否与模型一致。
  • PiL(Processor-in-the-Loop)处理器在环:将代码编译成目标系统程序,然后在PC上虚拟目标硬件环境,并进行测试。它的输出是经过验证的目标程序,其作用是在目标处理器上验证代码实现的功能是否与模型一致 。

HiL(Hardware-in-the-Loop)硬件在环仿真测试系统是采用实时处理器运行仿真模型来模拟受控对象(比如:汽车、飞机等设备)的运行状态,以此判断电控模块的性能。虽然这一系列的测试都有在环(in the loop)的意思,但是却不是全部的被测模块都带有闭环的。比如接收到某信号要用于车辆的车灯控制,这种情况下我们就不需要闭环,但是如果在自动驾驶的HiL测试中,想使用GNSS模拟器测试汽车运行是否正常,就需要把自动驾驶仪的信息返回到GNSS模拟器中形成闭环,再进行下一个轨迹的模拟。

在HiL测试中,一般根据它在环的深度分为几个层级:

  • ECU级:也可以称之为信号级,仅仅ECU软硬件采用实物,闭环回路的其他组成部分均采用虚拟仿真系统;
  • EPP级:也可以称之为驱动级,EPP是Electrical Power Package的缩写, ECU及执行机构采用实物,闭环回路的其他组成部分采用虚拟仿真系统;
  • System级:也可以称之为机械级,系统组件采用实物,闭环回路其他组成部分采用虚拟仿真系统;

总的来说,HiL测试系统主要由三个基本部分组成,分别是实时处理器、I/O接口和可视化的操作界面,其中实时处理器是整个HiL测试系统的核心部分。实时处理器运行场景,发送信号,被测电控模块收到后对受控对象做出相应的控制,以此判断电控模块的性能。通过I/O接口与被测的设备/模块连接,对被测系统进行全方面的、系统的测试,如下图:

二、HiL测试的意义

HiL仿真测试可以使得工程师了解硬件在现实世界中的性能,而无需将其带到户外测试:

  • 提高测试效率:用更短的时间内完成现实中可能需要驾驶数万公里才能完成的测试内容
  • 提供丰富的测试功能并实现测试平台的复用性,实现可复制可复用的测试流程
  • 规避车辆上路测试的法律法规与申请流程
  • 测试天气、环境等不同需求下的边缘与极端情况
  • 极大的节省了时间和经济成本
  • 仿真场景下安全性较高

三、GNSS仿真在HiL测试中的作用

在闭环体系结构中,仿真系统的延迟是一个关键参数。理想情况下,任何轨迹修改都应立即反映在GNSS接收器的RF输入上。

GNSS是汽车HiL测试的重要组成部分,为了准确安全地实现车辆定位与导航,现在的车辆都会使用多个传感器以及复合定位导航技术,因此需要进行传感器融合测试确保结果安全可靠。

GNSS 系统在传感器融合中发挥着至关重要的作用,GNSS 是一辆车上唯一可以提供绝对位置与绝对时间的传感器,且不受光照、地理位置、天气状况的影响。

GNSS接收机不是作为一个独立的设备进行测试,而是与其他模拟器、设备和传感器集成,存在两种类型的HiL架构。

  • 开环结构:在这种结构中,GNSS接收器(和一般的传感器)的输出不用于控制车辆的轨迹。因此,它是由用户强加的,不一定是确定性的,因为它可以实时更新。这可能是飞行模拟器的情况,其中轨迹是由用户现场驾驶并发送给GNSS模拟器的。
  • 闭环结构:在这种结构中,GNSS接收器(和一般的传感器)的输出被用于导航算法,该算法更新控制车辆的执行器。执行器的输出被用来更新发送到GNSS模拟器的车辆位置。在这种情况下,GNSS接收器计算出的位置对模拟轨迹有直接影响,因此对广播给GNSS接收器的射频信号也有影响。

在闭环体系结构中,仿真系统的延迟是一个关键参数。理想情况下,任何轨迹修改都应立即反映在GNSS接收器的RF输入上。


 

四、软件定义的GNSS模拟器

高性能GNSS模拟器具有灵活的软件定义平台和API,且支持所有的GNSS星座与波形,具有超高的精度,分辨率,以及动态性能,模拟迭代率可达1000 Hz,强大的软件定义实现通道数无限制。广泛应用于汽车HIL测试,导航芯片、消费电子、终端测试,航空航天模拟,以及干扰抵抗测试等领域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/922574.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++编程库与框架实战——sqlite3数据库

一,SQLite数据库简介 SQLite是可以实现类似于关系型数据库中各种操作的事务性SQL数据库引擎。 SQLite可以为应用程序提供存储于本地的嵌入式数据库,帮助应用程序实现轻量级的数据存储。 SQLite是一个库文件,并不是单独的进程,它可以静态或动态链接到C++应用程序中,然后…

STM32F10x 定时器

使用定时器实现:B5 E5的开关 添加相关的.h路径文件 添加相关的.c配置文件 led.h文件 用于声明LED函数 #ifndef __LED_H //没有定义__LED_H #define __LED_H //就定义__LED_H #define LED1_ON GPIO_ResetBits(GPIOB,GPIO_Pin_5) #defi…

PyQt6+pyqtgraph折线图绘制显示

1、实现效果 2、环境: 确认已经安装pyqtgraph的模块,如果没有安装,使用命令安装: pip install pyqtgraph 3、代码实现: 绘制折线函数: import sys import random from PySide6.QtWidgets import QAppl…

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名,运行此进程的用户名。PID: 进程ID(Process ID),每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

高新技术行业中的知识管理:关键性、挑战、策略及工具应用

知识管理的关键性 在瞬息万变的信息时代,知识已成为高新技术行业的核心竞争要素。知识管理,这一旨在高效组织、整合并应用企业内外部知识资源的管理策略,对于推动高新技术企业的持续创新与发展至关重要。它不仅能够激发研发团队的创造力&…

IDEA 2024安装指南(含安装包以及使用说明 cannot collect jvm options 问题 四)

汉化 setting 中选择插件 完成 安装出现问题 1.可能是因为之前下载过的idea,找到连接中 文件,卸载即可。

【MyBatis】全局配置文件—mybatis.xml 创建xml模板

文章目录 模板文件配置元素typeAliasessettings 模板文件 创建模板 按照顺序打开【File】–>【settings】–>【Editor】–>【File and Code Templates】&#xff08;或直接搜索&#xff09; <?xml version"1.0" encoding"UTF-8" ?> <…

uni-app 发布媒介功能(自由选择媒介类型的内容) 设计

1.首先明确需求 我想做一个可以选择媒介的内容&#xff0c;来进行发布媒介的功能 &#xff08;媒介包含&#xff1a;图片、文本、视频&#xff09; 2.原型设计 发布-编辑界面 通过点击下方的加号&#xff0c;可以自由选择添加的媒介类型 但是因为预览中无法看到视频的效果&…

【Go】-go中的锁机制

目录 一、锁的基础知识 1. 互斥量/互斥锁 2. CAS&#xff08;compare and swap&#xff09; 3. 自旋锁 4. 读写锁 5. 乐观锁 & 悲观锁 6. 死锁 二、go中锁机制 1. Mutex-互斥锁 2. RWMutex-读写锁 2.1 RWMutex流程概览 2.2 写锁饥饿问题 2.3. golang的读写锁源…

Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例

一、首先要下载谷歌驱动 1.&#xff08;打开谷歌浏览器 - 设置 - 关于谷歌&#xff0c;查看谷歌浏览器版本&#xff0c;否则不对应无法调用&#xff0c;会提示&#xff1a;selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This versio…

RCVS:A Unifed Registration and FusionFramework for Video Streams 译文

摘要:红外与可见光的跨模态配准与融合可以生成更全面的目标和场景信息表示。以前的框架主要关注于解决模态差异以及保留不同模态信息对不同静态图像对之间配准和融合任务性能的影响。然而&#xff0c;这些框架忽略了在现实世界设备上的实际部署&#xff0c;特别是在视频流的背景…

JDBC编程---Java

目录 一、数据库编程的前置 二、Java的数据库编程----JDBC 1.概念 2.JDBC编程的优点 三.导入MySQL驱动包 四、JDBC编程的实战 1.创造数据源&#xff0c;并设置数据库所在的位置&#xff0c;三条固定写法 2.建立和数据库服务器之间的连接&#xff0c;连接好了后&#xff…

Python 抓取笑话内容并存入 CSV

在互联网上&#xff0c;有许多有趣的内容等待我们去挖掘和收集。今天&#xff0c;我们就来深入了解一段 Python 代码&#xff0c;它能够帮助我们从指定网站抓取笑话内容&#xff0c;并将其整理保存为 CSV 文件&#xff0c;方便后续查看和分析。 结果展示&#xff08;文末附完整…

Redis-09 SpringBoot集成Redis

Jedis 和 lettuce 基本已经过时 集成RedisTemplate 单机 1.建 Modul 2.改pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instanc…

Linux:自定义Shell

本文旨在通过自己完成一个简单的Shell来帮助理解命令行Shell这个程序。 目录 一、输出“提示” 二、获取输入 三、切割字符串 四、执行指令 1.子进程替换 2.内建指令 一、输出“提示” 这个项目基于虚拟机Ubuntu22.04.5实现。 打开终端界面如图所示。 其中。 之前&#x…

夜天之书 #104 开源软件有断供的风险吗?

近期&#xff0c;Linux 上游因为受美国出口管制条例的影响&#xff0c;将移除部分开发者的 MAINTAINER 权限&#xff0c;引起了新一轮对开源依赖的重新评估。 关于其中开源精神和社群治理的讨论&#xff0c;卫 Sir 的两篇文章已经讨论得比较清楚&#xff08;见尾注&#xff09;…

tensorforce(dqn框架)安装

win7 64位操作系统 python版本&#xff1a;3.8.10 pip install tensorflow 默认的tensorflow的版本是2.31.0&#xff0c;安装tensorforce后自动升级到3.6.0 tensorflow:升级到3.6.0 keras&#xff1a;升级到3.6.0 tensorforce安装 pip3 install tensorforce protobuf 需要降到…

STM32抢占优先级不生效

板类型&#xff1a;STM32F103精英开发板代码背景&#xff1a; 设置了USART1中断和KEY_UP中断(使用EXTI0外部中断)两个中断的优先级分组都设为2&#xff08;2bit抢占优先级&#xff0c;2bit响应优先级)EXTI0中断抢占优先级设为3&#xff0c; 响应优先级设为3USART1抢占优先级设…

4.1_未授权漏洞

未授权漏洞 成因&#xff1a;配置错误&#xff0c;默认口令&#xff08;弱口令&#xff09;&#xff0c;接口配置不当&#xff1b;未授权漏洞 漏洞利用方式 Redis 未授权访问漏洞 Getshell方式 写入webshell&#xff1b; 连接目标redis&#xff1a;redis-cli -h 192.168.7…

快速识别模型:simple_ocr,部署教程

快速识别图片中的英文、标点符号、数学符号、Emoji, 模型会输出图片中文字行的坐标位置、最低得分、识别结果。当前服务用到的模型&#xff1a;检测模型、数字识别、英文符号识别。 一、部署流程 1.更新基础环境 apt update2.安装miniconda wget https://repo.anaconda.com/…