简单分析Nastran声振灵敏度NTF分析程序编写过程

2018-04-23 10:34:10·  来源:汽车NVH仿真  
 
上次,小编跟大家分享给出了使用hypermesh前处理软件进行NTF分析的教程。这次,我们将只使用UlterEdit软件编写NTF分析计算程序。
上次,小编跟大家分享给出了使用hypermesh前处理软件进行NTF分析的教程。这次,我们将只使用UlterEdit软件编写NTF分析计算程序。

本次编写程序使用到的软件为 UltraEdit;

本文主要介绍一种通过改写nastran计算文件的方式来减少建模时间,前提需要读者对NASTRAN的程序语言有一定的了解;

MSC.Nastran 输入文件简介

MSC.Nastran 的输入文件包含有限元参数的完整描述,包括:
执行的分析类型
计算结果的输入要求
参数的几何表示
单元库
材料属性
边界条件

输入文件的格式为 . bdf, 或者 . dat ,可通过文本编辑或者有限元前处理软件进行建立。输入文件包含着5个不同的部分,输入文件的结构框架如下图所示:

Nastran语句(非必须)

Nastran语句是可选的,主要用来修饰某些操作参数,例如,工作存储状态,数据块的大小,数据块的参数,数值方法等。Nastran语句用于特殊情况,在多数情况下不需要使用。

文件管理段(非必须)
文件管理段也是可选的,它主要用于初始化MSC. Nastran的数据。数据库的初始化包括最大尺寸,成员名和物理名的说明。对于大多数MSC. Nastran计算问题,不要求文件管理语句,因为每次开始运行之前,都会执行缺省的文件管理段。
执行控制段(必须)
执行控制段的主要功能是规定执行工程问题分析解法的类型,对于MSC. Nastran的每一个问题分析都是要求的。执行控制段的结束用CEND限定符来标识。
工况控制段(必须)
工况控制段用于规定与控制分析结果的输出要求(即力,应力,位移等输出要求)。工况控制指令也能管理一组模型数据的输入,定义分析子工况(如在一个作业中施加多组载荷),以及选取载荷和边界条件。工况控制段总是跟随在执行控制段之后,而在数据段之前。
数据段(必须)
数据段总是在工况控制段之后,以限定“BEGIN BULK”开始,以限定符“ENDDATA”结束,包含了有限元参数的全部模型数据:几何,坐标系,单元参数,单元形状,边界条件以及材料属性。

NTF分析程序

Nastran语句

由于在计算NTF的过程中会产生些很大的过程文件,如果进行计算的电脑没有足够的内存会导致计算进行过程中出现由于内存不足终止计算。所以一般对于一些比较大的计算模型,我们会对计算过程中出现的临时文件进行内存分配。实现这一部分的程序如下所示。这部程序为上文所述的“nastran语句”。这段程序写在整段程序的最前面。

简单分析Nastran声振灵敏度NTF分析程序编写过程
nastran语句

执行控制段

然后编写“执行控制段”,由于本次NTF分析的方法为频响,所以紧接着程序后面加上 “SOL 111”表示选择“Model Frequency Respond”作为求解方法,以 “CEND”结束(必须要有),表示执行控制段程序的完成。其中符号 $ 是标识号,首字符以 $ 开头的语句对计算均不起作用,可起到标注功能。


执行控制段

工况控制段(全局工况)

上一章我们了解到,如果我们在hypermesh中分别创建81个DEARE,RLOAD1与DLOAD是一件很烦人的事情,其实我们只要细心想一下就发现,这81个工况中除了每个工况除了激励点位置与激励方向(DEARE)不一样外,其余都一样。如果通过编写程序的方法去设置,其实就是粘贴复制的问题。但是为了更加方便的编写程序,需要我们先对内饰车身激励点进行重新编号。在模型建立的过程中,把需要激励的节点号renumber一下,比如说,本次分析所有的激励点对应的节点号统一为:1001~1082,共81个激励点。后面我们的相关设置就可以实现粘贴复制粘贴复制了。

