3分钟带您快速了解HIL测试及其架构
什么是HIL测试
硬件在环(HIL)仿真是一种用于测试导航系统的技术,其中测试前并不知道车辆轨迹。在这种情况下,车辆轨迹被实时馈送到GNSS模拟器。HIL可用于复杂实时系统的开发和测试,如卫星控制系统、军事战术导弹、飞机飞行控制和汽车系统。
而HIL测试是通常是在现场测试之前以及在环模型(MIL)、软件在环(SIL)或处理器在环(PIL)之后的一步。HIL测试至关重要,它涉及在操作中使用的所有硬件和软件。在整个测试流程中:
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接口与被测的ECU连接,对被测系统进行全方面的、系统的测试。

HIL测试系统具有很多优势,如安全性较高。汽车HIL中,在实车测试之前,以HIL的形式先对控制器做一个全面的功能测试。因为该被控对象是虚拟的,所以HIL比实车测试更加安全高效,而且可以测试一些实车测试中不容易实现的极端情况。此外,HIL测试系统具有丰富的测试功能,以及可以实现测试平台的复用性等,极大的节省了时间和经济成本。
基本架构
在HIL测试中,GNSS接收器通常不作为独立设备进行测试,而是与其他仿真器、设备和传感器进行集成,根据HIL架构类比可得到测试系统基本架构。

GNSS模拟器的软件相当于操作界面,而由于虹科Safran GNSS模拟器特殊的软件定义架构,它不仅仅是用于提供测试命令、可视化的界面以及性能分析及报告整理等功能的操作界面,还是创建测试场景、信号模拟、生成IQ文件的驱动程序,为GNSS模拟器的硬件提供IQ数据。
GNSS模拟器的硬件部分,相当于HIL中的实时处理器,它接受IQ数据,仿真出模拟的GNSS信号。大多数能获取位置信息的设备都内置了GNSS接收模块,被测的ECU模块会像处理真实信号那样处理GNSS模拟器发送的信号,然后作用于仿真模型。
在定位和导航系统的验证中,有两种类型的 HIL 架构:开环HIL和闭环HIL。
开环HIL架构:

GNSS模拟器模拟生成HIL中需要的信号并作用于接收机,同时接收机的信息也会以NMEA文件的形式回传到GNSS模拟器中,即可以得到接收的信号和模拟信号的偏差。在这种架构中,GNSS接收机(和一般传感器)的输出不用于控制车辆的轨迹,它是由用户强加的,不一定具有确定性。
闭环HIL架构:
包括HIL模拟器、GNSS模拟器、GNSS接收机以及控制部分:

在这种架构中,GNSS接收机(以及一般的传感器)的输出用于导航算法,该算法更新控制车辆的执行器,执行器的输出发送车辆位置到GNSS模拟器,GNSS模拟器根据位置信息进行信号模拟并作用于GNSS接收机,形成闭环。但是要注意,在这种情况下,GNSS接收机计算的位置直接影响模拟轨迹,从而影响广播到GNSS接收器的RF信号。
测试方案
在闭环架构中,软件定义架构的GNSS模拟器提出了自动驾驶的HIL测试方案。自动驾驶中车辆的真实位置是随着场景的进展而确定并实时反馈给模拟器。

