e-works数字化企业网  »  文章频道  »  研发数字化  »  CAE

基于HyperMesh软件的客车CAE前处理二次开发

2020/2/21    来源:Altair论文集    作者:曾锋      
关键字:客车CAE  TCL/TK语言  HyperMesh  
本文介绍利用 TCL/TK语言二次开发基于 HyperMesh前处理软件的自动化工具,可以极大地提升客车CAE前处理效率,同时可减少工作中的人为错误。
       随着客车产业迅速发展,设计模型越来越精细化,对仿真分析效率的要求也越来越高。加上传统客车行业本身具有产品研发周期较短的特点,因此尽可能缩短CAE分析所需的时间从而加快项目进度,是一项非常有意义的工作。在整个CAE分析过程中,前处理工作大约占据近80%的工作量,不仅耗时耗力,还容易出现人为的错误和遗漏。传统的CAE仿真前处理模式已逐渐不能满足实际工作的需求,因此需要引入流程自动化的概念,利用二次开发手段提升CAE前处理的效率和精度。
 
1 TCL/TK语言及其应用
 
       Tcl/Tk是由John K. Ousterhout于1988年开始开发的解释型、可拓展的脚本语言。Tcl语言简明、高效、易拓展,常用于快速原型开发、脚本编辑、GUI和测试等方面;Tk是使用最广泛的Tcl拓展,为用户提供简洁丰富的图形功能,让用户可以轻松地创建简单的图形界面。HyperMesh是应用广泛的有限元前处理软件,其提供了基于Tcl/Tk的API,与Tcl/Tk是无缝衔接的,让用户可以方便地进行二次开发,从而根据自身工作需求开发出各种功能,实现将繁琐、重复的操作一次性完成并保持高度准确性。笔者利用Tcl/Tk语言开发CAE前处理小工具,主要用于在HyperMesh软件中实现三个功能:模型树管理、自动赋予材料属性、自动创建质量单元。
 
2 模型树管理工具
 
       客车白车身由许多矩形管焊接而成。根据我司企业标准,在利用HyperMesh进行白车身有限元前处理时,每一根矩形管都应当存放在一个独立的component里面,并且按照规定的格式对其进行命名和分类,从而方便有限元模型的查看和管理。对于CAE工程师来说,对上千根型材进行规范化的分类管理无疑是巨大的工作量。这项繁琐的工作可通过二次开发的模型树管理工具一键自动完成。
 
       具体来说,Tcl/Tk语言通过完成以下步骤来实现模型管理:(1)读取某根型材的几何厚度信息;(2)读取该型材的材料信息;(3)判断该型材所属的子系统(如前围总成等);(4)按照“总成号_组件编号_厚度_材料”的标准格式对其进行重命名及归类。
 
       其中,读取厚度信息主要通过hm_getgeometricthinsolidinfo函数来实现。该函数是HyperMesh软件提供的API,其功能是返回指定实体的厚度及ID号信息。材料参数及子系统信息则是利用tk_getOpenFile命令来选取BOM表读入内部信息并写入变量中。编好主程序后,新建mac文件,并利用*createbutton命令创建功能键,则可在HyperMesh界面下使用该功能键直接调用主程序,如图1所示。

二次开发工具条界面

图1 二次开发工具条界面
 
       点击ModelTree按钮后,软件自动读取solid的厚度,并将厚度信息写入component的名称中;随后弹出对话框,要求选择BOM文件,计算机读入BOM表中的材料及系统信息后,依次对所有component重命名。重命名后所有component的厚度、材料及系统信息一目了然,如图2所示。

所有component按标准名称重命名

图2 所有component按标准名称重命名
 
       以往人们开发的模型树管理工具大多是对已赋予材料和属性的component进行重命名及分类,本文二次开发工具的特点在于直接读取几何的厚度和BOM表,更加方便快捷,原本需要3~4天的模型树管理工作可缩短至几秒钟内完成,大大节省了时间。
 