其实我们从上一章节就注意到这81个工况中,每个工况除了激励点位置与激励方向(DEARE)不一样外,其余都一样,所以我们可以把一样的工况设置统一放在一块,作为一个全局的工况控制程序放在所有工况控制段的前面,所以我们可以紧接着编写一下程序。


全局工况控制段

这部分程序定义了车内驾驶员与乘客人耳附近共3处的声压响应点的节点号集合SET,这个SET的ID号为13(每个ID号是独一的,程序的调用都会根据ID号来检索),响应点对应的节点号为20000001~20000003三点(声压相应点);METHOD(STRUCTURE)=1表示结构模态提取的方式,指向load collector 的ID为1;

METHOD(FLUID)=1表示声腔模态提取的方式,指向load collector的 ID为10;FREQUENCY=2表示响应结果提取的频率范围,指向load collector的ID为2;

SDAMPING(STRUCTURE)与SDAPING(FLUID)分别为结构与流体的阻尼,分别指向load collector的ID的3与30;MSN = 2000表示使用ID号为2000的非结构质量;

MPC=7000001表示运动连接关系,指向ID 7000001;对于响应点为流体节点的情况,DISPLACEMENT=13表示输出SET 13中的节点声压值(指向20000001~20000003节点)。如果该程序写在工况控制段程序的前面,而且在其后面的工况控制没有进行另外设置,以上的设置内容为工况的全局控制,81个工况同时受其作用。

工况控制段(子工况)

设置完了全局统一的工况后,下面我们针对每一个工况不同的地方进行进一步设置。例如,对于前悬挂安装点节点号为1001,我们可以在程序后接着编写:


子工况 subcase 1001

SUBCASE10011表示设置的前悬安装点X向激励的工况步,LABEL=1001-X表示该工况步标签为1001-X,DLOAD=10011表示加载ID号为10011的激励力;同理,对于SUBCASE10012与10013也一样。到这里,前悬挂1001节点3个方向的激励工况就已经设置完成了(注意:为了方便操作,我使用数值1,2,3表示方向X, Y, Z. 在这里SUBCASE的ID写成10011表示节点1001的X向,后面所有的工况步ID命名方式亦是如此。当然对于这种关联,读者完全可以依据个人记忆的方式进行适当调整)。

然后,把上面的SUBCASE 10011到10013间程序复制,再接着后面粘贴,把内容中的1001改成1002即可完成前副车架安装点1002节点3个方向的激励工况。同样的方法把就可以很快几分钟把81个工况全部设置出来。工况步设置完成后,就要进行下一步数据段程序的编写(下图截取部分子工况程序,为了使程序清晰可读,建议适当使用 $ 字符来注释)。


部分子工况程序

经过了全局与子步的设置,工况控制段程序就完成了。

控制段

这一部分要特别注意,该段程序必须要写上 "begin bulk",表示开始读入模型数据。其次,这段程序需要严格按着格式来编写,每一个数据必须放在特定的位置,每个数据按照8字节间隔大小分开。程序里面每一个具体的词都能够在nastran自带的帮助手册中查到,程序中必须以BEGIN BULK开头,EIGRL, TABDMP, TABLED1, FREQ1程序的紧接着的数字为其ID号,被前面所讲的工况控制段程序检索调用(图中每隔8个字节有一条白线隔开,方便检查,如果读者不知道程序怎么填,找到安装nastran里面的帮助文件,搜索对应的词就会得到对应程序的代码解析)。



DLOAD, RLOAD1, DAREA指令紧跟着也是对应的ID号,被控制段程序检索调用。同样,我们先把节点1001对应3个方向的DLOAD, RLOAD1 与 DAREA对应的程序写好,然后只需要粘贴复制,通过替换的方式把1001替换成1002,1003.....1082即可完成所有DLOAD, RLOAD1, DAERA的设置。(几分钟的事情把本来需要差不多一个多小时的活干完,而且可以有效减少错误的发生,适当采用 $ 字符进行标准,进一步提高容错率。)



最后,使用include语句,把我们的内饰车身与声腔的几何模型放进程序里,调用该几何模型。在程序的结尾需要加上 "ENDDATA" 结束数据块的输入。到这里,分析程序就编好了,导出 .dat格式,即可提交nastran计算了。



分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号