使用数字孪生实现电池管理系统 (BMS) 测试自动化

电池管理系统 (BMS) 监控和控制电动飞机和电动汽车等车辆中的电池。它需要在正常和极端条件下进行严格测试,以证明其质量和完整性。

使用模拟电池进行测试非常有益,因为可以快速、反复地安全地测试各种条件,而不会冒着宝贵硬件的风险。这种硬件在环测试简化了质量保证并跟上了创新的步伐。

电池对于车辆的电气化传动系统或飞机和船舶的执行器至关重要,而 BMS 则是控制和监控电池组的关键部分。BMS 可确保电池安全运行、有效利用其容量并延长使用寿命。

BMS 用于汽车、飞机、储能系统和消费电子产品等。它通常包括电池管理单元 (BMU)、电池监控单元 (CMU) 和配电单元 (PDU)。

电池管理单元是主控制器;它连接到电池监控和配电单元,监控整体充电状态 (SOC) 以及电池电压和电池温度信息。电池监控单元与电池单元相连;这些模块组成电池组 - 每个电池组都有一个 CMU 来调节各个电池的充电和放电、温度和电压。

配电单元连接到从电池组获取电力或将电力反馈回的所有组件 - 例如,在电动汽车 (EV) 中,这可能是充电系统和电动机。

测试电池管理系统 (BMS)

严格的测试可确保 BMS 满足其要求,例如在充电期间以方式在电池之间分配电流。BMS 在标称范围和极端情况下进行检查,例如当电池过热、信号故障或发生短路时。这样,就可以测试 BMS 在这种情况下如何反应并确保正常运行。

测试 BMS 面临各种挑战,是一项复杂的任务。BMS 包含各种控制器,处理来自分布式传感器的信号,并与动力传动系统等众多系统相连。测试所有功能、配置和状态需要付出很多努力,而这在实际电池中几乎无法实现。

随着电池的老化,反复重现条件以测试关键算法(例如电池平衡和充电状态或健康状态 (SoH) 估计)也至关重要。此外,在开发过程中,不同的团队通常负责各个组件,而他们的工程师并不总是可用。

电池、BMS 和基础设施也在不断发展,因此系统提供商必须跟上这一步伐,并迅速应对新要求。,使用真实硬件进行测试可能会很危险;在坏的情况下,电池可能会因过压或极端温度而爆炸。

使用数字孪生进行 BMS 测试

这些挑战可以通过使用电池的数字孪生来解决。电池单元模拟器可以通过模拟电压、电流水平和温度来模拟电池的行为。它可以表示各种电池组架构并与标准测试框架无缝集成。

图 2电池单元模拟器 (BCE) 通过模拟电压、电流水平和温度来模拟电池的行为。来源:Speedgoat GmbH

考虑到电池技术和化学性质、使用年限和工作温度,电池单元模拟器可适应各种电池型号。可在正常运行条件和故障条件下快速安全地进行测试。

与实际电池接口时使用相同的通信协议。使用数字孪生进行测试还有助于测试系统的其余部分,例如配电和充电组件、电机驱动器和燃料电池。

必须能够在测试中重现相同的条件,以可靠地检查控制器的行为。此外,灵活的测试基础设施至关重要,它允许工程师在开发过程中不断测试功能和变化以满足新的要求。此外,测试许多场景(包括复杂性)对于实现完整的测试覆盖至关重要。

测试用例通常在软件中定义和跟踪。自动化测试程序对于重复测试和有效比较结果非常重要。需求通常在 Simulink 的专用工具箱(例如 Simulink Test)或与 ASAM XIL 兼容的第三方软件工具中进行管理。

数字化测试的优势

为了测试 BMS 控制器及其与各种组件的交互,可以使用数字孪生模拟实际电池的行为。许多见解都是早期获得的,使工程师能够在更改仍然易于实施时调整设计和功能。此外,电池的数字孪生能够适应快速变化的趋势——它比硬件更灵活。它可以无缝配置以适应新条件。

