Hypermesh 二次开发在汽车发动机盖内板重力仿真分析的应用
2022-06-29陈泽中宋仁宏
钟 晗,罗 帅,王 鹏,陈泽中,滕 琳,宋仁宏
(1.上海理工大学 材料与化学学院,上海 200093;2.上汽通用汽车有限公司 整车制造工程部,上海 201206)
随着汽车行业的迅速发展,计算机辅助工程(computer aided engineering,CAE)仿真技术已经广泛应用于产品开发验证,在汽车零部件的结构优化、工艺参数优化、实验方案模拟、潜在问题的预先发现上有着不可替代的作用。然而,在大部分CAE分析过程中,前处理步骤繁琐,操作复杂,并需要重复输入,极大地浪费人力与时间。
在企业实际生产中,零部件重力仿真对于尺寸功能评估一直是不可或缺的步骤。尺寸功能评估是将生产完成的零部件放在定制检具上,通过对零部件的孔、切边、型面进行尺寸检测,判断该零件的各项尺寸指标是否符合生产制造要求。在实际尺寸功能评估前,对零部件进行重力仿真,可以模拟零部件在检具上受重力和夹持力的变形情况,及时评估定位方案的优劣,为定位基准的设计提供可以量化的参考依据。
在重力仿真的CAE 模拟过程中,大量基准点信息与参数设置对于人工输入来说是一项巨大的工程,不仅工作效率低,容易导致得出错误的结论,并且可能因为人员的不同分析风格导致结论缺乏一致性。因此,开发出一款固化流程的CAE 重力仿真分析脚本对于企业来说是一项迫在眉睫的需求。
Hypermesh 是一个高度开放的CAE 平台,工程师可以根据自己的需求利用多重途径编制自动化程序。其自动化程序的开发依托于多种工具,包括Process Manager、Process Studio、工具命令语言/工具包(tool command language/tool kit,Tcl/Tk)以 及Hypermesh 所提供的功能函数等。
本文结合企业实际需求,基于Tcl/Tk 脚本语言及Hypermesh 软件,以汽车构件原模型为输入,结合Excel 定制配套模板,开发出固化体系的重力仿真全流程自动化系统。同时,详细地阐述自动化系统的开发流程及关键技术,并辅以实例分析论证其实用性和可行性,为企业开发工作提供理论支撑及工艺参考。
1 Tcl/Tk 语言介绍
Tcl 是一种解释型可扩展语言,该语言无需编译、语法简单、不依赖平台,被广泛应用于仿真软件的快速原型开发、脚本编程、图形用户界面(graphical user interface,GUI)和测试等方面。
Tk 是基于Tcl 的图形程序开发工具箱,是Tcl的重要扩展部分,在程序设计完成后,可以通过定制GUI 来实现人机交互,广泛用于按键式操作。Hypermesh 软件自带Tcl 脚本语言的接口,通过调用软件提供的基于Tcl/Tk 的API(application program interface,API)接口函数,编写代码,定制CAE 分析流程。Hypermesh 在前处理器中包含4 种主要函数,包括Tcl GUI 函数、Tcl Modify 函数、Tcl Query函数、宏菜单函数,无缝衔接Tcl/Tk 语言。工程师可根据自身工作需求开发各种功能,提高CAE 分析效率和精确性,缩短研发周期。
2 重力仿真分析二次开发的实施
经过重力仿真验证过的检具可以精确评估整车制造中零部件的质量。汽车发动机盖内板作为保护汽车内部零件的部件,其质量直接影响着车辆零件结构是否精密和整车质量是否达标。
Hypermesh 脚本程序中重力仿真系统主要分为前处理模块和Excel 模块。在前处理模块中,用户建立有限元模型,并将其导入Hypermesh,进行中面清理和网格划分等操作。
针对重力仿真中涉及到的大量基准点数据及对应参数设置,采用定制的Excel 模板进行数据填写,方便快捷、不易出错。本文以汽车发动机盖内板为例进行自动化仿真开发。
2.1 有限元模型的建立
本文中所用发动机盖内板的三维实体几何模型,由上汽通用有限公司提供,利用UG 软件将文件保存为IGES 格式,导入Hypermesh 软件中,建立有限元模型。汽车发动机盖内板模型如图1 所示。
图1 汽车发动机盖内板模型Fig.1 Model of automobile engine cover inner plate
2.1.1 几何模型的导入
在利用Hypermesh 导入模型时,针对用户可能使用到的模型缩放功能,制定“Measure Thickness”按钮,方便用户对模型大小和厚度进行初步检查,判断模型规格是否与后续导入的Excel 模板中的基准点数据对应,方便后续进行重力仿真前处理操作。
2.1.2 自动创建网格划分
考虑后续使用算法多点约束(rigid bar element#2,RBE2)刚性单元以及单点约束(single point constraint,SPC)边界条件进行距离信息判定,设置网格大小为3 mm,对几何模型进行网格划分。
“Grid”网格划分采用Hypermesh 中command[hm_pushpanel]命令进行按键移植,如图2 所示。“Extraction Midsurface”、“Cleaning Midsurface”和“Automatic Meshing”分别对应中面提取、自动中面清理和自动网格划分。
图2 网格划分GUI 示意图Fig.2 Schematic diagram for meshing GUI
针对日常使用习惯,将中面提取、自动中面清理和自动网格划分3 项整合成 “Onestep”一键式按钮。用户将原始数模导入Hypermesh 软件中,点击“Onestep”按钮,即可完成网格划分一系列操作,十分便捷。
添加“Edges”与“Qualityindex”按钮,进行网格检查与调整。
对于类似发动机盖内板等比较复杂的几何模型,抽取中面后可能出现几何缺陷,如重复面、曲面缺失、自由边不重合和孔洞被错误填充等,这些缺陷会导致CAE 分析报错。因此,添加“Edges”按钮,检查网格边界。
划分完成后的网格质量影响着CAE 仿真分析的准确性。质量差的网格对应的零件部分,仿真性能较差,不能准确反应零件的真实情况,同时可能极大延长仿真分析时间。因此需对网格质量进行检查,对不合格的网格进行优化。使用 “Qualityindex”按钮,检查网格模型,优化网格质量,至此完成“Grid”网格划分操作。
2.2 材料与属性的建立
正确的材料与属性的建立对于仿真分析至关重要。利用Tk 创建材料与属性GUI 界面,与用户进行互动。
材料创建GUI 界面示意图如图3 所示。在“Mat Name”中输入材料的名称,材料类型Type 默认为ALL,材料卡片Card image 默认选择为MAT1(各向同性线弹性材料模型),分别输入材料的E(杨氏模量)、NU(泊松比)、RHO(密度),最后单击“create”,完成材料参数Material 层创建。
图3 材料创建示意图Fig.3 Schematic diagram of material creation
用户根据网格模型选定Card image 为体网格或面网格以及与之对应的材料层。发动机盖内板模型默认为面网格,用户仅需设定属性的名称“Prop Name”与对应网格厚度“T”,即可快速建立相应壳单元属性。属性建立示意图如图4 所示。
图4 属性建立示意图Fig.4 Schematic diagram of attribute establishment
材料与属性创建完成后,输入属性ID 号与中面网格ID 号,将属性赋予给对应的网格,按钮示意图如图5 所示。
图5 属性赋予网格示意图Fig.5 Schematic diagram for attributing assignment to grid
在零部件总成仿真分析中,用户可以采用Excel 表格形式输入数据,完成大量材料属性建立及属性赋予网格的操作。添加“Matprop-excel”按钮,出现输入文件对话框,选择需要输入的Excel表,提取相应单元格数据,自动建立材料与属性并赋予对应网格。材料属性按钮示意图如图6 所示。
图6 材料属性按钮示意图Fig.6 Schematic diagram of material properties button
Tcl 脚本会对固定区域的数据进行识别和读取,并将其存储在脚本变量中,并在Hypermesh 中对应地进行对应地自动化操作。与人工数百上千次手动输入数据相比,Tcl 脚本只需几秒就可以完成全部操作,极大节约人力与时间,提高了工作效率。
2.3 边界条件
车身零部件的质量主要通过专用的检测工装进行测量,以控制零部件的尺寸精度。因此,检具的结构、定位基准的位置和数量显得至关重要。结构合理且检测精度高的检具可以更准确地反映出零部件的真实状况。
检具定位基准的合理度,可以使定位基准方案更趋合理。当零部件太大且厚度较薄时,若不能进行有效定位基准设置,零部件将由于自身重力因素,导致整体向下变形,造成检具检测分析结果误差太大。因此,对零部件在检具上进行重力仿真分析,验证检具结构。
在检测过程中,定位基准对应的是RBE2 和SPC 边界条件中的基准点数据。
在重力仿真过程中,约束不能直接建立在网格节点上,因此需要新建RBE2 单元,把约束建立在RBE2 单元的中央节点上。
创建边界条件分为两个步骤。第一步是建立不可移动的RBE2 刚性单元。在RBE2 中,一个独立节点与多个从节点之间通过刚性约束连接在一起,从节点的自由度与独立节点相同,独立节点包含平动和转动共6 个自由度,分别为dof1-dof6。这6 个约束方向对应着零件的前后、左右和高低方向(轴,轴,轴)的平动与旋转。可以变相地理解为将多个刚性节点焊接在一个独立节点上,节点之间不存在相对位移,并且不存在变形,整体上提高了结构的刚度。
第二步是新建Load Collectors,存放SPC 边界条件。在SPC 中,基准的约束方向需要对照图纸进行约束。对于不同约束方向的基准点集合(A-H),在excel 表中进行分类,将相同方向的点集合进行合并,方便脚本有序读取数据。建立对应的Load Collectors,读取并建立对应基准的约束方向。
结合重力仿真需求、工装夹持点紧固程度大和连接强度大的特点,新建Component,存放RBE2,采用刚性单元将独立节点6 个方向的自由度全部固定,使独立节点完全固定在网格面上。随后新建Load Collectors,用于存放SPC,模拟实际零部件检测过程中的工装夹持点,通过约束SPC 边界条件,设置节点上的位移旋转方向。
设置边界条件自动化输入的按钮“Data-RBE2-SPC-excel”。由于基准点信息过多,用户手动输入容易输错输漏,因此采用Excel 模板进行输入。Excel 输入模板示意图如表1 所示。
表1 Excel 输入模板Tab.1 Excel input template
根据Excel 表中位置信息,提取相应区域基准点数据和不同节点集合的SPC 信息(dof1-dof6)。通过判断单元格是否为空,去除空区域,同时利用Excel 单元格命名规则,通过ASCII 码进行数据替换与读取,将可用数据储存在变量集合中。
利用*createnode $$$0 0 0,在零部件的网格上创建独立节点(即工装夹持点),识别不同的基准点集合(A-H),提取每一类集合对应dof1-dof6 中的数据。
脚本中以hm_entityrecorder nodes on 和hm_entityrecorder nodes off 对节点进行囊括,并对每个独立节点设置算法,选择需要连接的从节点,并通过*rigidlink建立RBE2刚性单元与*loadcreate onentity_curve 建立SPC 边界条件循环操作。
由于数模中的独立节点可能位于数模网格上方或孔洞上方,在对独立节点设置算法时,利用独立节点与最近从节点之间的距离,识别独立节点的约束是位于网格上方还是孔洞上方,并建立约束。通过两条技术路线实现:
(1)判断独立节点与最近从节点之间距离是否满足指定的距离,根据相邻关系选定从节点所属elems,提取所有elems 包含的nodes 信息号,进行数据处理和智能筛选,最后通过*rigidlink 建立约束。
(2)创建一个无限长的圆柱体区域,并通过算法实现右手定则。在算法中,自动获取独立节点ID 号与网格上离独立节点最近的两个从节点ID 号,并利用右手定则判断圆柱体矢量方向。圆柱体的直径大小由独立节点与从节点的距离确定。选定囊括到的全部从节点nodes,建立约束。
针对日常操作,开发两种建立RBE2 的按钮“RBE2elem”和“RBE2nodes”,按钮示意图如图7 所示。用户点击按钮后需单击独立节点,然后单击界面中的process,如图8 所示。随后进入下一步骤,选定相应的nodes(elems),再次单击process,即可快速建立RBE2 刚性单元。RBE2 刚性单元如图9 中独立节点与从节点之间的连接单元。此时,脚本获取elems 信息号后,通过hm_getvalue 函数获取每个elem 包含的nodes 信息号,将一系列nodes信息号放入集合中,筛除重复值;若忽略重复值,会导致RBE2 建立错误,仿真分析报错。
图7 “RBE2elem”和“RBE2nodes”按钮Fig.7 "RBE2elem" and "RBE2nodes" buttons
图8 RBE2 建立过程图Fig.8 RBE2 establishment process diagram
图9 RBE2 刚性单元结果Fig.9 Results of RBE2 rigid element
2.4 载荷施加
用户需输入重力的大小与矢量方向,即可将重力加载到创建的名为“GRAV”的Load Collectors中,输入界面如图10 所示。同时,设置"Grav-excel"按钮,在弹出的对话框中选取Excel 文件即可直接读取数据,完成重力加载步骤。
图10 重力大小与矢量方向输入界面示意图Fig.10 Schematic diagram of the input interface of gravity magnitude and vector direction
2.5 工况步建立
工况步建立示意图如图11 所示。结合工装夹持点的位置、重力大小与矢量方向,连接SPC 信息与重力信息,在“Loadstep Name”中输入工况步名称,在“Spc id”中输入SPC 集合信息,在“Load id”中输入重力Load Collectors。SORTING 选择SORT1,FORMAT 选择H3D,最后选择需要输出的信息“模型的位移(displacement)与应力-应变大小(stress)”,模拟实体零件在检具上的受力情况与位移大小。
图11 工况步建立示意图Fig.11 Schematic diagram of working condition step establishment
工况步建立结果示意图如图12 所示。
图12 工况步建立结果Fig.12 Result of working condition step establishment
本模型建立3 种不同工况,以不同的约束基准,依次对零部件进行重力仿真分析。工况信息如表2 所示。零部件基准示意图如图13 所示。
表2 工况信息表Tab.2 Working condition information table
图13 零部件基准示意图Fig.13 Schematic diagram of component datum
建立重力仿真全流程自动化按钮,一键式按钮示意图如图14 所示。“Onestep”:在已经划分好网格的数据模型基础上,单击“Onestep”进行剩余前处理部分。“Onestep-all”:整合“Onestep”与网格划分部分。Hypermesh 具有强大的网格划分能力,在该模型划分出的七万多个网格中,质量较差的网格只有十几个,所以一般对于结构不复杂的模型,不用做网格质量优化操作,基数小的差网格对于仿真结果没有影响。基于此类型的模型,用户在已导入格式为IGES 的数模基础上,单击“Onestepall”按钮,在弹出的对话框中选择对应Excel 文件,即可完成全部前处理,除去网格划分的时间,整个过程大概需要十几秒,相比于人工输入提升了90%以上的效率。
图14 一键式按钮示意图Fig.14 Schematic diagram of one-touch button
2.6 重力仿真结果
完成前处理步骤后,用户需手动选择Optistruct进行路径选择与后处理操作。对零件进行重力仿真分析。图15 为重力仿真位移图,图中左侧区域显示为位移量颜色分布,红色区域位移量较大,蓝色区域位移量较小。在图15(c)中,检测基准重力最大位移变形为0.17 mm,对应的工况信息3 采用的检具基准点效果最好,符合标准,说明零件在检具上受自身重力影响较小,验证了(c)定位基准方案的合理性。
图15 重力仿真位移图Fig.15 Displacement diagram of gravity simulation
3 结 论
本文主要介绍了Hypermesh 二次开发处理重力仿真全流程自动化的方法。编写自动网格划分便捷操作的脚本,实现网格划分步骤一键式完成。编写了快速设置材料属性及赋予的脚本,实现快捷输入,并结合Excel 工具,实现大量数据快速处理。编写了两种快捷建立RBE2 的脚本,通过Excel 实现大量节点与对应约束条件的快速建立。编写了重力载荷建立及多种工况步快捷建立的脚本。最后实现全流程重力仿真自动化建立,大大提高前处理效率,为企业优化检具定位点与定位基准方案设计节省时间。