自动驾驶 | 仿真测试-HiL测试全解析

1.HiL 的定义

HiL(Hardware-in-the-Loop)硬件在环是计算机专业术语,也即是硬件在回路。通过使用 “硬件在环”(HiL) ,可以显著降低开发时间和成本。在过去,开发电气机械元件或系统时,使用计算机仿真和实际的实验就已经彼此独立开来。然而通过使用硬件在环的方式,这两个过程可以结合并展示出效率的极大提升。

硬件在环:也即是硬件在回路 (HiL),首先看一下下面三种情况的区别(如果将实际控制器的仿真称为虚拟控制器,实际对象的仿真称为虚拟对象,可得到控制系统仿真的3种形式:

1)虚拟控制器 + 虚拟对象=动态仿真系统,是纯粹的软件系统仿真;

2)虚拟控制器 + 实际对象=快速控制原型 (RCP) 仿真系统,是系统的一种半实物仿真;

3)实际控制器 + 虚拟对象=硬件在回路 (HiL) 仿真系统,是系统的另一种半实物仿真 。

HiL 目前主要有三大硬件平台,包含 NI 平台、Dspace 平台、ETAS 平台(已宣布退出 HiL 业务),下面方案主要以 NI 平台进行介绍。下面方案主要介绍 VCU HiL 系统方案。

2.HiL 系统方案

HiL 测试系统整体架构如下图所示,主要包含三层内容,第一层次为 HiL 测试系统软硬件架构,主要包括 HiL 测试系统的硬件设备、实验管理软件、被测控制器等;第二层次为 HiL 测试系统开发,在第一层次软硬件架构的基础上进行被测对象仿真模型开发、实时 I/O 接口匹配、硬线信号匹配及实验定义等;第三层次为 HiL 测试,主要指在第一、二层次的基础上进行 HiL 测试,主要包括测试序列开发、激励生成加载、模型参数调试、故障模拟实现及测试分析与评估等。

2.1 系统架构

VCU HiL 测试系统主要包括:上位机(PC)、PXI 机箱、实时处理器、数据采集板卡、CAN 通讯板卡、DIO 板卡、电阻模拟板卡、低压可编程电源等,系统原理如下图所示:

VCU HiL 测试系统中上位机电脑安装 Veristand、Teststand 软件用于测试过程管理和测试序列编辑,通过以太网与 PXI 机箱中的实时处理器进行连接,实时处理器中运行实时系统(Real Time)并安装 Veristand 终端引擎,通过与上位机数据传输,将仿真模型部署到实时系统中并控制运行状态;PXI 机箱中配置有多种类型的板卡,为系统提供不同类型的信号模拟和采集功能,通过 PXI 总线与实时处理器进行数据传输。

2.2 主要功能

VCU HiL 测试系统主要功能包括:

➢ 模拟 VCU 所有硬线输入信号,包括 AI、DI、PWM IN、电阻等输入信号;

➢ 采集 VCU 所有硬线输出信号,包括 DO、AO、PWM OUT 等输出信号;

➢ 模拟 VCU CAN 总线接收信号和接收 CAN 总线发送信号;

➢ 通过整车实时仿真模型及 I/O 接口实现 VCU 的闭环测试验证;

➢ 通过软/硬件实现 VCU 相关电气故障模拟,包括对地短路、对电源短路、开路等;

➢ 通过可编程直流电源模拟 VCU 的供电电源;

➢ 通过编辑测试序列,实现自动化测试,自动生成测试报告;

➢ 通过上位机人机交互界面可实时监控试验数据及在线修改仿真模型参数;

➢ 支持 VCU 所有 I/O 端口测试验证;

➢ 支持 VCU CAN 通讯功能测试验证;

➢ 支持 VCU 整车控制策略全功能验证。如:钥匙、踏板、挡位信号处理逻辑验证、上下电控制逻辑验证、加减速控制逻辑验证、扭矩协调逻辑验证、能量回收逻辑验证、充电相关逻辑验证、继电器控制逻辑验证、续驶里程估算逻辑验证……

