电池模块仿真 - 线性时不变降阶模型

电池模块热设计挑战

针对使用周期设计电池模块存在几个独特的热工程挑战。

使用循环(例如驾驶循环)涉及可变的负载、速度和环境条件,要求电池在动态压力下提供一致的性能。管理热行为至关重要,因为波动的电流会产生热量,使电池质量下降。设计人员必须确保最佳的能量密度、功率输出和安全性,同时平衡尺寸、重量和成本限制。此外,必须仔细匹配电池,以避免影响性能和使用寿命的不平衡。预测实际循环下的长期退化会使设计进一步复杂化。总体而言,在各种驾驶场景中实现耐用性、效率和可靠性需要精心的工程设计和先进的控制策略。
 

工程解决方案

为了解决驾驶循环中的电池模块挑战,工程师采用了多种解决方案。热管理系统(如液体冷却或相变材料)可调节温度并防止过热。电池管理系统 (BMS) 监控电压、电流和温度,以确保电池平衡和安全运行。先进的建模和仿真工具有助于预测各种驱动条件下的性能和退化。细胞选择和匹配提高了均一性和寿命。结构设计优化了包装的重量、耐用性和碰撞安全性。此外,自适应控制算法实时调整功率输出,以在各种驾驶场景中提高效率并延长电池寿命。

使用 ANSYS Fluent 是评估电池热系统解决方案的有效工具;但是,这些评估可能会带来一些挑战。创建精确的模型需要详细的输入数据,包括各种条件下的材料属性和单元行为,这些数据可能很难获得。在考虑使用周期时,在 Fluent 中验证高保真模拟是计算密集型且耗时的。通过利用 Ansys 数字孪生中的降阶模型,可以实时评估使用周期的热解决方案。本博客介绍了电池模块的线性时间不变 (LTI) 降阶模型 (ROM)。

 

方法

在本讨论中,使用 Ansys Fluent 和 Digital Twin 设置电池模块热仿真涉及几个步骤。这些步骤包括思维导图、产品图谱、Fluent 案例设置和 Twin Builder 数字孪生设置。

思维导图:生成吹塑特性的思维导图,以结构化的方式组织和表示想法、概念或信息。下面的思维导图显示了模拟研究的目标以及为实现目标而提出的问题。每个问题后面都有一个理论、行动和预测来解决每个问题。生成结果时,结果也会添加到每个分支的底部。

 


 

 

产品地图:生成吹塑型坯和模具的产品图,以列出和分类产品特征。产品图谱表示与思维导图中的理论/行动相对应的一些因素。

 

 

Fluent 训练模拟:Fluent 模型是根据思维导图生成的研究出于训练目的而执行的。首先执行稳态冷流仿真,为冷板冷却剂流生成一个解,其中单元热释放为零,极耳电流为零。然后,流动方程被停用,能量方程被激活。下图显示了在 Fluent Battery 模型中使用单输入多输出和多输入多输出降阶模型训练 LTI 模型的步骤顺序。

下图显示了 Battery ROM Tool Kit 的激活以及从 Battery Model 面板中选择 LTI ROM 类型。

下图显示了在选择 Volume Heat 时单输入多输出 (SIMO) 与多输入多输出 (MIMO) ROM 的不同选择程序。提示:在单击“Add as a Group”或“Add Individual”按钮之前指定瓦数值。

 

在这两种情况下,焦耳热的 Input Tab Current 都被激活;两种情况都使用单独添加的单元格,如下所示。设置 Transient Setup (瞬态设置) 后,设置将变为 Applied (应用),并激活 Run Training (运行训练)。

 

 


数字孪生仿真:Twin Builder 中线性时不变 ROM 的数字孪生功能可通过 Twin Builder > Toolkit >热模型识别进行访问。下图显示了在 Twin Builder 中使用单输入多输出降阶模型(左)和多输入多输出降阶模型(右)执行 LTI 模型的步骤顺序。

 

 

生成的模型从元件库拖动到原理图窗口中。将热负荷和电流的恒定输入添加并连接到模型。在电流常数模块和焦耳热输入之间添加了一个平方函数,因为热负荷是电流平方的函数。对于 SIMO ROM,恒定的热负荷对应于模块的磁头负荷。对于 MIMO ROM,恒定的热负荷连接到所有输入,其值等于每个单元的热负荷。

 

 

