3分钟带您快速了解HIL测试及其架构

news2024/9/21 11:11:30

什么是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射频信号)如何使他们的延迟最小化,以保证模拟的实时性呢?

在下期文章中我们将继续讨论如何解决这两个问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从JDK源码中探究Runtime#exec的限制

前言 遇到很多次在调用Runtime.getRuntime().exec方法进行弹shell的时候遇到的各种限制,都没好好的认识认识原理,这次主要是总一个总结和原理上的分析。 环境搭建 之后使用docker起一个具有反序列化的漏洞的Java服务(能够执行命令就行)。 之后开启调…

深度学习神经网络基础知识(三)前向传播,反向传播和计算图

专栏:神经网络复现目录 深度学习神经网络基础知识(三) 本文讲述神经网络基础知识,具体细节讲述前向传播,反向传播和计算图,同时讲解神经网络优化方法:权重衰减,Dropout等方法,最后进行Kaggle实…

第47章 后端管理首页与Axios拦截守卫原理

1 404全局拦截 1.1 定义布局页&#xff1a;src\views\ 404View.vue <template> <el-container> <el-main> </el-main> <el-footer> <h1>大人&#xff0c;你要找的页面离家出走了&#xff01;小的正在努力寻找中…</h1> </el-fo…

Node多版本管理工具(轻松切换本地环境Node版本)

引言 在项目 Vue2 升级 Vue3 的过程中&#xff0c;因兼顾新老版本的项目而需不同版本的Node 环境&#xff0c;这种情况下 NVM【nodejs version manager(Node版本管理工具)】是一个很好的选择&#xff0c;它可以很方便的切换 node 环境。 安装 NVM 访问 ⬇ NVM 下载地址 &…

Android Handler的内存抖动以及子线程创建Handler

一、介绍 Handler&#xff0c;作为一个在主线程存活的消息分发工具&#xff0c;在App开发过程使用频率很高&#xff0c;也是面试问的比较多的。 面试常见的比如&#xff1a;子线程如何创建&#xff1f;Handler的机制是什么&#xff1f;内存抖动等&#xff0c;接下来我们会针对H…

Cosmos 基础教程(二)-- Run a Node, API, and CLI

有很多不同的方法来运行Cosmos区块链的节点。您将探索如何使用simapp 进行此操作。 1、编译simapp Cosmos SDK存储库包含一个名为 simapp 的文件夹。在这个文件夹中&#xff0c;您可以找到运行Cosmos SDK模拟版本的代码&#xff0c;这样您就可以在不实际与链交互的情况下测试…

从零开始使用MMSegmentation训练Segformer

从零开始使用MMSegmentation训练Segformer 写在前面&#xff1a;最新想要用最新的分割算法如&#xff1a;Segformer or SegNeXt 在自己的数据集上进行训练&#xff0c;但是有不是搞语义分割出身的&#xff0c;而且也没有系统的学过MMCV以及MMSegmentation。所以就折腾了很久&am…

Javascript 立即执行函数

IIFE,一般称为立即执行函数。你可能会问我&#xff0c;*“嘿&#xff01;我知道正常的函数表达式是什么样子的&#xff0c;但是 IIFE 到底是什么&#xff1f;”。*好吧&#xff0c;这正是我今天要在本文中回答的问题。 函数表达式 在了解立即调用函数表达式之前&#xff0c;让…

栈与队列-算法总结

目录 基础知识 用栈实现队列 用队列实现栈 栈的拿手好戏 删除字符串中的所有相邻重复项 逆波兰表达式求值 滑动窗口最大值 前k个高频元素 基础知识 栈队列stackqueue先进后出先进先出无迭代器无迭代器容器设配器容器设配器vector deque listvector deque list C标准库版本…

“dv/dt”和“di/dt”值:这些值的水平对固态继电器有什么影响?

