当前位置: 首页 > news >正文

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&#xff0c;一个可以包含null值的容器对象&#xff0c;可以用来代替xx ! null的判断。 Optional常用方法 of public static <T> Optional<T> of(T value) {return new Optional<>(value); }为value…...

Pytorch GPU版本简明下载安装教程

1.根据自己的显卡型号下载显卡驱动并安装。这一步会更新你的显卡驱动&#xff0c;也可忽略第1步&#xff0c;如果第2步出现问题&#xff0c;返回执行第1步。 点击这里下载英伟达显卡驱动 2.安装完成后&#xff0c;wincmd打开命令行&#xff0c;输入nvidia-smi&#xff0c;查看…...

【C++】map和set的封装

文章目录一、前情回顾二、简化源码三、仿函数四、迭代器五、set的实现六、map的实现七、红黑树代码一、前情回顾 set 参数只有 key&#xff0c;但是map除了key还有value。我们还是需要KV模型的红黑树的&#xff1a; #pragma once #include <iostream> #include <ass…...

互融云金融控股集团管理平台系统搭建

金融控股公司是指对两个或两个以上不同类型金融机构拥有实质控制权&#xff0c;自身仅开展股权投资管理、不直接从事商业性经营活动的有限责任公司或者股份有限公司。 金融控股公司是金融业实现综合经营的一种组织形式&#xff0c;也是一种追求资本投资最优化、资本利润最大化…...

Git复习

1. 引言 现在要用到Git&#xff0c;复习一下关于Git的指令&#xff0c;知识摘自《Pro Git》 2. 起步 git和其他版本控制软件最大的差别在于git是直接记录某个版本的快照&#xff0c;而不是逐渐地比较差异。 安装: sudo apt install git-all设置用户信息&#xff1a; git c…...

WebGPU学习(2)---使用VertexBuffer(顶点缓冲区)

在本文中&#xff0c;我们使用 VertexBuffer 绘制一个矩形。示例地址 1.准备顶点数据 首先&#xff0c;我们准备好顶点数据。定义顶点数据有多种方法&#xff0c;这次我们将在 TypeScript 代码中将其定义为 Float32Array 类型的数据。 const quadVertexSize 4 * 8; // 一个顶…...

【C++之容器篇】AVL树的底层原理和使用

目录前言一、AVL树二、AVL树的底层实现1. 结点类型的定义2. AVL树的定义3. 查找函数4. 插入函数(重难点)三、判断平衡树的方法前言 AVL树其实是在搜索树的基础上加上一些限制因素&#xff0c;从而使搜索树的结构保持相对平衡&#xff0c;通过前面我们对二叉搜索树的学习&#x…...

从交换机安全配置看常见局域网攻击

前言 构建零信任网络&#xff0c;自然离不开网络准入(NAC)&#xff0c;这就涉及到交换机的一些安全测试&#xff0c;于是有了此文《从交换机安全配置看常见局域网攻击》。 交换机安全配置 如本文标题所说从交换机安全配置看常见的局域网攻击&#xff0c;那么下面提到的各种攻…...

工具篇3.5世界热力图

一、定义 世界热力图是一种地图形式&#xff0c;它使用颜色的变化来显示世界各个地区的某种指标&#xff08;如 GDP、人口、气候等&#xff09;的分布和密度。通常&#xff0c;世界热力图会使用不同的颜色来表示数据的变化&#xff0c;例如使用蓝色表示低值&#xff0c;红色表…...

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解法

环形链表排列硬币合并两个有序数组&#xff08;没错&#xff0c;出现过一次的LeetCode合并数组又双叒叕出现了&#xff01;&#xff09;经典算法题java解法 目录1 环形链表题目描述解题思路与代码解法一&#xff1a;哈希表解法二&#xff1a;双指针2 排列硬币题目描述解题思路与…...

网络编程学习一

1、初识网络编程2、网络编程三要素3、三要素&#xff08;IP&#xff09;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,一般称为立即执行函数。你可能会问我&#xff0c;*“嘿&#xff01;我知道正常的函数表达式是什么样子的&#xff0c;但是 IIFE 到底是什么&#xff1f;”。*好吧&#xff0c;这正是我今天要在本文中回答的问题。 函数表达式 在了解立即调用函数表达式之前&#xff0c;让…...

基于Django和vue的微博用户情感分析系统

完整代码&#xff1a;https://download.csdn.net/download/weixin_55771290/87471350概述这里简单说明一下项目下下来直接跑起的方法。前提先搞好python环境和vue环境,保证你有一个账户密码连上数据库mysql。1、pip install requirements.txt 安装python包2、修改mysql数据库的…...

【C++】IO流

&#x1f308;欢迎来到C专栏~~IO流 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤&#x1…...

【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练

【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练 【论文原文】&#xff1a;CLEVE: Contrastive Pre-training for Event Extraction 【作者信息】&#xff1a;Wang, Ziqi and Wang, Xiaozhi and Han, Xu and Lin, Yankai and Hou, Lei and Liu, Zhiyuan and Li, Peng and …...