执行 Twin Builder 分析以生成瞬态温度结果。 执行仿真计算以生成结果,重点关注温度和仿真时间。Fluent 运行与 10 个处理器并行执行,使用的时间步长等于为数字孪生运行指定的最大时间步长。分析治疗数据以回答理论问题并确认或反驳预测。
 

Fluent 和 Digital Twin 仿真结果

训练时间的图形分析:下面的图表显示了在 Fluent 中训练 ROM 所花费的时间。多输入多出口训练 (MIMO) 花费的时间是单输入多输出 (SIMO) 训练的六倍多,因为有 13 个输入,而 2 个输入。

 

 

仿真时间的图形分析:下图显示了在 Fluent 和数字孪生中模拟使用情况所花费的时间。第一种情况具有恒定的热负荷,而第二种和第三种情况具有瞬态热负荷。数字孪生的运行时间不到 4 秒。相应的 Fluent 运行需要数小时才能完成。

 

 

模拟温度的图形分析: 下图显示了 Fluent 运行与具有恒定热负荷的相应 SIMO 和 MIMO ROM 之间的温度比较。很难看到温度的差异;但是,仿真时间差异很大。

 

模拟温度的图形分析: 下图显示了 Fluent 运行与相应的具有正向和反向循环载荷的数字孪生运行之间的温度比较。很难看到温度的差异;但是,仿真时间差异很大。

 

电池电流影响的图形分析: 下图显示了正向和反向循环负载下两个电流水平之间的温度比较。在循环结束时可以看到半度的温差。每次运行执行时间不到 4 秒。

 

 

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

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

相关文章

408第二季 - 组成原理 - IO方式II

继续中断 中断优先级包括响应优先级和处理优先级 注意下面的,很多都是之前说的 这里的中断向量的地址,就是下面的很粗的箭头 一个很复杂的图 然后记一下很复杂的东西 关中断,保存断点和中断服务程序寻址都是之前讲过的 继续推进!…

Spring AOP:横切关注点的优雅解决方案

目录 概要 和面向对象编程的区别 优点 AOP的底层原理 JDK动态代理技术 AOP七大术语 切点表达式 AOP实现方式 Spring对AOP的实现包括以下3种方式: 在本篇文章中,我们主要讲解前两种方式。 基于AspectJ的AOP注解式开发 定义目标类以及目标方法…

开源 Arkts 鸿蒙应用 开发(三)Arkts语言的介绍

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。 相关链接: 开源 Arkts …

hot100 -- 16.多维动态规划

1.不同路径 问题: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条…

优先级继承和优先级天花板(pthread_mutexattr_setprotocol)

优先级继承和优先级天花板,均可以解决优先级翻转问题。 优先级翻转: 实例观察优先级翻转和优先级继承现象-CSDN博客 如果有两个线程A和B,A的优先级大于B的优先级。在B获取锁之后,释放锁之前,A想要获取锁&#xff0c…

Spark on Hive表结构变更

Spark on Hive表结构变更 1、表结构变更概述1、表结构变更概述 在Spark on Hive架构中,表结构(Schema)变更是一个常见且重要的操作。理解其背景、使用场景以及具体方式对于大数据平台管理至关重要 1.1、Spark on Hive元数据管理 Hive Metastore(HMS): 核心组件。它是一个…

NotePad++ 怎么没有找到插件管理?

今天想使用NotePad阅读markdown文档,却发现未安装插件,本想通过插件管理安装一下,结果没有插件管理!!!! 我发现帮助菜单里面有一个入口 可惜的是网页无法打开。。。 只能自己下载插件了。 将插件…

内容搜索软件AnyTXT.Searcher忘记文件名也能搜,全文检索 1 秒定位文件

各位文件搜索小能手们!你们有没有过这种糟心事儿,想找个文件,死活想不起文件名,在电脑里一顿乱翻,眼睛都找瞎了也没找到。今天我就给你们介绍一款神器——AnyTXT.Searcher,它可是免费的全文检索工具&#x…