3 材料属性自动化管理
 
       在完成模型树的自动化管理后,每个component都有统一格式的名称,名称中包含材料和厚度等信息,在此基础上可以进行材料属性的批量自动化创建和更新。创建材料和属性的具体Tcl/Tk程序代码可以通过查询HyperMesh的cmf文件来得到。用户在HyperMesh完成某步操作后,cmf文件都保存下了相应的命令流,其中的命令函数可以与HyperMesh中的数据库进行通讯。以名为“5401000_001_2mm_Q345”的component为例,以下命令即可实现材料的创建及相关参数的定义:
 
       *collectorcreate materials "5401000_001_2mm_Q345" "" 11
 
       *createmark materials 2 "5401000_001_2mm_Q345"
 
       *dictionaryload materials 2 "D:/Program 
 
       Files/Altair/14.0/templates/feoutput/optistruct/optistruct" "MAT1"
 
       *attributeupdateint materials 2 3240 1 2 0 1
 
       *attributeupdatedouble materials 2 1 1 0 0 210000 
 
       *attributeupdatedouble materials 2 2 1 0 0 0
 
       *attributeupdatedouble materials 2 3 1 0 0 0.3 
 
       *attributeupdatedouble materials 2 4 1 0 0 7.85e-009 
 
       再把以上创建材料的命令包装成过程(函数)的形式:proc matCreate {name E Nu Rho},括号内的4个变量分别表示材料的名称、弹性模量、泊松比和密度。这样就可以方便地调用该函数。同理,将创建属性的命令也写成函数的形式:proc propCreate {material thickness}。其中的材料名和厚度均可通过component名称中包含的信息来获得。

材料属性自动管理工具开发逻辑图

图3 材料属性自动管理工具开发逻辑图
 
       通过上述Tcl程序,可为每个component自动创建和更新相应的材料和属性。无论进行何种仿真分析项目,材料属性设置的精确与否对于分析结果都至关重要,通过二次开发工具完成材料属性的设置,避免了其中可能出现的人为失误,提高了模型精准度;同时极大地简化了操作步骤,显著地提升了工作效率。
 
4 自动化创建质量单元
 
       在客车有限元前处理过程中,某些零部件或者人员(如发动机、燃油箱、乘客等)无需考虑其自身应力或者变形的情况,可以采用赋予质量单元的方式在整车模型中进行简化模拟。通常设计部门会提供配重参数如表1所示。
 
表1 配重参数表

配重参数表

       通过Tcl/Tk语言,HyperMesh软件可以自动读取表格中每行的参数,并在各坐标点上快速创建相应的质量单元。具体方法为:
 
       1)读取表格中各质心点的x/y/z坐标以及质量信息;
 
       2)利用*createnode命令在各坐标位置创建节点;
 
       3)利用*createmark nodes命令选取各个节点并放置于指定的mark ID中;
 
       4)利用*masselement命令在指定mark ID的节点上创建集中质量单元。
 
       具体代码可以通过查询cmf文件获得,相关命令如下所示:
 
       while {![eof $channel]} {
 
       gets $channel line
 
       if {[string trim $line] ne ""} {
 
       set coor [split $line ","]
 
       set x [lindex $coor 1] 
 
       set y [lindex $coor 2]
 
       set z [lindex $coor 3]
 
       set m [lindex $coor 4]
 
       *createnode $x $y $z 0 0 0 
 
       *createmark nodes 1 "by sphere" $x $y $z 0.01 inside 0 1 0
 
       *masselement 1 $m "" 0 
 
       } }
 
       close $channel
 
       其中,变量line里面存放了.csv表格文件内其中一行的数据,每行中的各个数据用逗号分隔开。x,y,z变量分别为质量点的三个方向坐标。利用*createmark nodes命令将某个节点放置于指定的mark ID中,选择节点的方式有许多种,本文介绍的方法是利用球形选择,即以($x,$y,$z)为球心,0.01mm为半径范围内的节点可以被选中,进而被赋予质量单元。
 
       该工具可以帮助CAE工程师快速地、批量化地创建质量单元,只要有配重参数表,即可在HyperMesh中全部一键生成,避免了大量的重复劳动。实践证明,利用自动创建质量单元工具,每辆车的CAE分析可以节省一名成熟CAE工程师1~2天的时间。 
 
5 结束语
 
       本文主要介绍了利用Tcl/Tk语言开发的HyperMesh前处理自动化小工具。其实现的某些定制化功能,主要是考虑到我司CAE团队自身的特定需求,对客车行业也具有一些通用性的指导意义。客车有限元建模中一些相似的、重复的、繁琐的操作,可以利用二次开发手段很好地解决,从而达到简化流程、规范操作的目的。
责任编辑:程玥
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
兴趣阅读
相关资料
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