首先实时处理器部分和架构一样,GNSS模拟器和HIL模拟器都属于实时处理器部分,模拟器分别把模拟器信号发送给相应的传感器和接收机,经过处理计算后,再控制调节器。调节器的信息又反馈给模拟器进行计算模拟。GNSS模拟器支持通过位置、速度、加速度和方向命令集成6自由度轨迹的固定延迟流,来将实际GNSS射频信号集成到HIL系统中,车辆的方向及其变化以及卫星功率水平也可以通过实时命令进行控制。支持在任何地点使用,可以模拟所有星座、所有频率的所有可见卫星,具有1000Hz的迭代率和超高的动态,随时随地创建并更新场景。高级干扰和欺骗功能允许用户同时模拟多种威胁,自动确定每个信号之间的信号动态,节省时间成本,并能够使用Python、C#和C++的开源客户端库构建复杂、复杂和可重复的场景。
在一个用户界面中实现所有功能
通过直观的UI和自动化轻松配置
支持所有主要的全球星座和频率
多种API(Python、C#、C++、LabVIEW)
高级信号定制和场景创建
实时修改变量和参数
无需额外硬件即可集成干扰
IQ文件生成和回放
目前,自动驾驶HIL测试中为了还原更加真实的场景,要求GNSS模拟器和其它传感模拟器发送到被测系统的信号同时到达,并且在其它模拟器分析计算好真实位置信息发送到GNSS模拟器后,需要能够及时的进行GNSS信号的模拟,更好的保证它的实时性。这两个要求让自动驾驶HIL测试面临着两个问题,那就是同步和时延的问题。
对于同步,需要考虑:
如何处理HIL测试的同步化和时钟系统?
HIL模拟器和虹科Safran Skydel GNSS模拟器能否使用一个共同的时钟源?
对于时延:
从HIL模拟器的输入(自动驾驶仪命令)和GNSS模拟器的输出(GNSS射频信号)如何使他们的延迟最小化,以保证模拟的实时性呢?
在下期文章中我们将继续讨论如何解决这两个问题。
相关文章:
3分钟带您快速了解HIL测试及其架构
什么是HIL测试硬件在环(HIL)仿真是一种用于测试导航系统的技术,其中测试前并不知道车辆轨迹。在这种情况下,车辆轨迹被实时馈送到GNSS模拟器。HIL可用于复杂实时系统的开发和测试,如卫星控制系统、军事战术导弹、飞机飞…...
华为认证含金量如何?
一本证书是否有用,还要看它是否被市场所认可。 我们说华为认证HCIP有用,很大一部分还取决于它极高的适用性和权威性。华为是国内最大的生产销售通信设备的民营通信科技公司。 自2013年起,国家对网络安全极度重视,相继把国外的网…...
刷题记录:牛客NC54586小翔和泰拉瑞亚
传送门:牛客 题目描述: 小翔爱玩泰拉瑞亚 。 一天,他碰到了一幅地图。这幅地图可以分为n列,第i列的高度为Hi,他认为这个地图不好看,决定对它进行改造。 小翔又学会了m个魔法,实施第i个魔法可以使地图的第Li列到第Ri列…...
面试个3年自动化测试,测试水平一言难尽。。。。
公司前段缺人,也面了不少测试,结果竟然没有一个合适的。 一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。 看简历很多都是3年工作经验,但…...
C++面向对象(下)
文章目录前言1.再谈构造函数1.初始化列表2.explicit关键字2. static成员1.概念3.友元1.概念2.友元函数3.友元类4. 内部类5.匿名对象6.编译器优化7.总结前言 本文是主要是将之前关于C面向对象中的一些没有归纳到的零星知识点进行补充,同时对C中的面向对象简单收个尾…...
面试一位软件测试6年工作者:一年经验掰成六年来用....
在众多面试中,对于那个工作了6年的面试者,我印象很深刻,因为最开始拿到简历的时候,我一摸:"这简历,好厚啊!"再一看,工作6年。 于是我去找了我的领导,我说:“这人我应该没…...
Java8 新特性--Optional
Optional是什么 java.util.Optional Jdk8提供Optional,一个可以包含null值的容器对象,可以用来代替xx ! null的判断。 Optional常用方法 of public static <T> Optional<T> of(T value) {return new Optional<>(value); }为value…...
Pytorch GPU版本简明下载安装教程
1.根据自己的显卡型号下载显卡驱动并安装。这一步会更新你的显卡驱动,也可忽略第1步,如果第2步出现问题,返回执行第1步。 点击这里下载英伟达显卡驱动 2.安装完成后,wincmd打开命令行,输入nvidia-smi,查看…...
【C++】map和set的封装
文章目录一、前情回顾二、简化源码三、仿函数四、迭代器五、set的实现六、map的实现七、红黑树代码一、前情回顾 set 参数只有 key,但是map除了key还有value。我们还是需要KV模型的红黑树的: #pragma once #include <iostream> #include <ass…...
互融云金融控股集团管理平台系统搭建
金融控股公司是指对两个或两个以上不同类型金融机构拥有实质控制权,自身仅开展股权投资管理、不直接从事商业性经营活动的有限责任公司或者股份有限公司。 金融控股公司是金融业实现综合经营的一种组织形式,也是一种追求资本投资最优化、资本利润最大化…...
Git复习
1. 引言 现在要用到Git,复习一下关于Git的指令,知识摘自《Pro Git》 2. 起步 git和其他版本控制软件最大的差别在于git是直接记录某个版本的快照,而不是逐渐地比较差异。 安装: sudo apt install git-all设置用户信息: git c…...
WebGPU学习(2)---使用VertexBuffer(顶点缓冲区)
在本文中,我们使用 VertexBuffer 绘制一个矩形。示例地址 1.准备顶点数据 首先,我们准备好顶点数据。定义顶点数据有多种方法,这次我们将在 TypeScript 代码中将其定义为 Float32Array 类型的数据。 const quadVertexSize 4 * 8; // 一个顶…...
【C++之容器篇】AVL树的底层原理和使用
目录前言一、AVL树二、AVL树的底层实现1. 结点类型的定义2. AVL树的定义3. 查找函数4. 插入函数(重难点)三、判断平衡树的方法前言 AVL树其实是在搜索树的基础上加上一些限制因素,从而使搜索树的结构保持相对平衡,通过前面我们对二叉搜索树的学习&#x…...
从交换机安全配置看常见局域网攻击
前言 构建零信任网络,自然离不开网络准入(NAC),这就涉及到交换机的一些安全测试,于是有了此文《从交换机安全配置看常见局域网攻击》。 交换机安全配置 如本文标题所说从交换机安全配置看常见的局域网攻击,那么下面提到的各种攻…...
工具篇3.5世界热力图
一、定义 世界热力图是一种地图形式,它使用颜色的变化来显示世界各个地区的某种指标(如 GDP、人口、气候等)的分布和密度。通常,世界热力图会使用不同的颜色来表示数据的变化,例如使用蓝色表示低值,红色表…...
2023-02-20 leetcode-insertionSortList
摘要: 记录leetcode-insertionSortList的反思 要求: https://leetcode.cn/problems/insertion-sort-list/ Given the head of a singly linked list, sort the list using insertion sort, and return the sorted lists head. The steps of the insertion sort algorithm: In…...
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
环形链表排列硬币合并两个有序数组(没错,出现过一次的LeetCode合并数组又双叒叕出现了!)经典算法题java解法 目录1 环形链表题目描述解题思路与代码解法一:哈希表解法二:双指针2 排列硬币题目描述解题思路与…...
网络编程学习一
1、初识网络编程2、网络编程三要素3、三要素(IP)4、IPV4的一些小细节5、Inetaddress类的使用package com.leitao.demo.network;import java.net.InetAddress; import java.net.UnknownHostException;/*** Description: TODO* Author LeiTao* Date 2023/2…...
Javascript 立即执行函数
IIFE,一般称为立即执行函数。你可能会问我,*“嘿!我知道正常的函数表达式是什么样子的,但是 IIFE 到底是什么?”。*好吧,这正是我今天要在本文中回答的问题。 函数表达式 在了解立即调用函数表达式之前,让…...
基于Django和vue的微博用户情感分析系统
完整代码:https://download.csdn.net/download/weixin_55771290/87471350概述这里简单说明一下项目下下来直接跑起的方法。前提先搞好python环境和vue环境,保证你有一个账户密码连上数据库mysql。1、pip install requirements.txt 安装python包2、修改mysql数据库的…...
Qwen-Image-2512-ComfyUI入门指南:从安装到生成第一张海报
Qwen-Image-2512-ComfyUI入门指南:从安装到生成第一张海报 1. 快速部署与启动 1.1 硬件准备与环境搭建 Qwen-Image-2512-ComfyUI作为阿里开源的图片生成模型最新版本,对硬件要求相对友好。以下是部署前的准备工作: 显卡要求:N…...
3步破解QQ音乐加密限制:qmcdump工具全场景应用指南
3步破解QQ音乐加密限制:qmcdump工具全场景应用指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 一、解密…...
解决VSCode配置gcc编译环境中的常见问题:以MinGW安装失败为例
解决VSCode配置gcc编译环境中的常见问题:以MinGW安装失败为例 在开发C/C项目时,VSCode配合gcc编译器是一个轻量高效的组合方案。但许多开发者在配置过程中,特别是在Windows环境下安装MinGW时,常常会遇到各种"拦路虎"。…...
SCH1633-D01 | 汽车6DoF传感器 |无人机惯性装置
SCH1633-D01 村田Murata 6DoF陀螺仪加速度传感器一体型 汽车用SCH1600传感器系列通过冗余设计选项和内置可调双输出通道为资深客户提供更大的灵活性。300/s的角速率测量范围8g的加速度测量范围冗余数字加速度计通道,动态范围高至26g陀螺仪零偏不稳定性低至0.5/h&am…...
Picocli错误处理终极指南:7个技巧构建健壮命令行应用
Picocli错误处理终极指南:7个技巧构建健壮命令行应用 【免费下载链接】picocli Picocli is a modern framework for building powerful, user-friendly, GraalVM-enabled command line apps with ease. It supports colors, autocompletion, subcommands, and more.…...
Python自动化脚本:高效爬取Bio-ORACLE海洋环境数据
1. 为什么需要自动化爬取Bio-ORACLE数据 作为一名长期从事海洋生态研究的科研狗,我深知获取高质量环境数据的痛苦。Bio-ORACLE作为全球最权威的海洋环境数据库,每次手动下载数据时都要经历这样的折磨:在官网反复点击下载按钮、等待邮件确认链…...
OpenClaw配置备份指南:gemma-3-12b-it模型迁移与快速恢复
OpenClaw配置备份指南:gemma-3-12b-it模型迁移与快速恢复 1. 为什么需要备份OpenClaw配置? 上周我的主力开发机突然硬盘故障,导致精心调校的OpenClaw配置全部丢失。整整两天时间,我都在重新配置模型参数、飞书通道和自定义技能—…...
大创管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
摘要 随着高等教育改革的不断深入,大学生创新创业训练计划(简称“大创”)已成为培养创新型人才的重要途径。传统的大创项目管理多依赖手工操作或简单的电子表格,存在效率低下、数据易丢失、协作困难等问题。为提升大创项目管理的科…...
别再死记硬背了!用Codesys可视化玩转按钮和指示灯:5个工业场景实战案例拆解(含配方管理思路)
Codesys可视化实战:5个工业场景下的按钮与指示灯高阶应用 在工业自动化领域,人机界面(HMI)的设计直接影响操作效率和系统可靠性。传统PLC编程往往过于关注功能实现而忽视交互体验,导致许多工业现场的操作面板充斥着杂乱无章的按钮和难以理解的…...
智能学习伙伴:OpenClaw+Qwen3.5-9B构建个性化背单词系统
智能学习伙伴:OpenClawQwen3.5-9B构建个性化背单词系统 1. 为什么需要AI驱动的背单词系统 背单词这件事我坚持了十几年,从纸质单词本到各类APP,始终被两个问题困扰:一是记忆曲线难以严格执行,二是静态词库缺乏语境适…...
