以前我都是使用Hypermesh 划分好单元后,导出.bdf文件,再打开Patran 新建一个db,导入bdf后再设置求解相关参数,再求解。这样未免麻烦了一些,毕竟打开Patran还是要加载挺久的,于是我在想,能不能用Hypermesh设置好求解相关参数后导出.bdf直接提交给Nastran求解器 求解?
赶紧上网搜了一下,确实可以这样操作,也不复杂,主要是通过Hypermesh往.bdf文件里写入Card卡片 实现。但网上的方法有点杂乱,没讲清楚各Card卡片的设置是干嘛的,有些设置甚至有错误,所以我自己搞清楚后,整理了一下,发到知乎上,方便自己和各位同行参考。
也欢迎各位同行多交流,有写错的地方烦劳指正。
以一个简单的梁模型为例子,如下图所示。已经利用Hypermesh划分好了网格,其他还什么都没干,可以看到最左边的Model View栏里只有Compoent、Materials和Properties。
接下来要给这个梁设置约束。(当然,如果是求解自由模态,那就不需要设置约束了)
点击Analysis->constraints,约束一端的六个自由度,成为悬臂梁。
左边的Model View栏里出现了Load Collectors,我们把这个约束命名为Fixed(当然不重命名也没事,只是重命名可以看着更直观)。
平时到了这步,我就会把模型导出成.bdf然后导入Patran再求解了。
但如果想导出的.bdf文件直接提交Nastran求解器求解,还需要接下来几步的设置。
说白了,我们进行一系列设置,其实本质就是用Hypermesh在.bdf文件里写一些语句,这些语句会告诉Nastran求解器,我们要算模态,用什么算法算模态,计算的模型长啥样。
比如这一步设置的约束,其实就是在.bdf文件里写入了这样的语句
SPC 1 1 123456 0.0
这个语句的意思是,创建了一个SPC约束 (Single-Point Constraint 单点约束)
第一个数字表示这个SPC约束的ID是多少,这里是1
第二个数字表示约束作用在几号节点,这里是1,就是约束作用在1号节点
第三个数字表示约束的方向,123456就表示约束了x、y、z、rx、ry、rz(r是rotation转动方向)
第四个数字表示约束大小,这里是0.0,表示约束大小均为0.0。就是不能动的意思了。
刚才我们设置的是模型的约束,告诉了Nastran哪些节点是不能动的。我们还需要设置对求解方法的“约束”,什么叫对求解方法的“约束”?
听着一头雾水,其实很简单,连续体模态是无穷多的,总不可能你告诉求解器你要算模态了,然后求解器就一直计算,给你算几万个模态出来吧?那计算机都要累死了,所以我们要告诉求解器,对于求解方法也有一些“约束”,比如告诉求解器,你只算前10阶模态就可以了,然后你用某某算法就可以了,这就是对求解方法的“约束”。
所以,我们还是在刚才创建约束的Load Collector里新建一个“约束”。操作方法如下:
在Model View里右键Creat->Load Collector,然后给这个新的Load Collector设置Card Image为EIGRL。EIGRL的意思是,计算Eigenvalue(特征值),特征值是Real(实数)形式的,算法是Lanczos。
我重命名了一下为FreqConfig(当然不重命名也没事,只是重命名可以看着更直观)。这时会看到多了一些参数
其他几个不是那么重要,最主要是这几个:
V1,求解特征频率的下限
V2,求解特征频率的上限
ND,求解特征频率的个数
NORM,特征向量归一化方法,默认MASS就好,即按质量归一化
比如我这里填的是V1是1,V2是1000,然后ND是10,意思就是计算这个模型,从1到1000Hz频段内找到10个模态频率。当然,V1、V2可以不填,只填ND,这样就是从0开始一直往高频率找,找够10个就停止计算。
设置完后,导出的.bdf文件里就会多出一行
EIGRL 2 1.0 1000.0 10 MASS
EIGRL后第一个数字表示这个EIGRL在Load Collector里的ID,这里是2
后面几个数字意思就很明显了,和我们设置的频率范围是一样的顺序,就不赘述了。
这个其实就是在.bdf文件里告诉Nastran求解器,你需要用Lanczos求解实特征值,求解多少个特征值。
接下来我们就要创建Nastran里的Subcase计算工况了,而Hypermesh里面叫法不太一样,HyperMesh里叫做载荷步Load Step。
所以在Model View里右键Creat->Load Step,这样就创建好了一个Subcase或者说是Load Step。可以看到里面有很多参数可以选择,首先我们要改的是Analysis type分析类型。可以选择默认的Generic(通用)或者换成Normal modes(模态),都是一样的,唯一不同是选后者选项会少很多,方便设置。
接下来要设置两个选项就行,一个是SPC单点约束,另一个是Method(Struct)求解方法(结构动力学)。SPC选择对模型的约束Fixed(即第一小节里的设置),Method(Struct)选择对求解方法的“约束”FreqConfig(即第二小节里的设置)。
这个操作就是告诉求解器,这个计算工况,是要用什么样的约束和什么样的求解方法来计算。
然后在底下的Subcase Option里找到OUTPUT选项,告诉求解器你要输出什么东西。不然求解器会一股脑给你输出好多你不关心的东西。
我们是做模态分析,所以我最想知道的当然是模态振型向量VECTOR了。所以OUTPUT里找到VECTOR勾选上,然后里面继续选中SORTING和FORM,默认SORT1和REAL。(这个就是输出实特征值,以及避免计算特征值计算时排序乱掉的)
这样就设置好了SUBCASE计算工况,我们再看看.bdf文件告诉了求解器什么东西。输出.bdf文件,发现多了几行
SUBCASE 1
LABEL= loadstep1
SPC = 1
METHOD(STRUCTURE) = 2
ANALYSIS = MODES
VECTOR(SORT1,REAL) = ALL
这个就很好阅读了,.bdf文件告诉求解器,要求解这个工况,这个工况的ID是1,名字叫loadstep1
这个工况里,对模型的约束是ID为1的约束,对求解方法的“约束”是ID为2的“约束”
然后输出的是所有模态振型向量VECTOR
到这里,.bdf文件已经告诉求解器足够多的信息了,按道理就可以求解了,但Nastran还需要两样东西。
一样是,你要告诉Nastran,用哪个求解器求解模态,Nastran里求解模态用的是SOL103求解器 。所以要这样设置:
右下角菜单点击Analysis->control card->SOL,选择Normal modes,这样就会发现左上角的Model View里多了一个Card,写着SOL103
另一样是,计算完成后,肯定要输出一个结果文件,这个结果文件的格式你必须告诉求解器是什么。我们常用的就是.op2格式,所以右下角菜单点击Analysis->control card->PARAM里,勾选POST,然后把POST的值改成1,这个1就表示输出.op2格式的结果文件。
这样设置完后,导出的.bdf文件里面就多了两行
SOL 103
PARAM,POST,1
这两个语句作用就是告诉Nastran,要用SOL103求解器计算,然后输出.op2结果文件。
接下来把这个.bdf文件提交Nastran计算就可以了,大功告成!再也不用打开Patran了!
计算完成后生成的.op2结果文件也可以直接导入VirtualLab或者HyperView里查看,不需要用Patran后处理。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...