➢ 支持 VCU 故障诊断功能测试验证;

➢ 支持 VCU 极限工况下控制功能测试验证;

➢ 支持 VCU 回归测试;

➢ 支持 VCU 耐久测试;

➢ 支持 NEDC 等典型标准工况测试及自定义工况测试。

2.3 系统组成

VCU HiL 测试系统主要有硬件平台、软件平台、控制模型三部分组成。

1)硬件平台:

VCU HiL 测试系统采用分布式设计模式,上位机作为整个系统的控制核心,主要负责软硬件配置和流程管理;下位机以 PXI 机箱、实时处理器及 I/O 板卡为核心,主要负责序列执行与设备调用。系统硬件平台由 PXI 机箱、实时处理器、I/O 板卡、通讯板卡、电源管理模块、故障注入板卡、低压可编程电源、信号调理模块、机柜及上位机电脑等组成。

2)软件平台

软件平台包括实验管理软件和自动化测试软件,实现试验管理、故障注入、测试用例编辑及自动化测试等功能。

本方案试验管理软件基于 NI VeriStand 软件平台,实现系统配置管理和测试管理。试验管理软件是一款基于配置的专业实时测试与仿真软件,无需编程即可创建测试应用,快速将硬件 I/O 与多种环境下开发的仿真模型相集成,同时可以通过 NI LabVIEW 及其他软件添加自定义与其他自动化测试功能,在兼具灵活性与开放性的同时,降低系统开发难度,缩短开发时间。

本方案自动化测试软件基于 NI TestStand 软件平台,自动化测试软件是一款可立即执行的测试管理软件,它可以帮助用户更快地开发自动测试和验证系统。自动化测试软件主要功能包括:

➢ 可视化测试序列编辑环境

➢ 测试管理功能

➢ 测试执行

➢ 多线程并行测试

➢ 用户管理

➢ 测试报告管理

➢ 可自定义的操作员界面

➢ 源代码控制整合

➢ 数据库记录

3)仿真模型

仿真模型为 HiL 系统提供完整的虚拟环境,与被测 ECU 相应的 I/O 信号和 CAN 信号通过硬件板卡进行匹配,实现控制对象仿真模型与控制器输入输出信号之间的无缝连接,从而形成闭环测试环境。

VCU HiL 测试系统仿真模型为纯电动车整车仿真模型,包含车辆纵向动力学模型、驾驶员模型、电机模型、动力电池模型、主减速器模型、虚拟控制器模型、I/O 模型、道路及环境模型等,主要特点如下:

➢完全满足电动汽车整车控制策略功能测试验证要求;

➢基于 MATLAB/Simulink 软件开发,实现模型的模块化和参数化设置,模型精度高;

➢支持用户图形化界面输入数据;

➢模型中各模块所用参数可以实时在线修改,不需重新编译下载模型;

➢支持在 MATLAB 下离线仿真和在线仿真;

➢满足新能源汽车 HiL 测试系统实时性要求,整个仿真模型运行于实时系统,模型整体

➢所有模型均开源、规范、易读,每个模块均有详细的模型说明,方便用户后续进行模型的二次开发及车型变更扩展。

车辆纵向动力学模型用于模拟整车动力学的基本力学关系,同时考虑风阻、坡阻、路面对车辆的影响。依据传动轴接收到的扭矩信号,结合整车动力学特性及路面特性参数,计算并输出当前车辆加速度、车速及轮速信息。

驾驶员模型用于模拟车辆实际行驶过程中的油门踏板和制动踏板变化,通过接收运行工况目标车速、实际车速等,通过模型解算,输出加速踏板、制动踏板指令等。

驾驶员模型具有手动和自动两种驾驶模式。在手动驾驶模式下,通过监控界面设定加速踏板或制动踏板的开度。在自动驾驶模式下,可在监控界面设定目标车速或选择 NEDC 等试验工况,自动驾驶模块根据实际车速和目标车速的偏差实时调整加速踏板和制动踏板的开度。