此外,借助数字孪生,可以在组装之前测试组件。这可以节省时间,并且可以在开发过程的早期发现复杂情况或设计错误,从而提高开发质量和速度。同样,由于在早期阶段而不是在开发后期进行更正,因此可以节省开发和测试成本。,在碰撞、电池故障或过压等极端事件中,可以对 BMS 进行无风险测试。

因此,使用电池数字孪生进行测试非常适合测试和验证电池管理系统并追求连续自动化工作流程的工程师。对用户来说,一个有吸引力的特点是他们可以在一个软件环境(Simulink)中执行所有测试。

电池模型是在 Simulink 中开发的。之后,可以使用同一模型在后台使用硬件进行测试。灵活的测试基础设施和工具箱可以根据定义的要求进行连续、自动化的测试。

图 3所有自动化 BMS 测试均可在单一软件环境 (Simulink) 中执行。来源:Speedgoat GmbH

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

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

相关文章

Hash表(C++)

本篇将会开始介绍有关于 unordered_map 和 unordered_set 的底层原理,其中底层实现其实就是我们的 Hash 表,本篇将会讲解两种 Hash 表,其中一种为开放定址法,另一种为 hash 桶,在unordered_map 和 unordered_set 的底层…

6、evil box one

低—>中 目标:获取root权限以及2个flag 主机发现 靶机 192.168.1100.40 或者使用fping -gaq 192.168.100.1/24发现主机使用ping的方式。 端口扫描 发现开放了22和80 可以使用-A参数,-A参数会得到更多的扫描细节 访问80端口就是一个apache的基本的…

Redis 7.x 系列【23】哨兵模式

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 工作原理2.1 监控2.2 标记下线2.3 哨兵领袖2.4 新的主节点2.5 通知更新 3. …

JMeter案例分享:通过数据验证的错误,说说CSV数据文件设置中的线程共享模式

前言 用过JMeter参数化的小伙伴,想必对CSV Data Set Config非常熟悉。大家平时更关注变量名称,是否忽略首行等参数,其余的一般都使用默认值。然而我最近遇到一个未按照我的预想读取数据的案例,原因就出在最后一个参数“线程共享模…

服务重启时容器未自动启动

1、容器重启策略 通过设置容器的重启策略,‌可以决定在容器退出时Docker守护进程是否重启该容器。‌常见的重启策略包括:‌ no:‌不重启容器,‌默认策略。‌always:‌无论容器是如何退出的,‌总是重启容器…

keil配置irom偏移地址进行IAP,偏移地址不生效问题解决

如果keil配置了 IROM1 偏移地址,但是生成的hex,程序并没有偏移,问题多半是出现在linker里如下图所示。选择了分散加载,所以keil配置地址偏移不生效。 点开edit 更改分散加载的地址偏移即可。 偏移成功,可以IAP了。

算法学习笔记(8.5)-零钱兑换问题二

目录 Question: 动态规划思路: 代码实现: 空间优化代码 Question: 给定n种硬币,第i种硬币的面值为coins[i-1],目标金额为amt,每种硬币可以重复选取,问凑出目标金额的硬币组合数量。 动态规划思路…

Java 线程池详解

序言 在高并发编程中,线程池是一个非常重要的组件。它不仅能够有效地管理和复用线程资源,还可以提升应用程序的性能和稳定性。本文将详细介绍Java中的线程池机制,以及如何正确地使用线程池。 一、什么是线程池 线程池是一组已经初始化并等…

ftp pool 功能分析及 golang 实现

本文探究一种轻量级的 pool 实现 ftp 连接。 一、背景 简要介绍:业务中一般使用较多的是各种开源组件,设计有点重,因此本文探究一种轻量级的 pool 池的思想实现。 期望:设置连接池最大连接数为 N 时,批量执行 M 个 F…

