ANSYS子模型技术:从原理到实操,精准捕捉应力集中
简介《ANSYS子模型详解及其应用实例》是一份doc格式技术文档面向结构CAE分析工程师和ANSYS中高级用户系统讲解局部区域网格细化的子模型技术。文档从圣维南原理入手说明切割边界位移法的理论依据并围绕实际操作梳理五个核心环节粗模型建模分析、子模型建立、切割边界插值、子模型求解和边界距离验证便于在应力集中区域获得更精确的有限元解。内容也明确指出使用限制如仅适用于体单元和壳单元、切割边界须远离应力集中位置并延伸介绍壳到体子模型转换等进阶用法对大型模型局部细化求解很有帮助。资源共1个doc文件压缩包约1.04MB图文与命令提示配合便于工程师边学边练已有111人学习。适合机械、土木、航空航天等专业的仿真工程师及研究生参考也为学生理解子模型原理和独立开展局部网格细化分析提供了完整入门材料。 ANSYS子模型这个方法我在结构强度分析里用了快十年它解决的是仿真圈一个非常现实的两难想要应力集中区域的精确结果就得把网格加密可网格一密计算资源和等待时间就蹭蹭往上涨。子模型技术就是专门破这个局的——在粗糙的全局模型基础上把关键部位单独切出来重新细化网格再通过边界插值把全局结果传递进去兼顾精度和效率。这篇内容我会从原理讲到完整实操再拆一个带孔板、一个非对称支架的实例适合那些做静力分析时遇到过网格加密困境、想把应力峰值算准的朋友参考。1. 全局模型算不动细网格时子模型恰恰是解药不少刚接触ANSYS的人都有一个本能反应应力不准确那我把网格加密。这个思路本身没错但工程模型往往不是一块小板子可能是整机、整桥或者一个带复杂倒角的大型结构。当你发现加密范围稍微扩大一点自由度和求解时间就成倍增长甚至出现内存不够、硬盘写满的情况这时候就需要换一个思路了。1.1 网格密到一定程度算不动了怎么办我见过很多工程师卡在这个地方。全局模型为了保证整体结构刚度分布正确必须保留完整的几何和装配关系但应力集中的细节往往只集中在倒角、圆孔、焊缝过渡区这几个局部位置。如果为了让一个两毫米圆角的应力结果准确把整个模型都画成头发丝细的网格这在工程上是完全不划算的。从求解规模上讲网格数量从十万增加到一百万能忍再往上到千万级普通工作站就已经很难流畅迭代了。而子模型的出现等于把“局部细化”这件事从全局模型里拆出来单独处理。你可以把全局模型看成一张城市地图它负责告诉你每栋楼的大致位置和周边交通子模型则是把其中一栋楼单独拎出来用建筑图纸级别的精度去还原内部细节。1.2 子模型和全局模型的职责划分子模型不是替代全局模型去做一切事情两者分工完全不同。全局模型的职责是提供正确的宏观位移场和应力分布它允许网格相对粗糙只要整体刚度、载荷路径与真实结构一致就行。子模型则只关心你指定的那一小块区域它的网格可以细到让应力梯度完整捕捉。我习惯把子模型理解为“二次分析”第一次分析解决整体问题第二次分析聚焦局部。这两次分析之间的桥梁是切割边界上的位移插值。ANSYS会在你指定的切割边界附近提取全局模型的位移结果插值后作为子模型的边界条件这一点是整个方法的核心。2. 子模型成立的底层依据圣维南原理帮我们圈定安全切割区子模型方法看起来像一种投机取巧但在力学上是有坚实依据的核心就是圣维南原理。2.1 圣维南原理在子模型中的角色圣维南原理用大白话说就是如果在一个弹性体表面的局部范围内施加一组自平衡力系那么这群力对远处的影响会随着距离增加迅速衰减。放到子模型里我们可以做这样一个类比——切割边界上由全局模型算出来的位移对于子模型内部应力集中区的真实受力状态来讲属于“远场信息”。只要切割边界离应力集中区足够远那么边界上用稍微粗糙的网格计算出来的位移就足够精确地代表真实状态。这也解释了为什么子模型技术可行我们不是把边界条件拍脑袋定出来的而是从全局模型结果中提取的它本身已经是高一级精度的近似解。再配合圣维南原理距离足够远时边界的小误差不会对核心区结果造成大影响。2.2 哪些位置适合做切割边界哪些位置坚决不能放这是子模型成败的第一关我见过太多结果离谱的案例最后检查发现都是切割边界放得太随意。切割边界必须远离高应力梯度区域。比如孔边应力集中区如果你把切割边界直接放在距孔边1倍孔径的地方子模型内部结果往往会偏小因为边界条件本身已经混入了误差。不建议让切割边界穿过接触区域或高度非线性区域。子模型默认切割边界上只需要线性插值位移如果边界穿过接触面那个位置的位移场根本不光滑插值意义就大打折扣。边界位置尽量规则。切割边界最好沿着平面或规则曲面方便ANSYS识别节点组也便于你后期检查插值结果。如果非要说一个经验距离我对孔类应力集中问题通常取至少2到3倍孔径作为切割边界到应力峰值的距离。对圆角过渡问题我会让切割边界距离圆角起点至少留出1到1.5倍圆角半径以上的余地。这不是理论精确值但作为工程经验很实用。3. 带孔平板完整实操从全局模型到细网格子模型的四步走理论说了不少接下来走一遍实际流程。我用一块受单向拉伸的带孔平板举例这是子模型教学里出场率最高的案例因为它简单却能把流程里的每一个关键点都说清楚。假设平板尺寸为200mm×100mm厚度10mm中心孔径20mm一端固定另一端施加100MPa的均布拉应力。材料用Q235钢弹性模量206GPa泊松比0.3。我们想精确知道孔边最大应力。3.1 第一步全局模型计算与结果保存全局模型用相对稀疏的网格即可但要注意单元阶次不要太低。我通常用二阶四面体或六面体单元网格尺寸在5mm左右孔边适当加密到2mm就停住没必要更细。求解完成后最关键的一步是写结果文件ANSYS子模型不是直接读取全局模型数据库里的全部结果而是通过一个专门的命令来保存。如果你用ANSYS Classic环境可以通过OUTRES命令把所有子步结果写入到Jobname.RST文件里。Workbench环境下则要确认Analysis Settings中保存了足够多的结果尤其是位移结果因为子模型插值用的是位移而不是应力。注意全局模型结果文件在子模型分析中可能被反复读取保存路径中尽量不要出现中文或空格否则插值环节容易报文件读取错误。3.2 第二步切割局部区域并细化网格子模型的几何范围一般是在全局模型基础上通过切割操作得到的。带孔板这个案例我习惯切一个以孔中心为中心的方形区域边长为60mm左右。这样孔边到切割边界的距离大约是20mm是孔径的2倍满足前面说的安全距离。几何切割完成后重新划分网格。此处要舍得加密孔边第一层网格尺寸压到0.2到0.5mm向外逐步过渡到2mm。如果关心的是孔边最大应力还建议在孔边画一层或多层膨胀层让应力梯度方向上有足够多的单元。3.3 第三步传递边界条件并求解这是子模型操作的核心环节。在ANSYS Classic里流程是进入/POST1后处理先恢复全局模型结果然后用CBDOF命令把切割边界上的位移插值到子模型边界节点上。Workbench里对应的是Submodeling模块需要指定全局分析结果和切割边界几何软件会自动完成插值计算。插值完成之后子模型上的载荷怎么处理凡是没有被切割边界包含的载荷比如带孔板中边界上的均布拉力如果这个载荷边落在了子模型切割范围之外那就不需要重复施加因为它的影响已经通过全局模型位移传递进来了。如果某些载荷比如螺栓预紧力直接作用在子模型内部区域那必须原样加上否则结果就会偏小。求解完成后后处理查看应力分布。此时孔边最大应力应明显高于全局模型结果而且应力云图应更加光滑连续。3.4 第四步验证子模型结果的可靠性这一步很多人会跳过但它恰恰是子模型分析中最重要的收尾动作。验证方法不复杂把切割边界继续往外扩大一圈重新做一次子模型分析对比两次分析中应力集中区的最大应力。如果两次结果偏差在5%以内说明切割边界位置足够安全子模型结果可信如果偏差很大说明切割边界离应力集中区还是太近了需要继续外扩。我实际验证过带孔板案例全局模型孔边最大应力算出来约310MPa子模型加密后能到约352MPa而理论应力集中系数法估算的结果大约在345到350MPa之间。子模型结果与理论解吻合得很好也说明之前全局模型是明显低估了孔边峰值应力的。4. 非对称支架实例当应力集中区不再规则子模型怎么继续落地带孔板做完了很多朋友会说你这案例太对称太理想了我手里的支架模型形状乱七八糟也能用子模型吗能用但要注意的地方会更多。我拿一个L形支架的实例来拆解。4.1 模型设置与载荷支架整体由一块厚度8mm的钢板弯折而成弯折内圆角半径5mm支架一端通过两个螺栓孔固定另一端承受一个斜向下的载荷大小为15kN。整个模型结构不对称载荷方向也不沿任何对称轴。我当时的做法是先用全局模型计算整体位移场网格尺寸控制在8mm左右。应力集中最明显的区域在内圆角根部那里既有弯折产生的弯曲应力又有几何突变引起的应力集中。切割边界我取了一个不规则的框体把整个圆角过渡区包住边界离圆角根部的距离大约12到15mm是圆角半径的2.5到3倍。这个案例与带孔板的区别在于切割边界不再是一个规则矩形框而是一个被多个平面切出来的三维块体。这时要特别注意切割边界每个面上的节点选择是否齐全漏掉任何一个面上的节点都可能导致边界条件不完整。4.2 子模型结果与理论解对比由于支架没有现成理论解我采用的是网格收敛性对比法子模型网格加密到一定程度后最大应力不再随网格加密而显著变化该值就是收敛解。我做了三组网格孔边和圆角区的单元尺寸分别是1mm、0.5mm、0.3mm对应的最大应力分别是477MPa、495MPa、499MPa。第三组相对第二组只变化了0.8%说明结果已经收敛。同时我也对比了全局模型在该位置的应力只有约386MPa差距接近30%。这个例子充分说明在复杂几何中全局模型由于网格粗糙应力集中区的峰值可能被大幅低估而子模型能把这个误差拉回来。另外要提醒一句材料如果进入塑性区子模型直接采用线弹性插值位移的方式就需要谨慎了。严格来说子模型默认适用于线弹性分析或小范围非线性分析。如果塑性区已经扩展到切割边界附近子模型结果就可能失真这时更稳妥的做法是把全局模型和子模型都采用弹塑性材料本构并保证切割边界远离塑性区。5. 子模型最容易翻车的三个位置与我的排查经验流程走完了最后聊点实在的。子模型不是每次都能顺顺利利跑出合理结果我这些年踩过不少坑其中有三个位置出现问题的概率最高值得专门拿出来说。5.1 切割边界位置不当导致的失真第一次用子模型做汽车支架分析时为了省事把切割边界放得离圆角比较近结果子模型算出来的最大应力比全局模型还小当时怎么都想不通。后来把边界外扩了一倍重新分析应力值立刻抬升并趋于稳定才意识到是圣维南原理的适用距离没满足。排查方法其实很简单边界外扩重算对比结果。每次外扩10%到20%如果应力稳定不动那就是安全的如果变化明显说明原边界已经被局部扰动污染了。我不建议为了省网格刻意把子模型范围压到最小尤其在分析目标不明确的情况下范围宁可大一点也别赌边界足够远。5.2 插值边界条件与全局结果不一致典型表现是提示成功但是算出来的位移场在切割边界附近有突变或者应力云图在边界处有明显不连续。这种情况大概率是全局模型结果没有包含足够多的子步或者切割边界上选中的节点和全局网格位置匹配不上。ANSYS在进行边界插值时会搜索全局模型中距离边界节点最近的单元并做插值计算。如果全局模型在该区域网格太稀插值质量自然下降。我的经验是把切割边界附近全局网格控制在中等水平至少保证边界上有3层以上的单元这样插值出的位移场才比较光滑。还有一个容易被忽视的坑在不同坐标系下建模时如果子模型和全局模型的坐标系定义不一致插值后的位移方向可能出错。养成好习惯子模型直接继承全局模型的坐标系不要另起炉灶。5.3 单元类型、单位与结果验证脱节子模型的单元类型最好与全局模型一致或相近。我曾经用全局模型实体单元、子模型切出后用壳单元去算结果边界条件传递完全对不上后来才明白不同单元自由度不同实体单元是平动自由度壳单元还包含转动自由度插值结果根本无法直接对接。单位问题就更隐蔽了。全局模型用毫米和牛顿子模型如果误用了米和牛顿弹性模量数值差了一千倍位移插值进去后完全不合理。我建议做分析第一步就统一单位制并在子模型文件中保持一致。最后再强调一次验证环节。子模型算出来的结果不能拿起来就用至少做一次边界外扩验证或网格收敛性验证。我就是靠这个习惯避免了多次把失真的应力峰值当作设计依据的情况。子模型这个方法说难不难说简单也不简单核心就几句话全局模型提供位移边界切割边界要远离集中区子模型网格该细就细做完务必验证。你在实际项目里只要守住这几条它就是个既省计算资源又能拿准局部应力的趁手工具。本文还有配套的精品资源点击获取