电机模型根据电机的扭矩需求,通过电机模型解算,输出实际扭矩、转动惯量、电机电功率等,用来模拟真实的电机系统。

电池模型主要根据车辆动力学模型得到的电池电流激励来仿真电池电压的响应情况。电池模型充分考虑了电池动态特性,同时考虑到实际应用中的电池单体存在不一致性的情况。电池仿真模型支持三元、磷酸铁锂等各种类型锂电池,包括电池单体模型及串联电池组模型。

主减速器模型通过设定的减速比和主减速器传动效率,计算减速后的转速和扭矩并输出。

充电模型包括快充模型和慢充模型,充电模型主要是实现充电枪、充电参数控制逻辑及故障模式设置等,模拟正常及故障状态下的预充功能。在充电模式下,根据插枪动作识别快慢充模式,自动发出握手参数,并输出相应充电电压、电流等参数,根据国标要求可以设置相应的故障类型完成故障模拟测试。

虚拟控制器模型主要模拟除了被测控制器外其它所需控制器的必要通讯信号和 IO 信号,以便和真实控制器无缝连接、从而完成待测功能的验证。

道路及环境模型模拟不同的道路路面、海拔高度、环境温度、风速及空气密度等,以满足不同道路不同环境下的虚拟仿真需要,为 HiL 测试提供虚拟的环境仿真。

I/O 模型实现车辆仿真模型与被测控制器的信号连接。I/O 模型包括传感器信号输出接口、执行器信号采集接口、通信接口等。

3.HiL 测试流程

HiL 测试流程包含测试准备、测试用例开发、测试工程搭建、测试调试、测试总结。

3.1 测试准备

测试准备包含:被测控制器接口分析、HiL 设备硬件资源分配、控制器线束设计、被测件功能分析、测试计划安排。

3.2 测试用例开发

测试用例开发方法研究是测试的关键点之一。采用合理的测试方法开发出合理有效的测试用例,不仅可以增加测试的覆盖度而减少冗余重复的测试,也可以大大减小测试的时间而提高测试的效率。

测试用例开发包含:测试用例定义、测试用例开发方法(黑盒测试、白盒测试、基于经验测试)、自动化测试用例开发。

3.3 测试工程搭建

测试工程搭建主要是测试工程师是基于实验管理软件和自动化测试软件进行测试工程的搭建,包含:软硬件工程配置、测试界面搭建、模型配置、通讯配置等等。

3.4 测试调试

1)冒烟测试:测试工程搭建完成后,连接被测控制器,需要对被测控制器和 HiL 测试设备做冒烟测试,验证设备连接与原件是否有基本的问题。冒烟测试有测试人员和开发人员共同完成,在测试过程中发现问题,测试人员找到了一个 Bug,然后开发人员会来修复这个 Bug,冒烟测试是否通过决定了下一轮系统测试是否可以执行。

2)接口测试:接口测试是只有被测控制器,没有和整车仿真模型形成闭环的测试,属于开环测试。接口测试通过人为赋值模拟 BMS、MCU 等外部控制器与被测控制器之间的数据交互,验证被测控制器数据交互是否正常,侧重信号交互验证。一般接口测试如果有测试程序,可以自动测试,如果没有测试程序,可手动测试。

3)自动化测试:被测控制器和整车仿真模型形成闭环的测试,属于闭环测试。闭环测试通过模拟操作驾驶室变量,使整车模型与被测控制器自动数据交互,验证被测控制器软件策略,侧重功能和性能验证。

4)测试报告:通过 HiL 测试管理软件加载测试序列,执行测试,输出测试报告。

3.5 测试总结

测试完成,在被测功能达到测试通过标准后,需要对 HiL 测试工作进行总结和整理,并生成及编制 HiL 测试总结。HiL 测试总结主要包括以下内容:HiL 测试环境、测试周期、测试人员及测试内容等、测试过程中的问题统计与分析,并对测试遗留问题进行记录、测试结束后检查所做的测试工作及完成情况,提交工作成果,包括:测试用例说明文档,测试矩阵文档,可执行文件及生成的测试报告等。

