ARTICLE DETAIL

资讯详情

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

基于Comsol的18650圆柱电池模组液冷散热仿真建模全流程

基于Comsol的18650圆柱电池模组液冷散热仿真建模全流程 1. 项目背景与目标为什么选择18650液冷模型做新能源热管理这几年我最大的感受是18650电池的散热问题是被很多工程师低估的一道坎。18650单体容量小但为了凑出足够的电量电芯数量往往几十上百个排列紧密。你想象一下一个20Ah左右的模组里面密密麻麻挤着几十颗圆柱电芯工作的时候发热量集中在小体积里如果换热跟不上电芯之间的温差会迅速拉开带来的直接影响就是容量衰减不一致循环寿命缩短极端情况下还有热失控风险。对于这种圆柱电池模组目前工程上最常见的散热方式就是风冷和液冷。风冷结构简单、成本低但空气的比热容小、换热系数也低在高倍率放电场景下基本是杯水车薪。我之前做过一个风冷方案5C放电的时候电芯表面温度能冲到70℃以上完全压不住。液冷就不一样了冷却液的比热容和导热系数比空气高一个数量级单位体积能带走的热量多得多配合合适的流道设计能把电芯表面温度控制在很理想的范围内。这也是为什么现在储能和动力电池系统里液冷逐渐成为主流方案。这篇文章要讲的就是我在Comsol 5.6里搭建18650圆柱锂电池模组液冷模型的完整过程。Comsol的多物理场耦合能力是它最大的优势——电池产热、固体传热、流体流动、共轭传热这些物理过程可以在同一个模型里直接耦合求解不需要像传统做法那样在CFD软件和热分析软件之间来回导数据。这篇文章适合刚入门电池仿真的学生也适合正在做电池包散热设计的工程师。我会把建模思路、参数设置、网格划分、求解和后处理全部拆开讲包括我不止一次踩进去的坑。等你看完应该能照着这个思路搭出自己的一套模组液冷模型。从设计目标上说我要做的这个模组是4并5串的结构一共20节18650电芯排布在一个液冷板上。液冷板内部走的是蛇形流道冷却液从一端流入从另一端流出通过铝板把电芯的热量带走。整个模型的目标很简单在3C连续放电的工况下把电芯最高温度控制在45℃以内模组内电芯之间的最大温差控制在5℃以内。这个指标在电芯热管理设计里是比较常见的工程要求。2. 几何建模细节从单体电芯到完整模组2.1 电芯几何的取舍为什么用简化圆柱体很多人第一次在Comsol里画18650电芯的时候会纠结要不要把电芯内部结构画出来——隔膜、卷芯、极耳、电解液这些全部建出来确实很炫酷但计算量会爆炸。我的建议是在模组级别的仿真中电芯内部一律用等效均质模型。也就是说把18650电芯直接简化成一个直径18mm、高度65mm的圆柱体内部的发热看作均匀分布的体积热源。为什么可以这么干因为我们在做的是模组热场分析关注的是电芯之间、电芯与液冷板之间的温度分布和换热效果而不是电芯内部从卷芯到外壳的径向温差——那个属于电芯单体的微观分析范畴是另一个模型要考虑的事。在Comsol 5.6里具体操作就是在几何组件里添加一个圆柱体半径9mm高度65mm位置放在原点附近。然后通过阵列功能复制出20个。这里建议用工作平面和位移阵列配合先把一个电芯摆正然后沿着X方向复制4个再沿着Y方向复制5次这样20个电芯的位置关系一次就能搞定不会出现手滑放歪了的情况。2.2 液冷板的建模蛇形流道的两种画法液冷板是整个模型的换热核心。我用的方案是一块铝板外形尺寸250mm×160mm×10mm内部挖出一条蛇形流道。流道截面我用了矩形截面宽6mm、深4mm这样既保证了流量又不会让铝板本身的厚度过于吃紧。在Comsol里画蛇形流道我试过两种方法效果都不错第一种是工作平面绘图法。在铝板的上表面建一个工作平面然后在平面上用样条曲线和直线段画出蛇形路径再通过拉伸操作把这根线拉伸成实体。这个方法的优点是草图自由度很大流道形状想怎么弯就怎么弯适合非标准流道设计。第二种是参数化曲线法。如果你知道流道的转弯半径和直线段长度可以直接用参数方程来生成流道中心线再用扫掠功能生成整个流道实体。这个方法适合你需要频繁修改流道尺寸的情况参数一变几何自动更新。我这次用的第一种方法。画草图的时候有个细节要留意流道两端一定要留出足够的直线段作为入口和出口的延伸段否则后面在设置边界条件的时候入口和出口会跟流道内部的弯道纠缠在一起很难选出来。流道实体画出来之后用布尔差集把它从铝板里剪掉这样液冷板就变成了一个有流道空腔的实体。这里要特别注意做完差集之后流道的壁面应该是铝板的内部边界不要让流道变成一个独立的域。2.3 装配体与共享边界这里最容易选错20个电芯和液冷板都建好之后下一个关键操作是决定它们之间的拓扑关系。Comsol里有两个选项一个是形成联合体一个是形成装配体。如果你用的是形成联合体所有实体会被合并成一整个域彼此重叠的地方会被自动处理掉域之间默认共享边界。如果你的电芯底面和液冷板表面是严格贴合的用联合体其实最简单传热自动连续不用额外定义界面条件。但真实场景里电芯和外壁之间通常还有导热硅胶垫或者导热硅脂存在一个接触热阻。这种情况下我更推荐形成装配体。装配体保留了各个域之间的原始边界你可以在电芯底面定义一个接触热阻边界条件模拟导热硅胶垫的影响。Comsol 5.6的装配体配合对功能能够自动识别相接触的两个面并建立配对关系然后你可以在这个对上加载接触热阻。这个操作在联合体模式下是做不了的。我这次选择了形成装配体因为在工程实际中电芯和液冷板之间几乎没有直接刚性接触的总要有一层导热填充材料来消除装配空隙。不考虑接触热阻的话仿真出来的电芯温度会偏低给你一个过于乐观的结论。2.4 边界条件的初始设定几何准备妥当开始设置物理场之前先把边界条件大致理一理电芯顶面和侧面设置为自然对流辐射散热环境温度25℃表面发射率0.8。液冷板底面和外侧面设置为绝热假设液冷板安装在底壳支架上对外传热很少。电芯底面与液冷板上表面接触热阻边界热阻值设为2×10⁻⁴ m²·K/W对应的导热硅胶垫厚度约0.5mm导热系数2 W/(m·K)。流道入口流速入口流量按总流量1L/min折算。流道出口压力出口相对压力为0。这里想特别提醒一下入口的流量单位很容易搞错。Comsol里如果你用的是层流接口入口如果选择了充分发展的流动给定的是平均速度如果你用的是拓扑中直接给体积流量需要自己换算成平均流速。流速体积流量/管道截面积这个换算在设置参数时一定要写清楚否则流量差一个数量级冷却效果全变了。3. 材料参数与多物理场耦合电芯产热是怎么进到流场里的3.1 18650电芯的等效热导率各向异性必须建18650电芯内部结构决定了它的导热是各向异性的。沿着轴向Z方向卷芯和极耳是连续的金属导热链路更顺畅而径向X、Y方向热量要穿过隔膜、电解液、卷绕层导热能力差很多。我在Comsol里设置电芯材料参数时用的是自定义材料参数数值说明密度2700 kg/m³等效密度比热容900 J/(kg·K)等效比热径向导热系数1.2 W/(m·K)代表隔膜电解液卷芯的径向热阻轴向导热系数3.5 W/(m·K)代表极耳/集流体方向导热看到没有轴向是径向的三倍。如果不设置成各向异性而是给一个均匀导热系数算出来的电芯内部热量传递路径会明显失真电芯表面的热点位置可能都会偏移。设置方法是在材料定义里选择各向异性热导率填入kxx、kyy、kzz三个分量。径向两个方向可以相等轴向单独设。3.2 生热率恒定热源还是温度相关热源电池的发热量不是恒定的。放电过程中极化内阻会随温度和SOC变化真实情况下应该用NTGK方程或者等效电路模型去算实时产热。但如果是做模组级别的热场验证刚开始没必要把电化学模型和热模型全部耦合在一起那样计算量太大而且很多电化学参数你还拿不准。最稳妥的做法是先按恒定体积热源来算。以18650电芯为例单节电芯容量按2.5Ah计算标称电压3.6V。做3C放电电流就是7.5A。假设电芯内阻在30mΩ左右那么产热功率大约P I² × R ≈ 7.5 × 7.5 × 0.03 ≈ 1.69W这是在当前内阻下的焦耳热。实际电芯还有反应熵热和极化热为了留出设计余量我把单节产热功率按2.5W来算。电芯圆柱体积约 V π × (0.009)² × 0.065 ≈ 1.65×10⁻⁵ m³。所以体积生热率大约是 2.5 / 1.65e-5 ≈ 1.5×10⁵ W/m³。在Comsol里的固体传热物理场中直接给电芯域加一个热源节点填上体积生热率。这样一个初始模型就跑起来了。等后续有实测数据或更精确的电化学参数再把这个恒定热源替换成查表函数让产热量随SOC和温度变化效果会更真实。3.3 多物理场耦合共轭传热到底在传什么Comsol 5.6里做电池液冷仿真最核心的多物理场组合就是共轭传热它实际上是由两个物理场接口拼起来的流体传热和固体传热。流体传热负责计算冷却液里的热量传递包含了对流项和导热项也就是能量方程 ρCp (u · ∇T) ∇ · (k∇T) Q其中u就是流场的速度矢量这个速度是从流体流动接口层流或湍流传过来的。固体传热算的是铝板和电芯实体的传热不含对流只有导热 ∇ · (k∇T) Q 0这两个接口在流固交界面处自动耦合保证温度和热通量的连续性。这也是Comsol做热管理比单物理场CFD软件更方便的地方——你不需要手动在边界上交换热流数据软件内部已经帮你把这件事情处理好了。流体流动部分我用的是层流接口。为什么不用湍流先算一下流道里的雷诺数。矩形流道水力直径约5mm冷却液流速我们控制在0.2m/s左右水的运动粘度约1×10⁻⁶ m²/sRe v × D / ν ≈ 0.2 × 0.005 / 1e-6 1000雷诺数只有1000远不到2300的层流-湍流转捩点。所以层流模型在这个流量范围内是成立的。如果你把流量调大到流动明显进入湍流区再考虑切到湍流接口不然凭空增加非线性求解难度纯属给自己找麻烦。3.4 接触热阻数据一定要来自实测在装配体模式下电芯底面和液冷板表面是相互独立的边界。在固体传热物理场里添加接触热阻边界条件并选中这两个面形成的对。接触热阻的取值我一直强调要慎重。导热硅胶垫标称导热系数可能有3W/(m·K)、5W/(m·K)但实际使用中因为接触压力不够、表面粗糙度不匹配实测等效热阻往往比理论值大不少。我这次取2×10⁻⁴ m²·K/W换算下来相当于1mm厚的导热系数为5W/(m·K)的硅胶垫的理想热阻。如果你的实际装配里用的是0.5mm的垫子这个值可以再往下调一些。这个参数对计算结果影响很大。我第一次跑的时候把接触热阻设成0也就是理想接触算出来的电芯最高温度只有38℃。后来加上2×10⁻⁴的热阻温度直接升到了42℃以上。所以这个值真的不是细节而是决定仿真精度的关键参数。有条件的话最好实测。4. 网格划分策略扫掠网格加边界层的黄金组合4.1 为什么扫掠网格在圆柱和流道上是神器Comsol 5.6的网格划分模块有很多种类型但在这个模型里我最推荐的是扫掠网格。为什么因为整个模型的几何体基本都是拉伸体——电芯是圆柱体铝板是长方体流道虽然有弯曲但也是由同一根路径扫掠出来的。扫掠网格的思路是在顶面和底面生成形状相同的二维网格然后沿拉伸方向一层一层地推出来。这种网格正交性好长宽比可控对圆柱和流道这种几何能用很少的网格数量达到很高的计算精度。相比之下如果直接用自由四面体网格流道弯道处会产生大量畸变严重的四面体计算量猛增收敛性反而变差。实际网格参数电芯域扫掠网格顶面最大单元尺寸设置为2mm扫掠层数为10层。整体网格数大约2万每根电芯。铝板域扫掠网格最大单元尺寸4mm。流道域扫掠网格截面网格最大单元尺寸1mm。全部加在一起我这个20电芯模组的网格量控制在80万以内在八核工作站上跑稳态只需要几分钟瞬态一步大概十几秒。这个效率对日常设计迭代是完全够用的。4.2 边界层网格换热系数准不准就看这几点很多人做液冷仿真网格数量没少加但算出来的电芯温度就是偏高或偏低不是换热不足就是过于理想。问题往往出在流道壁面的边界层网格上。流体在壁面处因为黏性力作用会形成一个速度从零到主流速度的边界层。热量要从流体传到壁面必须穿越这个边界层而边界层里主要是导热而不是对流传热。如果网格没有在壁面附近加密到能捕捉边界层温度梯度的程度算出来的换热量就会严重偏低。在Comsol里给流道加边界层网格的操作是在网格序列里添加边界层节点然后选择流道的内壁面。边界层属性设置边界层厚度0.5mm边界层数5层拉伸因子1.2这几层网格会把近壁区的速度梯度和温度梯度比较精确地描述出来。实测下来加了边界层之后计算的壁面换热量比不加边界层能高15%到20%这个差异在工程判断上足以改变结论。所以网格划分这一块我的固定套路是先指定扫掠序列再叠加边界层最后检查网格质量。检查的时候重点看单元质量的最小值正常情况下最小单元质量应该在0.1以上如果出现大量的负体积或者畸变单元优先回去检查几何是否有细小尖角。4.3 网格无关性验证别等算完才发现网格差一截网格不是说越密越好。我一般会做三组网格粗网格、中网格、细网格比较关键位置的温度。如果中网格和细网格的结果差异在1℃以内说明网格已经收敛了。我这个模型里把网格数量从40万加到80万最高温度变化只有0.6℃说明80万的网格量已经足够后续继续做参数扫描了。5. 求解设置与后处理怎样才算算完了5.1 稳态、瞬态和预热不同的工况要分开求解电池热管理仿真通常有两种工况要考察一种是连续恒功率放电关心的是长时间运行后的稳态温度分布另一种是瞬态过载或急加速工况关心的是峰值温度出现在什么时候。我建议先算稳态。稳态计算最大的好处是收敛判断简单解稳定不容易出现瞬态计算中因为初始场不对而发散的问题。稳态跑通之后再把稳态结果作为瞬态的初始值去计算电池从初始温度25℃开始、3C倍率放电1800秒的温度变化曲线。具体在Comsol 5.6里的设置方法是添加两个研究——第一个研究做稳态第二个研究做瞬态。在瞬态研究的因变量值设置里选择来自上一个研究这样瞬态就能从稳态的结果场出发开始计算。瞬态求解器的时间步我没用默认的完全自由步长而是设置了BDF后向差分公式最大步长设为10秒。BDF对刚性问题更稳定不像广义α法在某些时间段可能出现震荡发散。5.2 后处理一眼看清问题在哪求解完成只是第一步会看结果才是仿真工程师的看家本事。Comsol的后处理工具非常强大我重点用三类体积图在三维视图里直接画出整个模组的温度分布。着色按照温度从蓝到红渐变一眼就能看出有没有某个电芯存在明显的高温热点。切面图在流道中心做一个纵向切面看冷却液在流道里流动时温度的逐步爬升情况。这个图能反映液冷板换热能力的极限位置——通常是冷却液已经走完了大半程、温度已经升高、换热效率下降的出口附近区域。截线图沿电芯的轴向画一条截线看电芯从底部到顶部的温度分布曲线。正常设计下底部接到液冷板的温度应该最低顶部温度因为离冷源远会高一些。如果你发现顶部比底部高了五六度说明液冷板只能冷却电芯底部这种方案对于高倍率放电的电芯可能是镇不住场的需要考虑双面冷却或者侧面环绕冷却。5.3 压降怎么看冷却液的流动阻力也是设计要控制的指标。压降太大会导致水泵功耗过高整个系统的效率就打折扣了。在Comsol里查看流道压降很简单用体平均操作分别算出入口截面和出口截面的平均压力相减就是压降。我这个蛇形流道在1L/min的总流量下压力降大约是2300Pa左右这个量级对车载水泵来说非常轻松。如果你发现压降大到了几十千帕就要考虑是不是流道转弯半径过小导致局部阻力过大或者流道截面太窄。6. 实测结果与调试经验那些不容易被写进文档的坑6.1 第一次求解失败手动迭代的救场方法我第一次跑这个模型的时候网格也画好了边界条件也设置了结果求解器没算几步就开始报找不到收敛解要不就是干脆因变量超出定义域。排查下来问题主要出在初始值给的太离谱。流场的初始值如果默认给的是零速度场BDF求解器在第一步就要从零开始建立对流场再加上冷却液从入口径直冲到流道弯道上局部流速梯度极大非常容易发散。解决办法也简单分两步走第一步先用稳态求解器加辅助扫掠把入口流速先设成设计值的1/10算完收敛后再用这个结果作为全流量工况的初始猜测。实际操作下来这种逐步增加载荷的方式几乎不会出现发散。6.2 1℃的误差可能来自接触热阻有一次我把液冷板入口水温从25℃调成30℃结果电芯温度的非预期升高一度让我以为是换热器能力不足排查半天最后发现是接触热阻参数表里引用的变量名被我不小心改掉了导致接触热阻实际变成了理想接触值导热硅胶垫的存在被完全忽略了。这个教训提醒我任何仿真软件里的数据都必须有一套清晰的变量管理逻辑。我现在的习惯是所有材料参数和边界条件都定义成全局参数放在参数表里统一管理不允许直接在物理场设置里填裸数字。这样后续修改和排查都方便很多。6.3 计算资源不够时的降阶方案如果你用的电脑性能一般80万网格也许偏大。这时候可以牺牲一些细节——流道网格最大单元尺寸放宽到2mm电芯扫掠层数从10层减到5层平均温度依然很接近只是热点细节没有之前清楚。比起精修网格更推荐的降阶方案是只建一个电芯加一段流道的周期模型利用Comsol的周期边界条件把一个14并模组收缩成一个单重复单元。计算量能压到原来的十分之一设计初期做参数扫瞄非常合适。等确定最优参数了再回来跑全模组验证。6.4 算出来不代表可靠仿真结论要能回答物理问题搞了这么久的仿真我的一个核心心得是仿真是用来缩小实验范围、指导设计方向的而不是用来替代实验的。这套18650模组液冷模型跑下来得到的温度分布和压降数字必须回到物理现实中问一句这个温度梯度合理吗这个压降对应的水泵选型是否合适边界条件是真实的还是我自己设定的理想值比如我把电芯顶面设置成自然对流和辐射但在实际Pack设计里电芯上方往往还有镍片、绝缘片、采集线的遮挡对流散热并不会那么理想。这时候仿真结果会比实际情况乐观。稳妥的做法是干脆把电芯顶面设置成绝热看最差情况下的温度再跟有散热的工况对比。两者之间的差值就是你在实测中能争取到的设计余量。这次整个模型折腾下来我对Comsol 5.6在电池热管理上的应用边界有了更清楚的认知。它不像Fluent那样在流体动力学细节上做到极致但胜在物理场耦合的灵活性和建模思路的直观性。一个从零开始的模组液冷仿真从几何搭建到出结果熟练的话一天以内就能完成这个效率对于工程方案迭代来说至关重要。最后再分享一个小经验给准备自己动手搭模型的朋友参数化是你最该花时间做的事情。把电芯间距、流道宽度、入口水温、流量全部设成参数每次改设计只需要改参数表重新计算自动出新的温度分布。不要为了图省事在几何里直接写死数字否则改一版设计整个模型要推倒重来那个效率才是真的低。
返回列表