
abaqus模拟案例系列-文章复现基于降温法实现热残余应力场模拟基本完全对上文献材料是SIC/TC17微观尺度模型RVE模型可进一步做拉伸模拟。最近在研究Abaqus模拟的时候做了一个超有意思的案例——基于降温法实现热残余应力场模拟而且基本完美复现了文献结果今天就来和大家分享一下。abaqus模拟案例系列-文章复现基于降温法实现热残余应力场模拟基本完全对上文献材料是SIC/TC17微观尺度模型RVE模型可进一步做拉伸模拟。本次模拟的材料选用了SIC/TC17采用微观尺度的RVE模型。RVE模型也就是代表性体积单元模型在微观力学分析中相当重要它能够在一定程度上代表材料整体的宏观性能。基于降温法的热残余应力场模拟实现在Abaqus中进行模拟首先得创建模型。以下是部分Python脚本代码通过Abaqus的Python接口来辅助建模实际操作时可在Abaqus的Scripting Interface环境下运行from abaqus import * from abaqusConstants import * # 创建部件 mdb.models[Model-1].Part(namePart-1, dimensionalityTHREE_D, typeDEFORMABLE_BODY) # 定义材料属性 mdb.models[Model-1].Material(nameSIC-TC17) mdb.models[Model-1].materials[SIC-TC17].Elastic(table((100000.0, 0.3),)) # 创建实体 s mdb.models[Model-1].parts[Part-1].SolidExtrusion(depth10.0, sketchmdb.models[Model-1].sketches[__profile__])代码分析from abaqus import和from abaqusConstants import这两行代码引入了Abaqus的Python API相关模块以及常量为后续操作提供基础。mdb.models[Model-1].Part(namePart-1, dimensionalityTHREED, typeDEFORMABLEBODY)创建了一个名为Part-1的三维可变形体部件。mdb.models[Model-1].Material(nameSIC-TC17)和mdb.models[Model-1].materials[SIC-TC17].Elastic(table((100000.0, 0.3),))定义了名为SIC - TC17的材料并设置了其弹性模量为100000.0泊松比为0.3 。s mdb.models[Model-1].parts[Part-1].SolidExtrusion(depth10.0, sketchmdb.models[Model-1].sketches[profile])通过拉伸操作创建了一个深度为10.0的实体这里的profile是提前绘制好的草图轮廓。接下来就是降温法模拟热残余应力场的关键步骤。我们知道热残余应力是由于材料在温度变化过程中不同部分的热胀冷缩不一致而产生的内应力。在Abaqus中通过定义温度场和材料的热膨胀系数等参数来实现。# 定义热膨胀系数 mdb.models[Model-1].materials[SIC-TC17].ThermalExpansion(table((2.0e - 6,),)) # 创建分析步这里假设从高温T1降到室温T0 mdb.models[Model-1].StaticStep(nameCooling, previousInitial) # 定义温度载荷 region mdb.models[Model-1].rootAssembly.instances[Part-1 - 1].elements mdb.models[Model-1].Temperature(nameTemp - Load, createStepNameCooling, regionregion, distributionTypeUNIFORM, magnitudes(100.0,))代码分析mdb.models[Model-1].materials[SIC-TC17].ThermalExpansion(table((2.0e - 6,),))定义了材料的热膨胀系数为 \( 2.0\times10^{-6} \)。mdb.models[Model-1].StaticStep(nameCooling, previousInitial)创建了一个名为Cooling的静态分析步基于初始分析步Initial进行。region mdb.models[Model-1].rootAssembly.instances[Part-1 - 1].elements选取了部件实例中的所有单元作为施加温度载荷的区域。mdb.models[Model-1].Temperature(nameTemp - Load, createStepNameCooling, regionregion, distributionTypeUNIFORM, magnitudes(100.0,))在Cooling分析步中对选定区域施加了均匀的温度载荷初始温度设为100.0 模拟从高温降温的过程。经过一系列计算和后处理得到的热残余应力场结果与文献基本完全对上这意味着模拟的可靠性得到了验证。后续拉伸模拟展望完成热残余应力场模拟后我们还可以进一步对这个RVE模型做拉伸模拟。拉伸模拟可以帮助我们了解材料在承受轴向拉力时的力学响应结合之前得到的热残余应力场能更全面地分析材料的性能。在进行拉伸模拟时同样要在Abaqus中定义边界条件、载荷等参数。比如通过以下代码来定义拉伸边界条件# 定义拉伸边界条件假设在一端固定另一端施加拉伸位移 partInstance mdb.models[Model-1].rootAssembly.instances[Part-1 - 1] region1 partInstance.sets[Set - Fixed] region2 partInstance.sets[Set - Tensile] mdb.models[Model-1].DisplacementBC(nameBC - Fixed, createStepNameTensile - Step, regionregion1, u10.0, u20.0, u30.0, ur10.0, ur20.0, ur30.0) mdb.models[Model-1].DisplacementBC(nameBC - Tensile, createStepNameTensile - Step, regionregion2, u10.1, u20.0, u30.0, ur10.0, ur20.0, ur30.0)代码分析partInstance mdb.models[Model-1].rootAssembly.instances[Part-1 - 1]获取部件实例。region1 partInstance.sets[Set - Fixed]和region2 partInstance.sets[Set - Tensile]分别定义了固定端和拉伸端的集合。mdb.models[Model-1].DisplacementBC(nameBC - Fixed, createStepNameTensile - Step, regionregion1, u10.0, u20.0, u30.0, ur10.0, ur20.0, ur30.0)在拉伸分析步Tensile - Step中对固定端集合Set - Fixed施加了全约束边界条件。mdb.models[Model-1].DisplacementBC(nameBC - Tensile, createStepNameTensile - Step, regionregion2, u10.1, u20.0, u30.0, ur10.0, ur20.0, ur30.0)在拉伸分析步中对拉伸端集合Set - Tensile在1方向上施加了0.1的位移载荷模拟拉伸过程。总之通过这次基于降温法的热残余应力场模拟以及后续可拓展的拉伸模拟我们能更深入地探究SIC/TC17材料在微观尺度下的力学性能Abaqus在这方面为我们提供了强大的模拟工具。希望大家也能在自己的研究中灵活运用这些方法和技巧。