4.总结

硬件在环仿真测试系统是以实时处理器运行仿真模型来模拟受控对象的运行状态,通过 I/O 接口与被测的控制器连接,对被测控制器进行全方面的、系统的测试。从安全性、可行性和合理的成本上考虑,HiL 硬件在环仿真测试已经成为控制器开发流程中非常重要的一环,减少了实车路试的次数,缩短开发时间和降低成本的同时提高控制器的软件质量,降低汽车厂的风险。在新能源汽车领域中,HiL 硬件在环仿真测试对于核心电控系统:整车控制系统、BMS 电池管理系统、MCU 电机控制器、车身系统、底盘悬架、ADAS 辅助驾驶等都极为重要。

本人目前在车联网、车路协同相关领域测试、也接触一些无人驾驶相关的技术,最近也想系统学习一下相关知识,有想了解这方便知识的,可以一起学习探讨。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

大长案例 - 通用的三方接口调用方案设计

文章目录 引言身份验证防止重复提交数据完整性和加密回调地址安全事件响应可用性 设计方案概述1. API密钥生成2. 接口鉴权3. 回调地址设置4. 接口API设计 权限划分权限划分概述1. 应用ID(AppID)2. 应用公钥(AppKey)【(…

蒸发式工业冷风机

工业冷风机是一种专为工业环境设计的降温设备,它通过水蒸发吸热的原理来降低环境温度。以下是关于工业冷风机降温的一些详细信息: 降温原理: 工业冷风机(也称为蒸发式冷风机或蒸发式冷却机)利用“水蒸发吸收热量”的物…

Linux基础——Linux开发工具(上)vim

前言:在了解完Linux基本指令和Linux权限后,我们有了足够了能力来学习后面的内容,但是在真正进入Linux之前,我们还得要学会使用Linux中的几个开发工具。而我们主要介绍的是以下几个: yum, vim, gcc / g, gdb, make / ma…

pyqt拖入图片并显示

pyqt拖入图片并显示 介绍效果代码 介绍 像拖入文本一样,把图片拖入到窗体中显示。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt5.QtGui import QPixmap, QDragEnterEvent, QDropEvent from PyQt5.Q…

嵌入式C语言教程:使用DMA控制的UART通信

在许多嵌入式系统中,UART(通用异步接收/发送)是一种常见的通信协议,用于低速串行数据传输。 通过DMA(直接内存访问)控制UART通信,可以有效地释放CPU资源,使其能够处理其他计算任务。…

一种基于YOLOv8改进的高精度红外小目标检测算法 (原创自研)

💡💡💡本文摘要:一种基于YOLOv8改进的高精度小目标检测算法, 在红外小目标检测任务中实现暴力涨点; 💡💡💡创新点: 1)SPD-Conv特别是在处理低分…

安防监控/智能分析EasyCVR视频汇聚平台海康/大华/宇视摄像头国标语音GB28181语音对讲配置流程

一、背景分析 近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪…

Flask 3 保姆级教程(一):快速上手

一、创建项目 PyCharm 中新建项目 创建完成后会出现这么个项目 以下是代码解析: # 导入了 Flask 类 from flask import Flask# 创建了一个 Flask web 应用的实例,并将其赋值给变量 app # __name__ 是一个特殊的 Python 变量,它表示当前模块…

conda env list找不到anaconda/envs下的环境。Could not find conda environment。

home/用户名/anaconda3/envs中的环境与conda env list下显示的环境不一致。 想进入home/用户名/anaconda3/envs中的环境,显示环境不存在。 重点!!!(conda activate 环境地址 可进入环境) 这一步最重要&…

springboot mongodb分片集群事务

前置 mongodb分片集群想要使用事务,需要对应分片没有仲裁节点 代码 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId><version>2.1.0.RELEASE</version></d…

解决NetworkManager覆盖/etc/resolv.conf的问题

