ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Abaqus传热与热应力分析能力全解析:从稳态到耦合

Abaqus传热与热应力分析能力全解析:从稳态到耦合 Abaqus 传热与热应力分析(1) – 分析能力我最早接触Abaqus的传热与热应力分析不是从理论学习开始的而是被一个实际项目逼的——客户要求评估一台设备在长时间运行后机壳内部发热元件周围的温度分布以及因为温度不均匀产生的热应力会不会导致焊缝开裂。当时我的第一反应是“温度场计算不难难的是温度算完以后怎么把它变成应力分析的载荷”。后来把Abaqus的热分析能力从头到尾梳理了一遍才发现它在这方面的配套远比我想象中完整。这篇文章是这个系列的起点先把Abaqus在传热与热应力方向到底能干什么、有哪些分析类型、每个类型适用什么场景讲清楚。适合刚入门热应力仿真的结构工程师也适合那些已经在做纯力学分析、打算往热-力耦合方向扩展的人。后面几篇会陆续展开热源加载、接触传热、焊接残余应力、电子散热等具体案例但能力框架是必须先搭好的。1. 传热分析能力从稳态到瞬态的完整覆盖传热分析是整个热应力分析的前置基础温度场算得准不准直接决定了后面热应力计算的可靠性。Abaqus在这一块的能力覆盖比很多人想象的宽稳态、瞬态、线性、非线性全都支持而且可以和结构分析无缝衔接。1.1 稳态与瞬态两类核心分析场景稳态传热解决的是“长时间运行后温度不再变化”的问题。典型场景比如散热器在恒定功耗下的平衡温度、稳定工况下的发动机机体温度场。这类分析用Heat Transfer分析步时间是虚的最终只关心平衡状态。求解上相对简单因为方程里没有时间项收敛问题也少。瞬态传热则关心“温度随时间怎么变化”比如淬火过程中的冷速曲线、电子设备开机后的升温过程、焊接过程中的热循环。这类分析必须定义时间步、初始温度和材料的热物性随温度的变化关系计算量比稳态高一个量级。我平时做项目时一般先用稳态分析快速判断温度量级是否合理再用瞬态分析做精细化研究。这里有个经验要分享在Abaqus里稳态热分析和瞬态热分析用的是同一个分析步类型Heat Transfer区别只在于你有没有开启时间积分效应。具体来说瞬态分析在分析步设置里需要给定时间周期和增量步稳态则不用管时间。注意Abaqus的Heat Transfer分析步默认是瞬态的。如果你想做稳态分析把分析步的响应类型改成Steady State即可。新手容易在这里踩坑算出来的结果怎么都觉得不对其实是分析步类型选错了。1.2 三种热量传递方式在Abaqus中的实现传热的三种基本方式——热传导、热对流、热辐射——在Abaqus里都有对应的处理手段但难易程度差距很大。热传导是默认行为只要你定义了导热系数单元之间就会自动传热不需要额外设置。温度梯度越大、导热系数越高传导的热量越大这是所有传热分析的基础。热对流在Abaqus里用Film Condition膜条件实现对应的关键词是*SFILM。你需要给定两个参数膜系数Heat Transfer Coefficient和环境温度Sink Temperature。膜系数反映对流换热的强度它可以是常数也可以随温度变化甚至可以随坐标变化。自然对流和强制对流的区别本质就是膜系数的量级不同——自然对流一般在5~25 W/(m²·K)强制风冷可以到50~500 W/(m²·K)水冷更高。热辐射是最麻烦的。Abaqus提供了两种辐射处理方式一种是简化模型用SRAD或者等效辐射换热系数近似适合辐射不是主导热路径的场景另一种是Cavity Radiation腔体辐射通过RADIATE定义辐射面需要指定辐射系数Emissivity和环境温度。腔体辐射强非线性经常导致收敛困难后文问题排查里我会专门讲这块的坑。有一种常见误解以为做热分析就必须把三种传热方式全部定义上。实际工程里要根据场景判断主导机制比如自然散热的产品辐射占比往往不容忽视而强制风冷的系统很多时候辐射可以近似忽略。全定义上不仅增加计算负担还经常带来收敛问题。1.3 传热单元与网格适配传热单元的命名规则和应力单元很像但前缀不同。平面问题用DC2D3、DC2D4轴对称用DCAX3、DCAX4实体用DC3D8、DC3D10、DC3D20。这些单元的自由度就是温度没有位移自由度所以不能直接在上面加力学边界条件。热分析对网格的要求和结构分析不完全一样。温度场的分布通常比应力场更平滑所以对网格质量的要求略低但在温度梯度很大的区域——比如焊接熔池附近、淬火表面——仍然需要局部细化。高阶单元二次单元在热分析中的优势不如在结构分析中明显因为温度场是标量场线性单元配合足够细的网格就能得到不错的结果。还有一个很关键的点如果你计划做顺序耦合热应力分析热分析网格最好和应力分析网格保持一致这样可以省去温度场插值的环节精度也不打折。如果网格不一致Abaqus在映射温度场时会做插值处理虽然方便但会引入一定误差尤其是在温度梯度大的区域。2. 热应力分析的两条技术路线顺序耦合与完全耦合传热分析单独做没有太大工程意义大家更关心的是温度变化引起的热应力。Abaqus提供了两种热-力耦合思路理解清楚这两条路线的区别和适用场景是整个热应力分析中最关键的概念。2.1 顺序耦合先算温度场再做应力场最常用顺序耦合Sequential Coupling的思路很直白先用Heat Transfer分析步算出温度场随时间的演化然后把这个温度场作为预定义场Predefined Field加载到结构分析中从而计算热应力和热变形。在Abaqus/Standard中顺序耦合的核心操作是结构分析步里通过*Temperature或者Predefined Field来读入之前保存的温度场结果文件.odb或.fil。温度场会以节点温度的形式作为载荷施加然后结合材料的热膨胀系数计算热应变。顺序耦合成立的前提是温度场不受应力场影响。换句话说结构的变形和应力状态不会显著改变温度分布。这在绝大多数工程问题中是成立的——比如我们分析一个机箱外壳的热应力外壳的变形不会反过来影响内部发热元件的温度。焊接残余应力分析通常也采用顺序耦合因为焊接热过程主要由热输入和散热条件决定焊件变形对温度场的影响在焊接过程中往往可以忽略。顺序耦合的优势是计算效率高、稳定性好、各步骤可以独立调试。先单独把温度场算准再去做应力分析出了问题容易定位。这也是我最推荐初学者先用起来的方法。2.2 完全耦合温度与应力同时求解多物理场互相影响完全耦合分析Fully Coupled Temperature-Displacement Analysis则是在同一个分析步中同时求解温度场和位移场。它使用Coupled Temperature-Displacement单元比如C3D8T自由度既包含温度也包含位移。什么时候必须用完全耦合当应力场显著影响温度场的时候。典型的例子包括高速摩擦生热过程中接触压力影响接触界面的热流分布金属成型过程中塑性变形产生的热量反过来改变材料软化状态热轧、锻造过程中的变形热。这些场景里力学状态和热状态强耦合分开算就失真了。完全耦合的计算代价比顺序耦合大得多非线性也更强收敛难度成倍增加。关键是你需要判断问题到底需不需要这么复杂的耦合。我见过很多工程师一上来就用完全耦合问原因也说不出所以然只是觉得“耦合听起来更高级”。这样自找麻烦完全没有必要。能用顺序耦合解决的就用顺序耦合。做个类比顺序耦合相当于先拍一张照片再量照片里物体的尺寸完全耦合相当于直播中实时测量演员的身高。前者把过程分成了两个独立环节后者必须同步进行。如果演员在拍照时没有动量尺寸照样准确但如果演员一边拍照一边移动那就必须用直播方式了。2.3 绝热分析高速变形中的局部升温除了一般的传导型热分析和耦合分析Abaqus还支持一种特殊的绝热分析Adiabatic Analysis用于处理高应变率下材料因塑性变形而瞬时升温的问题。绝热分析的核心假设是变形速度太快热量来不及传导塑性功全部转化为局部温升。典型应用包括高速冲击、切削、冲压中的绝热剪切带模拟。这种分析不显式计算热传导而是在每个积分点上直接计算温升增量。绝热分析在Abaqus/Explicit中支持得特别好设置也比较简单——在材料属性里定义非弹性热分数Inelastic Heat Fraction通常取0.9和热容然后在分析步中开启绝热分析即可。配合热词里提到的“abaqus焊接仿真”注意绝热分析和焊接热分析是两回事焊接的变形速率低热量有充分时间传导必须用常规热分析不能套用绝热假设。3. 材料参数与前处理的工程细节热分析的前处理比纯结构分析多了一倍的材料参数而且这些参数大多是温度相关的非线性数据。这一块做不细后面的计算结果就是空中楼阁。我在实际项目中材料数据的整理花费的时间经常占到整个项目周期的三分之一以上。3.1 材料属性的完整清单与获取渠道我发现很多做结构分析的工程师第一次接触热分析时往往会忽略一些关键的材料参数。整理了一份清单你可以对照检查。参数符号单位说明导热系数kW/(m·K)温度相关金属随温度升高通常下降比热容cJ/(kg·K)温度相关某些材料相变时突变密度ρkg/m³通常视为常数热膨胀系数α1/K有瞬时值和平均值两种定义方式极易混淆对流换热系数hW/(m²·K)由环境条件决定不是纯材料属性辐射系数ε无量纲0~1之间取决于表面状态潜热LJ/kg相变分析时需要如熔化/凝固非弹性热分数η无量纲塑性变形转化为热量的比例通常取0.9这些参数从哪来金属材料的中文手册和数据表、MatWeb、ASM International的数据是常用来源。但一定要注意数据适用的温度范围很多手册给出的常温数据和高温数据差别很大外推使用会带来巨大误差。经验处理高温问题时一定要关注材料的导热系数和比热容随温度的变化。我曾经处理过不锈钢热应力问题如果使用常数的导热系数计算热应力结果比使用温度相关数据时低30%以上。高温下材料性能退化严重这个影响是实打实的。热膨胀系数的定义是个大坑。Abaqus中输入的通常是瞬时热膨胀系数Instantaneous Thermal Expansion Coefficient它定义的是某个温度点的瞬时膨胀速率。而很多材料手册给出的却是平均膨胀系数Average Coefficient它定义的是从参考温度到当前温度的平均膨胀应变率。两者混用会导致热应力结果完全错误。一个简单的检查方法用你定义的系数计算一下在某个温度下的热应变是否和实际测量值一致。3.2 初始条件、边界条件与热载荷的施加热分析的边界条件类型比结构分析多而且各有各的关键词和注意事项。初始温度通过*Initial Conditions, TypeTEMPERATURE定义指定节点或区域的初始温度场。如果是完全耦合分析还要考虑初始应力状态。瞬态分析中初始温度的准确性很重要它直接影响起步阶段的温度场演化。温度边界条件用*Boundary施加在节点上固定该节点的温度值。这和结构分析中固定位移的逻辑是一样的。注意温度边界条件可以随时间变化通过幅值曲线Amplitude定义升温或降温过程。热流密度有两种*CFLUX施加集中热流单位为WDFLUX施加体积热流或表面热流单位为W/m³或W/m²。焊接仿真中的移动热源通常用DFLUX结合用户子程序DFLUX实现这也是热词“abaqus焊接仿真”中最核心的技术点之一。在散热器设计中*CFLUX可以模拟芯片的发热功耗。对流边界用SFILM辐射边界用SRAD或者*RADIATE。辐射和对流可以同时施加在同一个面上互不冲突因为它们在物理上是并行传热路径。这里有一个细节需要注意施加对流或辐射边界条件时需要指定一个参考温度环境温度这个温度可以随位置变化也可以随温度变化。如果环境温度是空间的函数比如不同高度的水温不同需要定义空间分布的膜条件。3.3 接触传热热接触与间隙导热机械装配体中零件之间的接触面也是热传递的主要通道。Abaqus提供了两种接触传热方式间隙导热Gap Conductance和间隙热生成Gap Heat Generation。间隙导热定义的是接触面之间单位面积的热传导能力单位是W/(m²·K)。它的值通常和接触压力、间隙大小、温度有关。压力越大、间隙越小间隙导热系数越大。软件支持将间隙导热系数定义为接触压力的函数这样可以更真实地模拟装配连接面的导热行为。间隙热生成则是摩擦生热的来源。接触面上的摩擦功会转化为热量一部分进入两个接触体。这个功能在刹车、轴承、机械加工等工况的分析中非常重要。在CONTACT PAIR或CONTACT中定义摩擦和热生成参数后软件会自动计算摩擦热流并分配到两个接触体的表面。装配体热分析很容易忽略接触热阻的存在。如果零件之间是螺栓连接或者单纯的面面接触接触面两侧的温度会有明显跳跃。不做热接触设置的话两个零件会像一个整体一样传热温度场就会算得偏温和进而导致热应力被低估。这个误差在某些场景下能大到翻倍。4. 求解设置与效率优化热分析的求解设置和结构分析有不少差异尤其是瞬态分析和强非线性问题。做热分析的年轻工程师经常在这块翻车其实很多问题只要理解了背后的数值原理是能提前规避的。4.1 瞬态热分析的时间步控制瞬态热分析中时间步长的选择直接决定计算能否收敛和结果的精度。Abaqus/Standard的Heat Transfer分析步默认使用向后欧拉Backward Euler时间积分这种格式无条件稳定也就是说理论上不管时间步多大计算都不会发散。但是无条件稳定不等于结果正确。时间步过大时温度场的响应会被数值抹平瞬态的快速变化细节会丢失。一个简单的准则是在一个时间步内温度变化不应超过某个限度比如总温升的10%否则时间分辨率不够。以焊接热循环为例热源中心经过时温度在极短时间内迅速升降如果时间步设得太大峰值温度会被严重低估后续热应力结果也必然不准。实际工程中我常用的策略是设置初始时间增量较小总分析时间的1/100甚至更小最大时间增量为总时间的1/20~1/10让软件根据迭代情况自动调整。Abaqus的自动时间步算法在热分析中表现不错关键是给它一个合理的初始值和上下边界。对于温度梯度极陡的场景——比如激光加热、感应加热、表面淬火——时间步和空间网格必须同时满足分辨率要求。这里有个经验法则热量在单个时间步内传到的距离不应超过最小单元尺寸的1~2倍。也就是说时间步、热扩散系数和网格尺寸三者是绑定的不能单独调整。4.2 非线性求解与收敛策略热分析的非线性来源主要有三个材料热物性随温度变化、辐射传热的四次方定律、接触热导随压力变化。辐射传热的非线性是最棘手的。两个表面之间的辐射换热量与温度的4次方成正比导致方程组的非线性程度极高。当辐射是主传热路径时收敛往往很困难。我的经验是先在辐射系数较小的条件下算出一个初步解再逐步增加辐射系数到目标值这个过程叫逐步加载法在热辐射分析中非常有效。另外把辐射容差适当放宽默认1e-4我们可以放宽到1e-3也能改善收敛。材料热物性随温度变化带来的非线性虽然不如辐射剧烈但在大温差的场景下也必须启用非线性迭代。这里有个小技巧确保输入的温度-物性表不是台阶状跳跃的尤其是比热容在相变温度附近会急剧变化最好在相变区间内多插几个点让曲线平滑过渡。台阶状的输入数据相当于给求解器制造了一个硬非线性很容易导致迭代震荡。4.3 并行计算与GPU加速的实际效果热词里提到了“abaqus使用gpu加速”这里聊聊实际情况。Abaqus确实支持GPU加速但效果因求解器类型而异。Abaqus/Explicit显式中GPU加速效果相对明显因为显式求解的计算瓶颈在多物理场更新和单元积分上这些操作可以高度并行。但热应力分析如果用到Explicit通常是冲击、碰撞等动态问题不是典型的热分析场景。Abaqus/Standard隐式中的GPU加速效果就不那么显著了。Standard的求解瓶颈在稀疏线性方程组的分解和求解这部分操作对GPU的利用率有限。实测下来直接增加CPU核心数往往比加GPU更立竿见影。如果你在做大规模热分析并且内存充足优先考虑多核并行而不是GPU。另外热分析中有一个容易被忽略的效率问题瞬态分析需要输出很多时间帧的结果用于后续热应力分析。如果每个增量步都输出全部节点的温度.odb文件会变得巨大。建议通过*OUTPUT CONTROLS来控制输出频率把输出间隔设置成和分析步的时间增量一致而不是每个增量都输出能大幅减少I/O开销。5. 常见问题与排查技巧实录做热分析这些年踩过的坑不少有些问题几乎每个项目都会遇到。整理成速查表算是给后来者的一份避坑指南。5.1 热应力结果不连续网格映射与单元阶次不匹配顺序耦合分析中最常见的问题就是热应力结果看起来“一团糟”——应力云图有明显的跳变不符合物理规律。排查思路如下首先确认热分析和结构分析是否用了同一套网格。如果网格不一致温度场在映射时会产生偏差特别是在温度梯度大的区域应力结果容易失真。最稳妥的办法是统一网格。其次检查单元阶次是否匹配。热分析用一阶单元应力分析用二阶单元虽然Abaqus能处理但在温度插值精度上会有不匹配。一般建议热分析和应力分析使用同阶次单元。还有一种情况是温度场本身就不平滑——如果热分析网格太粗温度场本身就带锯齿应力分析结果自然不会光滑。这种情况下问题出在热分析阶段的网格密度而不是应力分析。5.2 辐射模型不收敛Cavity参数的设置陷阱腔体辐射模型经常出现不收敛的报错这是热分析中让新手最头疼的问题之一。排查思路先检查辐射面的法线方向是否正确辐射面的法线方向会影响视角因子的计算法线反向会让热量往错误的区域传递。再检查辐射系数是否设置过大从0.1开始逐步加大找到收敛极限。还要检查辐射空腔是否封闭——Abaqus的Cavity Radiation要求辐射面能形成一个封闭的腔体或接近封闭有明显开口时视角因子计算容易异常。如果实在收敛不了可以考虑用等效辐射换热系数来近似——用一个非线性膜系数替代辐射计算。虽然精度稍低但工程判断往往够用。这个方案在处理整体趋势性分析时非常实用。5.3 瞬态温度场振荡时间步长过大或网格过密瞬态热分析中出现温度振荡一个节点的温度在相邻增量步之间来回跳动通常有两种原因。第一种是时间步过大热的传播距离远超一个单元的尺寸数值解在空间上振荡。应对方法减小时间步长让每个时间步内的温度变化更平缓这点在降温阶段尤其重要。第二种反而是网格过密。当单元尺寸很小时热扩散的稳定极限时间步会变得很小如果配合显式时间积分会严重限制时间步长。虽然Abaqus/Standard的隐式算法没有这个限制但过密的网格在高梯度区仍然可能带来空间振荡。这时应该使用梯度自适应网格只在温度梯度大的区域加密。5.4 Job卡住或中断不了的应急处理Abaqus偶尔会出现Job卡住或者提交后无法正常终止的情况。这个问题排查起来不复杂但处理时间往往比较急迫。挂起中的作业最快的处理方式是用命令行输入abaqus terminate job作业名或者abaqus suspend job作业名。如果图形界面操作失效命令行几乎总能解决。如果Job已经崩溃但持锁文件.lck没有释放重新提交任务时会报“不能获得锁”。这时手动删除相应目录下的.lck文件即可但删除前要确认任务确实已经终止否则可能损坏数据文件。还有一步关键操作做热-力顺序耦合分析时如果热分析还没有完成就想在中途停止一定要先保存好Heat Transfer的.odb结果。之前遇到过同事心急强行终止了一个算到一半的热分析结果.odb不完整后面结构分析根本读不进去温度场只好从头再算白白损失十几个小时。5.5 孤立节点排查技巧热词里有个“abaqus如何找到没连接到任何单元上的节点”这个问题在做大型模型检查时非常常见。孤立节点是指虽然在节点集合中存在但没有被任何单元引用的节点。孤立节点会导致自由度凝聚不到总体刚度矩阵中热分析时这些节点的温度永远是初始值折射到结果中就会形成“局部冷点”或者“热阻”影响整个温度场的判断。检查方法很简单在Abaqus/CAE后处理里使用Mesh模块的“Verify”功能是不带节点连接检查的要写一个Python脚本遍历所有单元收集被引用的节点集合然后和全部节点集合做差集就能得到孤立节点列表再通过Display Group高亮这些节点手动删除或合并。热分析中孤立节点的影响比结构分析更隐蔽。结构分析中孤立节点只会导致局部的自由度异常热分析中它会在辐射传热计算中产生错误的热阻甚至导致不收敛。建议每次提交热分析Job之前都跑一遍这个脚本检查。5.6 瑞利阻尼在热应力动态响应中的使用热词里出现了“abaqus中瑞利阻尼的计算”尽管阻尼通常被视为动力学参数但在热冲击和热振动问题中却至关重要。热冲击——比如冷热交替冲击试验——会激起结构的高频振动响应而热应力分析如果只做静力分析是捕捉不到这些动态效应的。瑞利阻尼由质量比例阻尼α和刚度比例阻尼β组成。α主要影响低频β主要影响高频。常见做法是在两个感兴趣的频率点f1、f2处指定阻尼比ζ然后反推α和β公式为α 4π f1 f2 ζ / (2π(f1f2)) β ζ / (π(f1f2))注意这里的ζ是小数比如0.05代表5%的阻尼比不是百分比。实际工程中α和β经常会设置得很小甚至为0因为热应力分析通常是准静态问题动力效应不显著。但如果做热冲击响应或者热振动分析阻尼参数的合理标定将直接影响响应幅值。关于瑞利阻尼我有一次在热冲击分析中用默认的α0、β0结果热应力峰值比有阻尼的情况高了近40%。后来加上了恰当的阻尼参数结果才和实测吻合。所以做动态热应力分析时阻尼不能随便忽略。6. 我的一些体会做热应力分析这些年最大的体会是百分之八十的功夫都花在温度场上温度场准了热应力结果自然就合理温度场如果不对应力分析做得再精细也白搭。而温度场的可信度又取决于材料数据和边界条件的准确程度这是一条从数据到结果的传导链任何一个环节都别想走捷径。这篇把Abaqus热-力分析的整体能力框架讲了一遍后续我打算沿着几个常用方向继续展开焊接热源加载与移动热源子程序怎么写、电子散热的热-结构耦合怎么处理、淬火过程相变潜热怎么考虑都会有更具体的案例拆解。如果你正好在折腾某一块内容欢迎拿实际问题来交流比我在这里干讲要高效得多。
返回列表