超时导致SparkContext构造失败的问题探究

文章目录 1.前言2. 基于事故现场对问题进行分析2.1 日志分析2.2 单独测试Topology代码试图重现问题 3. 源码解析3.1 Client模式和Cluster模式下客户端的提交和启动过程客户端提交时在两种模式下的处理逻辑ApplicationMaster启动时在两种模式下的处理逻辑 3.2 两种模式下的下层角…

OSPF.综合实验

1、首先将各个网段基于172.16.0.0 16 进行划分 1.1、划分为4个大区域 172.16.0.0 18 172.16.64.0 18 172.16.128.0 18 172.16.192.0 18 四个网段 划分R4 划分area2 划分area3 划分area1 2、进行IP配置 如图使用配置指令进行配置 ip address x.x.x.x /x 并且将缺省路由…

uniapp编译成h5后接口请求参数变成[object object]

问题:uniapp编译成h5后接口请求参数变成[object object] 但是运行在开发者工具上没有一点问题 排查: 1:请求参数:看是否是在请求前就已经变成了[object object]了 结果: 一切正常 2:请求头:看…

2024辽宁省数学建模C题【改性生物碳对水中洛克沙胂和砷离子的吸附】原创论文分享

大家好呀,从发布赛题一直到现在,总算完成了2024 年辽宁省大学数学建模竞赛C题改性生物碳对水中洛克沙胂和砷离子的吸附完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃…

OpenGL笔记九之彩色三角形与重心插值算法

OpenGL笔记九之彩色三角形与重心插值算法 —— 2024-07-07 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记九之彩色三角形与重心插值算法1.运行3.main.cpp 1.运行 3.main.cpp 代码 #include <iostream>#define DEBUG//注意&#xff1a;glad…

虚拟机centos连接xshell

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ☁️运维工程师的职责&#xff1a;监…

VsCode远程ssh连接失败:Could not establish connection to XXX

一、问题描述 在VsCode中按下"F1"&#xff0c;选择Remote-SSH:Connect to Host 选择一个已经配置好的SSH主机&#xff0c;比如我选择的是192.168.0.104&#xff1a; 结果提示&#xff1a;Could not establish connection to XXX 二、解决方法 观察VsCode的输出信息…

几何建模-Parasolid中GO功能使用

1.背景介绍 1.1 Parasolid和它的接口间关系 1.2 什么是GO GO全称是Graphical Output.你的程序需要在屏幕或者打印设备上显示模型数据时。在需要使用PK中的某个渲染函数时创建图形显示数据时&#xff0c;Parasolid会调用GO相关的函数。GO函数会输出绘图指令给你的应用程序提供…

《昇思25天学习打卡营第20天|onereal》

应用实践/LLM原理和实践/基于MindSpore的GPT2文本摘要 基于MindSpore的GPT2文本摘要 数据集加载与处理 数据集加载 本次实验使用的是nlpcc2017摘要数据&#xff0c;内容为新闻正文及其摘要&#xff0c;总计50000个样本。 数据预处理 原始数据格式&#xff1a; article: [CLS…

MySQL-基础点

目录 MySQL概念 数据库三大范式是什么&#xff1f; blob 和 text 有什么区别&#xff1f; DATETIME 和 TIMESTAMP 的异同&#xff1f; MySQL 中 in 和 exists 的区别&#xff1f; MySQL 里记录货币用什么字段类型比较好&#xff1f; MySQL 怎么存储 emoji? 用过哪些 M…

MongoDB7出现:Windows下使用mongo命令提示不是内部或外部命令

确保环境变量添加正确的情况&#xff0c;仍然出现这种问题。如果安装的是新版本&#xff0c;则大概率是新版本mongodb的bin里面没有mongo命令 解决方案&#xff1a; 下载mongodb shell 下载链接 把shell的命令放进来 启用命令&#xff1a;mongosh