发布时间&#xff1a;2024.4.27 问题 /etc/resolv.conf是Linux下DNS的配置文件。 但是NetworkManager会用覆盖它&#xff0c;导致我们每次都要重新配置。 解决办法 这是官方推荐的做法。或者你可以用resolveconf工具。 $ nm-connection-editor会调起一个界面&#xff0c;…

AI视频教程下载:用ChatGPT提示词开发AI应用和GPTs

在这个课程中&#xff0c;你将深入ChatGPT的迷人世界&#xff0c;学习如何利用其能力构建创新和有影响力的工具。你将发现如何创建不仅吸引而且保持用户参与度的应用程序&#xff0c;将流量驱动到你的网站&#xff0c;并开辟新的货币化途径。 **课程的主要特点&#xff1a;** …

聊聊Mysql的两阶段提交

从图中可看出&#xff0c;事务的提交过程有两个阶段&#xff0c;就是将 redo log 的写入拆成了两个步骤&#xff1a;prepare 和 commit&#xff0c;中间再穿插写入bin log&#xff0c;具体如下&#xff1a; prepare 阶段&#xff1a;将 事务的修改写入到 redo log&#xff0c;同…

软件测试的内容包含什么内容

软件测试的内容涵盖了多个方面&#xff0c;以确保软件的质量和性能达到既定的标准。这些内容包括但不限于以下几点&#xff1a; 注册信息验证&#xff1a;对软件产品的基本信息进行验证&#xff0c;如软件名称、版本号、开发者等&#xff0c;确保这些信息的准确性和一致性。功…

图论单源最短路径——spfa

【模板】单源最短路径&#xff08;弱化版&#xff09; 本题用的spfa 题目背景 本题测试数据为随机数据&#xff0c;在考试中可能会出现构造数据让SPFA不通过&#xff0c;如有需要请移步 P4779。 题目描述 如题&#xff0c;给出一个有向图&#xff0c;请输出从某一点出发到…

React、React Router 和 Redux 常用Hooks 总结,提升您的开发效率!

Hooks 是 React 16.8 中引入的一种新特性&#xff0c;它使得函数组件可以使用 state 和其他 React 特性&#xff0c;从而大大提高了函数组件的灵活性和功能性。下面分别总结React、React Router 、Redux中常用的Hooks。 常用Hooks速记 React Hooks useState&#xff1a;用于…

单片机Debug的这几种方式,你都知道吗?

目录 一、仿真器调试 二、调试器调试 三、逻辑分析仪分析波形 四、示波器捕捉信号 五、串口调试 六、LED/蜂鸣器/显示屏调试 七、单元测试 嵌入式工程师在对单片机进行编程、结果验证、查找bug都需要用到调试的方法&#xff0c;用来进行调试定位&#xff0c;方便找出应…

相对通用大模型,企业更需要适合自身的英智私有化大模型

通用大模型虽然能在多个领域表现出强大的能力&#xff0c;但应用在特定行业时&#xff0c;表现效果并不能达到预期。因为这些模型在训练过程中并没有使用到特定行业的数据和专业知识&#xff0c;它们并不能理解和处理行业的问题。 相比之下&#xff0c;适合自身行业的私有化大…

从零开始构建大语言模型(MEAP)

原文&#xff1a;annas-archive.org/md5/c19a4ef8ab1664a3c5a59d52651430e2 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一、理解大型语言模型 本章包括 大型语言模型&#xff08;LLM&#xff09;背后的基本概念的高层次解释 探索 ChatGPT 类 LLM 源自的 Transfo…

OpenTK:安装和说明

OpenTK介绍 OpenTK是一个开源、跨平台的游戏开发库&#xff0c;由MonoGame团队创建。它为C#开发者提供了一个简单易用的接口&#xff0c;以便使用OpenGL、OpenAL和OpenCL进行3D渲染、音频处理和并行计算。OpenTK的目标是提供一个一致且高效的框架&#xff0c;让开发者能够专注于…
最新文章