《自动驾驶规划入门》专栏结语

一、 源起 2021年10月12日&#xff0c;化学工业出版社的金编辑根据博客中留下的微信号联系上我&#xff0c;问我有没有出书的想法。从小到大&#xff0c;书与文字在我心里是有着神圣地位的。我在“想试试”与“害怕做不好”这两种矛盾的心情中&#xff0c;还是先应了下来。签了…...

【数据结构与算法】2.八大经典排序

文章目录简介1.分析排序算法2.插入排序2.1.直接插入排序2.2.希尔排序3.选择排序3.1.直接选择排序3.2.堆排序3.2.1.堆的数据结构3.2.2.算法实现4.交换排序4.1.冒泡排序4.2.快速排序5.归并排序6.基数排序7.八大排序算法总结简介 排序对于任何一个程序员来说&#xff0c;可能都不会…...

Windows 免安装版mysql,快速配置教程

简单步骤 下载并解压mysql压缩包&#xff0c;把 “<mysql根目录>/bin” 路径添加到系统环境变量path中命令行执行 mysqld --initialize --console&#xff0c;初始化data目录&#xff08;数据库表文件默认存放在" <mysql安装根目录>/data "目录下&#…...

空间误差分析:统一的应用导向处理(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

【C++】引用、内联函数、auto关键字、范围for、nullptr

引用什么叫引用引用的特性常引用使用场景传值、传引用效率比较引用和指针的区别内联函数auto关键字(C11)基于范围的for循环(C11)指针空值nullptr(C11)引用 什么叫引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内…...

pytest数据驱动

文章目录一、数据驱动概念二、数据驱动yaml1、yaml的基本语法&#xff1a;2、yaml支持的数据格式&#xff1a;3、安装4、使用5、读取方法a、目录结构b、yaml文件c、测试方法d、测试用例e、测试结果三、数据驱动excel1、安装导入2、操作3、读取方法a、目录结构b、excel文件c、测…...

OSI七层网络模型

应用层 定义了各种应用协议规范数据格式&#xff1a;HTTP协议、HTTPS协议、FTP协议、DNS协议、TFTP、SMTP等等。 表示层 翻译工作。提供一种公共语言、通信。 会话层 1、可以从校验点继续恢复数据进行重传。——大文件 2、自动收发&#xff0c;自动寻址的功能。 传输层 1、…...

易基因|MeRIP-seq揭示m6A RNA甲基化通过调控组蛋白泛素化来促进癌症生长和进展:Cancer Res

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。2022年05月16日&#xff0c;《Cancer Res》杂志发表了题为“M6A RNA Methylation Regulates Histone Ubiquitination to Support Cancer Growth and Progression”的研究论文&#xff0c;该…...

武汉平价做网站/网页设计主题推荐

Tomcat 是一个Web 容器&#xff0c;所有的J2EE WEB 程序可以在此处运行。Tomcat 服务器是一个符合J2EE 标准的WEB 服务器&#xff0c;则J2EE 的EJB 程序无法在此处运行。如果要运行可以选择能够运行EJB 程序的容器&#xff1a;WebLogic 、WebSphereE-Mail &#xff1a;mldnqa16…...

供应链管理专业研究生/seo技术培训班

如何设立短期目标 知道吗&#xff1f;那些成功人士极力反对的&#xff0c;以及权威人士大力阻止的&#xff0c;而我们又没有发现什么不好的事&#xff0c;或许就是我们苦苦追寻的“成功秘诀”。政府、专家、成功者经常像大人哄孩子一样。难道不是吗&#xff1f;“那是粑粑&…...

qq企业邮箱注册申请/站长工具seo综合查询怎么用

这是Java EE框架开发技术一书中贯穿整本书的一个练习系统(作业)。代码一共有两个部分第一部分是第五章的作业&#xff0c;完成如下使用原生的jdbc代码进行数据库的连接界面和书本完全相同除部分js代码用jq代替外其他代码均相同课后扩展实现除头像上传外基本完成第二部分是最后一…...

苏州企业做网站/app开发教程

为什么80%的码农都做不了架构师&#xff1f;>>> Properties简述 Properties是hashtable的子类 具备map集合的特点&#xff0c;储存的键值对都是字符串 是集合和IO技术相结合的集合容器 可以用于键值对形式的配置文件 Properties存取 // 设置和获取元素public stati…...

桑拿网站横幅广告怎么做/域名注册网站查询

简介和安装 redis简介redis安装redis运行node_redis安装 连接到redis服务器redis.createClient()认证 client.auth(password, callback)单值set和get client.set(key,value,[callback])client.get(key,[callback])client.set([key,value],callback) 多值get和set client.hmset(…...

达州网站建设qinsanw/郑州网络营销公司哪个好

这个 Python 库 Text2Human 仅通过提供有关性别和衣服的文本描述来生成一个人的图像。 原始数据集 DeepFashion-MultiModal,具有丰富多模态注释的大规模高质量人体数据集。它具有以下属性: 总共有44,096张高分辨率人体照片,12,701张全身图像。 我们为每张完整的人体图片手…...