uniapp实现像qq消息列表左滑显示右侧操作栏效果

先看效果图 代码 SlidableChatEntry.vue <template><!-- 聊天项列表 --><view class"chat-item"touchstart"handleTouchStart($event)"touchmove"handleTouchMove($event)"touchend"handleTouchEnd()"><!-- 聊…

收集了一些用python做mysql增删改查的资料

还是因为最近在开发fastapi应用、现在需要把一些关键信息存库&#xff0c;所以就很想要一些这方面的资料。我这里找到一些&#xff0c;希望你看了帖子能节省一些时间。 前边说过如何搭建fastapi开发环境&#xff0c;帖子链接为&#xff1a; https://blog.csdn.net/weixin_4298…

嵌入式软件面经(一)Q: 什么是Modbus协议?它有哪些特点?

Modbus协议是一种开放式的工业通讯协议&#xff0c;最初由Modicon公司&#xff08;现施耐德电气Schneider Electric&#xff09;于1979年开发&#xff0c;广泛应用于工业现场设备之间的数据通讯&#xff0c;尤其适用于PLC&#xff08;可编程逻辑控制器&#xff09;与现场仪表、…

Java-52 深入浅出 Tomcat SSL工作原理 性能优化 参数配置 JVM优化

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月13日更新到&#xff1a; AI炼丹日志-29 - 字节…

day44-硬件学习之arm启动代码

一、跳转指令实现函数调用 LR&#xff08;链接寄存器&#xff09;&#xff1a;保留函数返回地址 1.1 bl指令 跳转指令bl,使LR保存当前函数进入前的下一条指令的地址&#xff0c;使函数调用后可以返回下一条指令的地址&#xff1b; 1.2 bx指令 跳到目标地址&#xff1b; 1.3 栈…

【数据结构】七种常见排序算法

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 欢迎来到排序算法的学习&#xff0c;恭喜你&#xff01;本期内容主要介绍排序算法&#xff0c;一起来探索吧~ &#xf…

Spring AOP 代理模式解析

一、核心概念&#xff1a;代理模式就像房屋中介 想象你要租一套房子&#xff1a; 你&#xff1a;租客&#xff08;业务调用者&#xff09;房东&#xff1a;房主&#xff08;真实业务对象&#xff09;中介&#xff1a;代理对象 传统方式&#xff08;无代理&#xff09; 租客…

智能制造——案例解读16页制造业指标体系搭建指导【附全文阅读】

文档的主要内容可以总结如下&#xff1a; **文档概述**&#xff1a; 本文档详细探讨了企业为何需要指标体系、指标体系的定义、如何搭建指标体系、如何有效拆解和管理指标&#xff0c;并最后提供了制造业指标体系的参考。 **主要内容**&#xff1a; 1. **企业为什么需要指标体系…

Pandas 数据清洗

数据清洗是数据分析过程中至关重要的一环&#xff0c;也是初学者最容易忽视的步骤。本文将详细介绍如何使用Pandas进行数据清洗&#xff0c;涵盖空值处理、日期格式修正、错误数据识别和重复数据删除四大核心内容。 1. Pandas 清洗空值 空值是数据集中最常见的问题之一&#…

C++容器之 forward_list (单向链表)使用说明

目录 1. 语法格式 2. 说明 3. 用法示例 1. 语法格式 描述控制可变长度元素序列的对象。该序列存储为单向(前向)链接的节点列表&#xff0c;每个节点包含一个 Type 类型的成员。 template <class Type, class Allocator allocator<Type>> class forward_lis…

ali 轻量服务器安装nginx

# Ubuntu sudo apt install nginx-light # 精简版 # CentOS sudo yum install nginx #启动并设置开机自启 sudo systemctl daemon-reload sudo systemctl start nginx sudo systemctl enable nginx #验证安装 nginx -v curl -I 127.0.0.1 #常用命令&#xff1a; # 重新加载配…

【设计模式】4.代理模式

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 代理模式 1. 第一版 class SchoolGirl:def __init__(self):self._name Nonepropertydef name(self):return self._namename.setterdef name(self, valu…