di/dt水平过高是晶闸管故障的主要原因之一。发生这种情况时&#xff0c;施加到半导体器件上的应力会大大超过额定值并损坏功率元件。在这篇新的博客文章中&#xff0c;我们将解释dv/dt和di/dt值的重要性&#xff0c;以及为什么在为您的应用选择固态继电器之前需要考虑它们。 让…

VMware虚拟机安装Win11最详细过程以及遇到的这台电脑无法运行Windows11的问题

准备工作 在使用VMware虚拟机安装Win11之前我们先把准备工作做好&#xff0c;以免后续思绪混乱导致出错。 1. 到VMware官网或点击链接下载正版VMware Workstation 16 Pro。 2. 双击打开安装包&#xff0c;点击下一步。 3. 阅读用户许可协议&#xff0c;勾选我接受许可协议中的…

k8s-二进制部署

文章目录一、环境二、步骤1、安装cfssl工具2、部署etcd集群3、在node节点安装docker组件4、安装flannel组件部署master节点组件部署node节点部署kube-proxy组件三、测试一、环境 角色服务器地址组件master192.168.174.140kube-apiserver&#xff0c;kube-controller-manager&a…

外包出来,朋友内推我去一家公司,问的实在是太...

外包出来&#xff0c;没想到算法死在另一家厂子&#xff0c;自从加入这家公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到8月一纸通知&#xff0c;所有人不许加班&#xff0c;薪资直降30%&#xff0c;顿时有吃不起饭的赶脚。 好在有…

2023赏金计划:Coremail SRC漏洞征集与样本奖励火热进行中

赏金活动一&#xff1a;Coremail SRC漏洞奖励计划 01 活动背景 2023年1月&#xff0c;Coremail安全应急响应中心&#xff08;Coremail SRC&#xff09;正式上线启用&#xff0c;面向公众收集安全漏洞信息与安全情报。Coremail SRC旨在联合众多安全专家、白帽子研究员共同发现…

MySQL 运算符及优先级

MySQL 运算符 MySQL 主要有以下几种运算符&#xff1a; 算术运算符比较运算符逻辑运算符位运算符算术运算符 MySQL 支持的算术运算符包括: 运算符作用加法-减法*乘法/ 或 DIV除法% 或 MOD取余 在除法运算和模运算中&#xff0c;如果除数为0&#xff0c;将是非法除数&#x…

分布式事务几种方案

1&#xff09;、2PC 模式 数据库支持的 2PC【2 phase commit 二阶提交】&#xff0c;又叫做 XA Transactions。 MySQL 从 5.5 版本开始支持&#xff0c;SQL Server 2005 开始支持&#xff0c;Oracle 7 开始支持。 其中&#xff0c;XA 是一个两阶段提交协议&#xff0c;该协议…

推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】

0.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型;精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂;重排,一般是做打散或满足…

Windows 服务器IIS安装,服务器多界面设置方法

当你在使用服务器时是否有遇到这样一个问题&#xff1f;当你正在服务器里进行工作时&#xff0c;突然一个小伙伴在没有告知你的情况下进入了服务器里&#xff0c;导致你服务器失去连接了&#xff0c;这种情况是非常常见的现象。 主要原因就是因为服务器没有安装多界面&#xf…

k8s多节点二进制部署以及Dashboard-UI

一.多Maser集群架构的了解Kubernetes作为容器集群系统&#xff0c;通过健康检查重启策略是实现Pod故障自我修复能力&#xff0c;通过调度室实现Pod分布式部署&#xff0c;并保持预期副本数&#xff0c;根据Node失效状态自动在其他Node拉起Pod&#xff0c;实现了应用层的高可用。…

KUKA机器人_示教器的基本组成结构和功能介绍

KUKA机器人_示教器的基本组成结构和功能介绍 如何操作KUKA机器人? 通过KUKA机器人的手持操作器(KUKA smartPAD),或者叫示教器。 如下图所示, 可以通过示教器的各种按键菜单和触摸屏(手、触摸笔)来操作示教器。 下面对于示教器上的按键菜单的功能进行详细的说明: …