摘 要
介绍了基于Optistruct求解器实现子模型法的3种方式,等参定量对比3种子模型法和全局模型法,计算结果表明:FIELD子模型方法计算结果同全模型存在差异,但差异可忽略不计;FBD子模型则完全一致;TCL子模型方法同全模型位移场、应力场相对误差分别为3.1%、5.7%。应用FBD子模型法简化计算不失为一条经济、高效率的途径。
关键词:OptiStruct;子模型法;计算效率;
0 引言
有限元法在解决复杂工程分析计算中扮演的角色越来越重要,一些领域如机械制造[1,2,3,4]、化工[5]、国防军工[6,7]等广泛应用有限元法进行辅助设计和试验验证。有限元法是基于拉格朗日型网格,理论上网格划分得足够细密,那么就能使问题域离散单元数值解愈接近真实解。但受限于计算资源的捉襟见肘,实际复杂构件不可能划分太细密的网格。工程师们经常会遭遇如下困境:对于着重关注的区域,计算网格太疏会跳过极值应力且收敛性差,不能得到满意的结果,需细化网格以捕捉应力梯度;对于这些区域外的部分,网格密度已经富余,粗糙的网格分布已足够求解近似的结果,如果耗费大量的计算资源、时间在这些不关注区域,影响分析的效率,不可取。基于此,子模型法倒不失为一种处理此类问题的捷径。
1 子模型法简介
子模型法基于圣维南(Saint-Venant)原理[8],其指出结构真实载荷可以用等效载荷替换,但应力、应变等张量只在等效载荷施加处局部会发生变化。子模型法正是考虑此种思路,即避开全局整体模型而只在局部需求细节处模型进行特殊处理,从而得到更加精确解的分析方法。子模型法主要分为两类:1)基于节点位移。即将计算得到的整体模型网格节点的位移场利用单元形状功能插值到子模型边界上的节点,它可以插值得到更精确的位移场。2)基于面应力。即使用应力场去插值子模型边界单元高斯积分点处的应力,它可以插值得到更精确的应力场;考虑到应力场为位移场的一阶微,插值精度相对偏弱,选取全局模型节点位移作为驱动变量插值到子模型的边界是合理的。
在特殊问题的分析或较复杂模型中可以求解局部精确解以外,子模型法还有以下几个方面优势:1)进一步缩减求解文件大小,略过复杂、不关注区域,节省计算资源;2)关键细节模型(如圆角尺寸、焊缝宽度等)可以很方便地进行方案对比;3)在正式分析计算前验证网格敏感性。
2 子模型法实现方式
OptiStruct作为Altair旗下的一款结构分析求解器,其先进的NVH分析求解功能、稳健的非线性/传动耐久分析、高并行求解能力、备受赞誉的优化技术、同HyperMesh无缝连接等优势,使其广泛地应用于工业结构设计及优化设计。因此,本文选取OptiStruct作为载体实现子模型法求解设置。实现子模型法主要通过以下3种方式。
2.1 脚本文件法(TCL)
当HyperMesh打开时,它会生成一个名为command.tcl的Tcl文件。如果此文件不存在,则在HyperMesh会话开始时创建该文件。如果该文件已存在,HyperMesh会将新会话的命令添加到原始文件的末尾。每次HyperMesh执行修改数据库中某些内容的操作,例如创建实体、修改选项卡、划分网格等时,用于执行该操作的命令以及任何辅助命令都会写入command.tcl文件中,这些命令统称为TCL。其中,标记命令*createmark作为TCL核心指令,通用格式为:*createmark entity_type mark_id option,此命令根据用户提供的选项将当前对象置为标记以实现后续操作。其中,entity_type为要置为当前对象的元素类型选择集,mark_id为选择集的ID,通过option来指定选择方法。此命令中entity_type支持的类型有:节点(nodes),单元(elements),连接集(connectors),组件(components),负载(loads),约束方程(equations),边界集(loadcols),坐标系(systems),向量维度(vectors),向量维度集(vectorcols),预设块集(blocks),接触(groups),集合(sets),接触面集(contactsurfs)等。如果想删除模型中所有网格单元,可通过Delete面板操作。上述过程写入到command.tcl文件中的命令为:
*createmark elements 1“all”
*deletemark elements 1
基于此,在相关命令熟悉理解前提下可通过文本编辑器直接修改求解文件完成子模型法的实现。
2.2 场映射法(Field)
单纯地计算数学中的插值本质上看是一种函数逼近,逼近的函数不是复杂连续函数,而是一组不确定表达式的离散数值,相同的概念同样适用于有限元法。在有限元推导过程,形函数用来构建母单元的位移场,插值函数用来构建真实单元的位移场。插值函数构造了母单元和全局坐标的媒介,因而插值方式各异会带来精度上的差异。如果把有限元计算结果施加给其他模型,因模型网格包含很多节点,使用场进行插值,精度会更高。HyperMesh中有一个通用的创建和映射数据的场工具———field,鼠标右键选中field可调出场功能设置项。
图1所示为场映射功能设置项,创建field时需要确定待映射场类型是连续场还是离散场。连续场:适用于一片网格向另外一片网格插值的情况,这时HyperMesh可以基于源网格的形函数进行场的创建;离散场:适用于没有源网格的场合,比如从一些不规则点提取数据,再向新的网格插值。本文子模型法思路是传递位移边界条件,故切割的边界节点映射位移为离散场。在对离散的field进行映射(realize)的时候,Field工具栏提供了如下额外插值选项:1)Shape Function。使用单元的形函数(缺省)。2)Shape Function and Proximity Mapping。在源网格内部使用单元的形函数,如果目标单元超出源网格以外(按照搜索容差搜索不到)的按照最近点赋值。3)Triangulation。系统会在后台构建一片三角形网格,并使用三角形单元的线性形函数进行插值。4)inverse distance weighting。使用线性形函数。5)Tolerance值。用于确认目标点是在源单元的内部还是外部。
可通过GUI界面场映射(field)功能实现子模型法。
2.3 载荷提取法(FBD)
FBD(Free Body Diagrams)自由体载荷提取技术是hypermesh一项高级数据分析功能,主要应用于精细部位和子模型载荷的提取和展示。FBD需建立在全局模型求解结果为OP2格式文件前提下,可通过OptiStruct求解器选项卡GLOBAL_OUTPUT_REQUEST创建DISPLACEMENT输出卡片,其FORMAT卡片置为OUTPUT2。
可通过GUI菜单栏自由体载荷提取实现子模型法。
图1 场映射(field)功能设置
3 验证算例
以图2所示问题域为例,详细描述3种子模型法具体实现方式。图2所示为全局问题域计算模型,模型尺寸为35 mm×30 mm×2 mm。网格拟定三维薄壳壳单元,网格尺寸为2 mm,划分的单元类型为一阶常应变三角形单元Tri3和一阶线应变四边形单元Quad4。共计划分单元数277,节点数309,三角形单元占比1.4%<5%。边界固支,中心区域加载一三向分力均为1500 N的作用力。图中浅色区域为后续子模型计算域。导出fem格式计算文件提交OptiStruct求解,在原模型的计算结果基础上,实现3种子模型法设置。
图2 算例问题域
3.1 TCL
利用后处理软件Hyperview将绿色区域边界节点位移导出为.csv文件,对每一个节点位移添加如下关键字实现tcl命令驱动:*loadcreateoneentity_curve,该命令使用tcl变量在节点上为负载组件创建负载。以边界处编号为224的节点为例,编辑如下语言:
第一行将节点224置为软件内核拾取器当前对象;第二行将6个强制约束(0.000385 0.000445-0.026952-999999-999999-999999,-999999表示释放自由度)加载在节点224上,具体各参数详细解释及设置可参考hypermesh关于此命令的在线帮助[9]。将编辑完成的文件另存为tcl格式脚本,通过如下3种方式导入子模型缩减计算文件:
1)菜单栏File>Run>Tcl/Tk Scipt,选择保存好的TCL脚本。
2)将TCL脚本用编辑器打开,全选复制粘贴在Command Window,回车即可执行。
3)tcl脚本最后添加求解器调用命令exec[hm_infoappinfo ALTAIR_HOME]/hwsolvers/scripts/optistruct.bat"$paths.fem"-analysis-optskip[9]。
3.2 Field
本算例场映射对象拾取节点(node),场数据为位移(displacement),插值选项为Shape Function,其余参数为缺省设置。位移场映射完成后会自动生成各节点位移汇总的加载集Displacement_Subcase 1(loadstep1)_0_default_1,设置对应分析步卡片即可求解。需要注意的是映射后的位移载荷卡片类型默认为SPCD(单元激励卡片),需更新载荷类型为SPC(约束卡片)。
3.3 FBD
Hypermesh UI界面通过Post>Free Body>Displacement进入图3所示fbd功能设置。
图3 FBD功能界面
进入FBD功能界面,首先导入全局模型op2格式结果文件,选择对应的分析子步后软件自动读取结果文件。读入内存后选择建立好的子模型单元集,其集合为子模型分析域。
子模型边界节点集视切割边界复杂程度分别创建:切割边界整齐、规则、方便选取,可预先创建边界节点集;切割边界杂乱、不规则且不宜选取时,可使用功能界面提供的自动捕捉子模型边界节点并创建节点集功能。子模型单元集、节点集确定后程序会自动将全局模型对应切割边界节点集节点的弹性位移场提取并插值,并自动创建子模型插值边界载荷集卡片方便求解。
待边界节点集位移提取完毕后,将子模型计算网格之外的网格全部抑制或删除,同时清理模型接触对、集合集、载荷激励等冗余模型细节,重新输出fem求解文件。
3.4 计算结果对比
图4和图6所示分别为全模型和TCL、Field、FBD3种子模型法弹性位移、拉应力云图结果,图5为4种计算模型位移云图上截取的靠近边界的节点路径对应的节点位移。
从图4中可知,全模型同3种子模型法加载下弹性位移分布趋势高度重合,表现出较高的一致性。数值上看,TCL子模型法计算有最大弹性位移0.063 mm,小于全模型和另外两种子模型法,后三者弹性位移数值上无差异。
图5所示节点路径位移表明在边界节点位移相同的前提下,TCL子模型法近边界节点位移显著低于另外3种计算模型,原因有二:
一是人为的数值误差,无论是提取或导入节点位移,小数点引起的数值误差不可避免,这种误差会因愈多的节点形函数插值而放大,而FIELD、FBD子模型法不涉及对结果文件的输入输出,避免了人为数值误差带来的差异;
二是TCL子模型法只是对子模型现有边界节点位移进行了映射,并不涉及子模型边界节点相连的不属于子模型的节点,这会引起子模型边界节点刚度的部分失真,而另两种子模型法充分考虑边界内外节点映射结果且模型不失真。
图6中TCL子模型法结果同其他3种计算模型结果差异进一步扩大。FIELD子模型法拉应力同全模型存在些许差异,但不明显;FBD子模型法同全模型无论是从定性还是定量角度均呈现完全一致的分布趋势。图7从定量角度对比了4个模型位移和拉应力结果。上述结果表明:FIELD子模型方法求解得到的最大位移和最大拉应力同全模型对比存在差异,但差异可忽略不计,而FBD子模型方法云图分布、数值则完全一致;TCL子模型方法对比全模型对应项相对误差分别为3.1%、5.7%。
图4 弹性位移云图对比
图5 节点路径弹性位移对比
图6 拉应力云图对比
4 应用算例
子模型法最大的优势在于保证计算精度的前提下提高效率,如前处理网格规模倍数缩减、方便网格变形、网格虚拟拓扑等,下面给出一个算例验证子模型法在局部结构不同更改方案下应用的优越性。
图7 4种模型计算结果数值对比
图8所示为一起升组件槽钢底座局部视图,分析模型采用实体网格划分,一阶四面体网格为常应变单元,插值精度低,选取二阶四面体TETRA10作为计算网格。承受弯扭组合的构件,其焊缝分担的载荷不可忽略,故同时划分焊缝网格。现方案底座焊缝焊趾拉应力较大,危险工况下承载能力偏弱,存在冲击时易发生塑性变形的累积,有断裂萌芽的趋势。对其不同改进方案等参计算。因计算网格尺寸偏小,为避免划分此结构件过多不关注区域网格,同时缩短计算时长,更方便地对比各方案优劣,拟定各方案更改底座以及局部槽钢网格即可。保持边界处网格不变,边界节点弹性位移通过前述FBD子模型法映射。采用高性能计算机群(HPC)48核心计算,全模型计算耗时16min28 s,子模型法耗时1 min 12 s,计算效率提升92.7%。同时也帮助工程师确定底座延长增加作用力臂的方案1为最佳方案,且满足恶劣工况强度条件。
5 结论
本文探讨了三种基于Opistruct求解器的3种子模型法的实现方式及其同全模型计算结果间的定量、定性对比。TCL子模型法插值精度偏低,存在一定误差;FIELD子模型法插值精度中等,结果基本无差别;FBD子模型法插值精度高,结果完全一致。应用的工程案例表明子模型法计算效率可提升92.7%,可见子模型法是有限元学科中特有的提高计算效率的一种捷径,助力工程师快速且准确地确定设计方案,应善用子模型法。
图8 等参对比各方案拉应力对比
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删