ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

多软件协同的电池包仿真全流程:从几何清理到热-流-结构耦合

多软件协同的电池包仿真全流程:从几何清理到热-流-结构耦合 做电池包仿真这些年我最大的感受就是一个项目从头到尾几乎不可能靠单款软件撑下来。几何清理在一款软件里做网格划分要换另一款热仿真、流场仿真、结构强度分析又各归各的软件最后还得把温度场、压力场导来导去。数据在软件之间倒腾的功夫有时候比仿真本身还费神。这篇博文就围绕“基于多款软件的电池包仿真分析”这条主线把我在实际项目中走通的完整流程、软件分工、踩过的坑和工程化经验一次性倒出来给正在做同类项目的朋友一份可以直接参考的作业。1. 从几何到结果电池包仿真需要哪几类软件分工1.1 一个电池包仿真项目里到底藏着哪些物理场先别急着选软件得先搞清楚电池包仿真究竟要算哪些东西。一个完整的电池包系统级仿真至少涉及五个维度电化学产热、传热与温度分布、冷却流场、结构强度与振动、热应力与变形。这五个维度不是孤立的它们之间有明显的先后依赖关系。电化学产热是源头。电芯在充放电过程中因为欧姆内阻、极化内阻和熵变会产生热量这部分热量直接决定整个pack的温度该怎么分布。接着是传热问题热量从电芯内部往外传经过模组结构件、导热垫、液冷板或者风道最后被冷却介质带走。传热算完温度场出来了又会影响结构件的热膨胀和热应力分布。同时流场计算出来的对流换热系数和压降反过来决定散热方案是否可行。如果项目涉及振动工况或者机械冲击还要把结构模态和应力响应一起算进去。这意味着仿真过程天然是链条式的没有什么软件能包揽所有环节。常用做法是把几何模型作为唯一输入源然后根据不同物理场景分发到不同求解器热分析和结构分析通常在一套软件里完成流场在CFD软件里做电化学产热在系统仿真或专门的电化学模块里做。软件之间的数据传递是整个项目的主动脉。1.2 我习惯用的软件矩阵以我最近做的液冷电池包项目为例软件分工大致如下环节常用软件负责内容几何前处理CATIA / SpaceClaim / SolidWorksCAD模型修复、简化、抽取流体域网格划分HyperMesh / ANSA / Fluent Meshing面网格、体网格、边界层网格热仿真ANSYS Fluent / COMSOL电芯温度场、模组温度分布流场仿真ANSYS Fluent / Star-CCM液冷板流道、风道流场、压降结构分析ANSYS Mechanical / Abaqus模态、静强度、热应力电化学模型MATLAB Simulink / GT-Suite等效电路模型、生热率计算数据映射ANSYS Workbench / 自写脚本温度场、压力场在不同网格之间传递这套矩阵并不是唯一的答案但它是比较成熟的一条链路。实际项目可以根据手里的License调整。比如没有COMSOL可以把电化学-热耦合直接在Fluent里用UDF实现没有HyperMesh用Fluent Meshing加SpaceClaim也能完成大部分前处理。核心不是用哪款软件而是明白每一道工序需要什么样的输入和输出以及数据从哪里来、到哪里去。1.3 数据流转主链路整个仿真链路的顺序可以概括为几何模型 → 网格模型 → 热/流场计算 → 温度场/压力场 → 结构热应力计算 → 结果评估与优化迭代。要注意的是这个链路不是单向的。做完一轮热仿真发现某个区域温度超标需要改液冷板流道设计那就得回到几何模型重新清一遍、重新画网格。所以几何前处理的质量直接决定整个项目的迭代效率这也是我下一节要展开说的重点。2. 几何清理与网格前处理模型从CAD变为CAE的三个坑2.1 从CAD到CAE的“瘦身”过程做仿真的人都知道从结构工程师手里拿到的CAD模型几乎不可能直接用于网格划分。一个完整的电池包模型除了模组、液冷板、箱体之外还包括几十颗螺栓、各种卡扣、走线槽、密封条、铭牌、吊耳这类细节。这些特征对网格划分来说是灾难它们会大幅增加网格数量拉低网格质量甚至导致求解器报错。所以几何前处理的第一步是“瘦身”。我一般保留的结构件包括箱体、模组外壳或者等效块体、液冷板、端板、导热垫、结构加强筋简化掉的是所有螺栓孔、小圆角、小倒角、铭牌、扎带、线束支架等非承载或非传热关键特征。需要注意的是简化不是越狠越好。螺栓孔虽然通常可以去掉但如果要做螺栓连接的结构强度分析那孔和接触面就得保留液冷板的流道特征绝对不能简化因为流道几何直接决定流场和压降。这里有一个很实用的技巧在CAD软件里用“Defeature”或者“Simplify”命令批量压缩小特征然后在SpaceClaim或者HyperMesh里做进一步的布尔运算和面修复。建议把“简化前模型”和“简化后模型”分开存版本因为一旦网格画到一半想恢复某个特征没有原始版就会很痛苦。2.2 中间格式传递的坑CAD软件和网格软件之间传递文件用的是STEP、IGES、Parasolid这类中间格式。这三种格式各有脾气。STEP尤其是AP214对曲面和实体支持最好是目前比较稳的选择IGES年代较久容易出现曲面缝隙和未修剪曲面Parasolid在NX和SolidWorks之间兼容好但到了Ansys、Fluent那边偶尔会丢装配体名称。我在项目里遇到过最典型的问题有三个。第一个是单位错乱。CAD里用的是毫米导入到网格软件一不留神变成了米整个模型缩放1000倍。这个问题排查起来特别隐蔽因为单独看几何形状是正常的直到标注尺寸才发现差了好几个量级。所以每次导入模型后第一件事就是测一个已知特征的长度确认单位一致再开始下一步。第二个是曲面缝隙和重叠面。CAD模型从上游导出时因为公差设置不同相邻曲面之间会出现微小的间隙或者重叠。这些瑕疵在CAD里肉眼根本看不见但一旦开始划分网格就会生成畸形单元或者自由边。处理方法是使用SpaceClaim的“修复”工具自动缝合曲面或者在HyperMesh里通过“几何清理”面板手工修补。第三个是装配体命名丢失。很多网格软件导入装配体后所有零件会合并成一个壳体或者实体导致后续无法对不同零件赋予不同材料属性。解决办法是在CAD里把每个零件分别导出或者导入网格软件后使用“分离实体”功能重新拆分。这个步骤虽然费时但省不了否则后面定义材料、定义接触边界条件都会无从下手。2.3 网格类型、尺寸与质量检查网格划分是整个仿真流程中最影响精度的环节之一。对电池包来说模型里有薄壁类零件箱体钣金、液冷板盖板也有大块实体模组、电芯等效块。薄壁结构适合用壳单元Shell可以大幅减少网格数量实体结构则用四面体或六面体单元。关于单元尺寸我的经验值是箱体钣金用2-4mm壳单元电芯等效块用5-10mm实体单元液冷板流道需要至少0.5-1mm的网格分辨率才能捕捉流速变化。但这只是起步值关键还是要看温度梯度和应力梯度。如果某个区域温度变化剧烈就加密网格如果应力集中出现在倒角处局部细化。网格质量检查是绝对不能跳过的环节。我通常会看三个指标偏斜度Skewness、长宽比Aspect Ratio和正交质量Orthogonal Quality。对于四面体网格偏斜度尽量小于0.85低于0.5比较理想长宽比控制在5以内正交质量不低于0.15。如果发现有单元超出这些阈值优先检查几何是否有尖角或者破碎面而不是直接在网格工具里硬调。硬调出来的单元即使指标勉强过关求解时也可能出现收敛问题。3. 电芯生热与传热路径温度场仿真模型的搭建思路3.1 材料参数别照抄手册比热容与导热系数的来源电池包热仿真的第一步是定义材料参数。很多人习惯直接翻材料手册抄一个导热系数但电池包里的电芯是复合结构正极、负极、隔膜、电解液叠在一起等效导热系数高度各向异性。拿方形铝壳电芯来说面内方向沿极片方向导热系数一般在20-30 W/(m·K)而厚度方向沿叠片方向只有0.5-1.5 W/(m·K)。在仿真里如果按各向同性处理温度场会完全失真。比热容同样需要谨慎。电芯的等效比热容大约在800-1200 J/(kg·K)之间具体的数值取决于电芯的化学成分和结构比例。最稳妥的方式是让电芯供应商提供实测值或者自己用DSC差示扫描量热仪测。如果没有条件实测用经验值建模时要留足余量并在对标阶段验证。变温材料参数也是个容易忽略的点。电解液在低温下黏度升高电芯内阻增大导致低温充电时生热率急剧上升。如果仿真工况覆盖-20℃到45℃建议把比热容、导热系数设置成温度相关的函数哪怕用线性插值也比恒值靠谱得多。3.2 生热率怎么算从内阻模型到等效电路模型热仿真的热源来自电芯的产热功率。最常用的工程近似是Bernardi生热模型Q I × (U_ocv - U_t) - I × T × (dU_ocv/dT)简化后就是 Q ≈ I² × R_eff其中R_eff是等效内阻包含欧姆内阻和极化内阻。这个公式看着简单但关键在R_eff怎么取值。内阻不是常数它随SOC荷电状态和温度变化在低SOC和高倍率放电时明显增大。我在项目中一般用两种方式处理。第一种是查表法从电芯规格书或者实验数据中提取不同SOC、不同温度下的直流内阻DCIR做成二维插值表在CFD软件里用UDF或者插值函数调用。第二种是建等效电路模型在MATLAB Simulink里搭一个一阶RC等效电路模型通过HPPC混合脉冲功率特性测试数据辨识R0、R1、C1参数然后输出生热率随时间变化的数据导入热仿真软件作为热源。这两种方式推荐结合起来用。等效电路模型适合做全工况扫描比如模拟一个完整的WLTC循环或者快充策略查表法更适合单独标定某一稳态工况。需要注意的是生热率曲线通常不是均匀的同一个电芯在不同位置温度不一样内阻也不一样严格来说每个电芯网格节点都应该有独立的生热率。实际工程中为了控制复杂度往往把一个电芯当成一个均匀热源或者把电芯分成几个区段分别赋生热率这精度损失通常在可接受范围内。3.3 边界条件与接触热阻的设置要点热仿真的边界条件包括三类冷却边界、自然对流边界和热辐射边界。冷却边界的核心是对流换热系数这个值最好不拍脑袋拍出来而是从小尺度CFD计算或者实验测定中获取。液冷板表面与冷却液之间的对流换热系数通常在1000-5000 W/(m²·K)量级而自然对流的换热系数只有5-25 W/(m²·K)两者差了两个数量级边界给错计算结果基本不可用。接触热阻是电池包热仿真中最容易踩坑的地方。电芯与模组侧板之间、模组与液冷板之间、导热垫与液冷板之间都存在着接触热阻。这些接触界面的热阻有时比导热垫本身的热阻还要大。导热垫的导热系数虽然标称3 W/(m·K)但实际装配中因为压缩率不足、表面不平度界面热阻可能让有效导热系数打对折。处理方式有两种一是在接触面定义Contact Resistance直接在界面加一个热阻值二是把导热垫建模成实体并通过调整其等效导热系数来表征接触不良。经验值上导热垫与液冷板之间的界面热阻可以取20-80 K·cm²/W具体数值要结合实验对标来修正。如果对标下来温度偏差超过2-3℃优先检查接触热阻的设置。热辐射边界在自然冷却工况下不能忽略。电池包箱体外表面温度升高后辐射散热量占比可以到总散热量的15%以上。在CFD软件中打开Surface-to-Surface辐射模型设置好发射率箱体喷漆表面通常取0.8-0.9即可。如果做液冷工况辐射的影响相对较小可以适当简化。4. 液冷流场仿真CFD收敛判断与网格无关性验证4.1 风冷 vs 液冷建模差异在哪里电池包的热管理方案无非两种风冷和液冷。风冷方案建模的重点在风道设计气流从风扇进口进入经过电芯之间缝隙带走热量。这种方案对流换热系数低通常在20-100 W/(m²·K)对散热能力要求高的场景撑不住但胜在结构简单、成本低。液冷方案目前是乘用车和储能项目的主流建模重点在液冷板流道和冷却液分配。液冷的对流换热系数高能到1000 W/(m²·K)以上但代价是冷却液的流阻要仔细核算不然水泵选型会出问题。液冷板的流道几何有冲压板式、口琴管式、蛇形管式等几种流道形式不同压降和温度均匀性差异很大。CFD建模时风冷和液冷的核心区别在于流体域的抽取方式。风冷是把电池箱内部空气域抽出来当流体域液冷则是把液冷板内部的冷却液流道抽出来当流体域。抽取流体域最常用的操作是在SpaceClaim里使用“Volume Extract”功能或者把实体做布尔减运算。抽取后的流体域需要单独导出与固体域分开划分网格。4.2 湍流模型、流量边界与收敛判断液冷板流道中的冷却液流速通常在0.2-1 m/s流道水力直径在2-10mm算下来雷诺数大多在2000-20000之间属于过渡流到湍流。项目里用得最多的是k-epsilon湍流模型搭配标准壁面函数。如果流道尺寸小、流速低建议切换到SST k-omega模型在近壁区解析更准但计算成本会高一些。边界条件设置上我一般用质量流量入口和压力出口。入口流量根据系统总流量除以并联流道数量估算温度出口不需要特别设置求解器会根据能量方程自动算出。如果模型包含多块液冷板并联入口分流不均的问题就要靠CFD算出来。这个非常重要因为实际项目中并联各支路的流量分配很少是均匀的流阻小的支路流量大流阻大的支路流量小而这直接影响各冷却板之间的温度均匀性。收敛判断是CFD里最容易犯迷糊的地方。不要只看残差降到1e-4就开心地认为收敛了残差只是参考。更靠谱的做法是监控几个关键物理量入口出口压降、电芯最高温度、冷却液出口平均温度。当这些监控值在迭代过程中不再变化波动小于0.1%时才基本判定收敛。如果压降振荡一直不消多半是湍流模型参数或者边界层网格的问题。我习惯在计算前先做一个“冷态验证”关闭能量方程只算流场看压力场和速度场是否合理。这一步能快速排查边界条件和网格问题避免在耦合传热计算时浪费时间。冷态流场稳住了再打开能量方程做共轭传热计算收敛速度和稳定性都会好很多。4.3 网格无关性验证实操网格无关性验证是每个认真做CFD的人都躲不过去的步骤。简单说就是换不同密度等级的网格分别计算看结果是否随网格加密而稳定。如果加密网格后温度仍在明显变化说明当前网格分辨率不够结果不可信。实操流程是准备三套网格。以液冷板模型为例基础网格尺寸设1mm细网格0.5mm更细网格0.25mm。三套模型分别计算记录电芯最高温度、压降和平均换热系数这三个量。如果从1mm到0.5mm结果变化了5%从0.5mm到0.25mm变化只有0.5%说明网格已经基本收敛可以选择0.5mm网格作为最终计算配置。这个步骤虽然耗时但是值得做。我在实际项目中见过不少因为网格没收敛导致温度差5-8℃的情况这种误差在工程判断上足以改变设计方向。边界层网格的质量也直接影响近壁换热计算。第一层网格高度y需要控制在1-30范围内。如果配的标准壁面函数y在30-300之间是可以接受的如果用低雷诺数模型y最好接近1。第一层网格高度可以用经验公式估算Δy y × μ / (ρ × u_τ)其中u_τ是壁面摩擦速度μ是动力黏度ρ是密度。实际计算中可以先按1e-4m到5e-4m的初始值画跑完流场看y分布再调整。5. 热-流-结构耦合的数据传递从温度场到热应力的映射5.1 温度场从CFD网格映射到结构网格的原理做完CFD热仿真拿到的是流体-固体耦合计算后的温度场。很多项目做这一步就结束了但如果要评估电池包在温度作用下的结构强度和变形还得把温度场导入结构分析软件。这一步是“多软件协同”最容易出问题的环节。CFD网格和结构网格几乎不可能一致。CFD网格通常更密尤其在近壁区结构网格则按照应力梯度规划两者节点位置完全错开。映射的原理就是把CFD网格节点上的温度值通过插值算法传递到结构网格节点上。常规插值方法有最近邻插值、反距离加权插值、径向基函数插值等。ANSYS Workbench里的“Imported Load”功能就是做这个的背后会根据网格距离自动选择合适的插值方式。实际操作中最常见的报错是“Source and Target mesh mismatch”也就是源网格和目标网格差异太大插值失败。解决办法一个是加大插值搜索半径另一个是确保两个模型使用相同的坐标系和单位。我曾经遇到过CFD软件里坐标原点在箱体中心结构软件里坐标原点在整体坐标系角落导致温度场整体偏移的情况。检查坐标系的正确性比反复调插值参数更有效。5.2 热应力计算中的固定约束与自由膨胀处理热应力计算有一个关键原则纯温度载荷下物体如果自由膨胀不会产生热应力。热应力是因为结构受到了约束或者不同材料膨胀系数不匹配才产生的。所以设置约束时要考虑真实的装配状态。电池包箱体在整车上通过吊耳固定在车身框架上安装点通常是固定约束而其他位置允许自由膨胀。在结构分析里需要在吊耳螺栓孔处施加固定约束或适当简化模拟真实的边界。如果约束加多了比如把整个底面都固定死计算出来的热应力会明显偏大得到的结果会误导设计。热膨胀系数CTE也是热应力计算的敏感参数。铝合金箱体的CTE大约是23e-6/K钢制螺栓的CTE约12e-6/K两种材料在温度变化时膨胀量不同会在连接区域产生局部应力。电芯模组多用铜和铝的连接排铜铝之间的CTE差达到约40%以上在电流通过和温度波动工况下容易在连接部位产生热疲劳应力。仿真中如果只把电池包当成一个均质体会完全丢掉这些局部风险。所以模型里至少要把箱体、模组端板、液冷板、铜铝连接排这些不同材料区分开赋予各自的CTE。5.3 从结构变形到光学分析的思路迁移结构仿真算出来的变形和应力结果常规用途是强度校核但在某些场景下还需要继续往外传递数据。比如我接触过的一个项目电池包侧壁上方安装有摄像头或传感器支架结构在温度变化下的微小变形会导致光学元件位置偏移影响成像质量。这种情况下结构软件算出的节点位移场需要导入光学仿真软件比如Zemax中作为镜片或传感器的面形和位置偏差输入。在Zemax这类光学软件中通常的做法是把变形后的坐标写入镜面的矢高表Sag table或者使用网格矢高面Grid Sag Surface再把结构分析得到的Z向位移数据按网格节点顺序导入。导入前还需要做一次坐标变换和单位归一化因为光学软件里用的是毫米或微米量级的坐标精度。这个思路虽然不是电池包仿真的主流但反映了多软件协同的一个通用逻辑前一个物理场的结果经过格式转换会成为后一个物理场的输入。这种跨软件的数据传递靠人工在软件界面里一点一点导入导出会非常痛苦。项目里可以用一些辅助工具比如对Fluent导出的温度数据用Python脚本转换成Abaqus/ANSYS能识别的格式再写一套正则表达式清洗数据。如果公司有条件用ANSYS Workbench的System Coupling或者MPCCI这类专业耦合平台会更省心这类工具的价值就在于把插值、坐标对齐、格式转换变成标准化流程减少人为操作引入的错误。6. 对标实验与偏差排查让仿真结果真正可信6.1 台架测试与仿真对标的关键点仿真做得再漂亮没有实验对标就是空中楼阁。电池包热仿真最常见的对标方式是台架温升测试在电芯表面、液冷板进口出口、箱体外部布置热电偶按给定工况充放电并记录温度数据然后与仿真结果对比。对标前需要确认几个前提实验和仿真的初始温度必须一致、环境温度边界必须一致、充放电电流曲线必须一致。很多偏差都来自这些“边界不一致”而不是仿真模型本身的问题。比如说实验时环境温度是25℃但仿真里设置的自然对流边界参考温度是20℃这个5℃的偏差会线性叠加在结果上。对标的评价指标通常包括稳态温升、温升速率、最高温度点位置、进出口温差、压降。重点关注最高温度点的位置。如果仿真得到的最高温度出现在电芯中心区域而实验测到的高温点出现在极耳附近说明产热模型的来源分布可能不对极耳的接触电阻产热被忽略了。6.2 偏差的常见来源与调参顺序对标后存在偏差不用慌张但要按顺序排查。我总结的经验是先查边界条件再查热源输入最后查材料参数。这个顺序很重要因为边界条件的错误通常是全局性的会导致所有测点温度整体偏高或偏低比较容易识别热源问题会导致温度分布形态失真材料参数问题则表现为局部温度梯度的偏差。具体来说如果仿真温度整体比实验高5℃以上先确认是不是自然对流系数设置得太保守、散热被低估了。如果局部温差出现偏差再看接触热阻是否合理。如果充放电过程中温度曲线的斜率与实验不一致那多半是电芯比热容设置偏差或者生热率曲线不对。接触热阻是热仿真中最“玄学”的参数因为没有统一的公开数据集不同厂家、不同装配压力下的界面热阻差异很大。正确的做法是先按经验值计算再根据一组对标结果反算校准最后用另一组不同工况的测试来验证校准后的参数是否可靠。6.3 仿真报告的工程化表达最后聊几句仿真报告。做仿真的最终目标是给结构工程师和热管理工程师提供可执行的设计建议。所以报告里不要堆砌云图要把三个问题说清楚第一当前设计是否满足指标第二如果不满足瓶颈在哪里第三修改哪个参数影响最大。我的习惯是在报告里放一张“设计参数影响表”把液冷板流量、冷却液入口温度、导热垫导热系数、电芯间距这些参数对最高温度和压降的影响定量列出来。这种表格比十张云图都管用因为工程师可以直接根据它做方案权衡。仿真报告不是研究论文它是设计决策的输入。7. 项目复盘里的几点实在经验这个锂电液冷仿真项目前后跑了大概两个月中间返工了几次最后能按期交报告靠的是一套稳定的工作流程。复盘下来有几条经验我觉得特别值得分享。第一多软件协同一定要提前规划数据交接格式。项目开工时最好就先约定好几何模型用什么格式导出、坐标系是什么方向、单位是毫米还是米、网格导入后零件名称怎么识别。这些接口问题不提前统一后面每一步都会踩雷。我和团队内部现在做了一个简单的Checklist每次换软件前先确认一遍效率提升非常明显。第二网格划分的时间占比要心里有数。一个中等复杂度的电池包模型从几何清理到网格完成大概要占到整个项目周期的40%。这部分工作单调但极影响结果建议用批处理工具把重复操作自动化。HyperMesh里的Tcl脚本、Ansys里的journal文件都可以用来记录操作步骤并回放能节省大量时间。第三仿真结果的可靠性最终要向实验看齐。我见过太多项目拿着没有任何对标的仿真高温点去改设计结果方向完全错了。如果你所在的公司不具备台架测试条件至少也要用文献里的公开测试数据做一个定性验证。对任何超出经验范围的仿真结果都要保持怀疑。最后说一个我自己常用的绝招仿真过程中的每一步都保存“中间状态文件”。从清理后的几何、到初始网格、到收敛的CFD结果、到插值映射后的结构计算模型全部按版本存档。这么做的好处是当后面需要对比不同设计方案的差异时不需要从头再算一遍直接把对应的中间文件调出来修改局部参数就可以。这个习惯帮我节省过太多时间强烈推荐所有做多软件协同仿真的人养成。
返回列表