HyperMesh中集成ANSYS命令流的实用教程


如何在HyperMesh中使用ANSYS命令流的图1

HyperMesh是一款优秀的通用前处理软件,与主流的有限元分析软件都有接口,如ANSYS、LS-DYNA、ABAQUS等。鉴于有些有限元分析软件的前处理功能相对较弱,很多的CAEer选择使用HyperMesh与其他有限元求解器进行联合仿真。
如何在HyperMesh中使用ANSYS命令流的图2


笔者也经常使用 HyperMesh做前处理,然后将求解文件 (CDB文件)导入ANSYS进行求解。由于一些原因,
HyperMesh不能完整地为ANSYS制作一个CDB文件,有时需要我们在ANSYS中做进一步的处理后再进行计算,这样就降低了工作效率。比如:
 


问题一:有时,我们想关掉 ANSYS的单元形状检查(虽然这样做是ANSYS不建议的),就必须在ANSYS中执行< SHPP,OFF,ALL>命令,这样就出现了一个问题:我们每次在ANSYS导入CDB文件之前,都必须先把 单元形状检查关掉,这样一来让本不宽裕的计算时间雪上加霜……
   

如何在HyperMesh中使用ANSYS命令流的图3



问题二:另外,笔者发现:HyperMesh为ANSYS创建MPC184单元时,只能设置K1(约束或连接单元类型)关键选项。比如:我们想使用MPC184单元建立一个刚性梁,设置完 K1=1 以后,有时还要设置它的K2关键选项(运动约束算法),这个是在HyperMesh中无法进行的,只能设置完K1以后,在ANSYS中再设置K2……

如何在HyperMesh中使用ANSYS命令流的图4

上面提到的2个问题,都可以在ANSYS导入CDB文件后使用命令流解决,但是比较浪费时间。所以笔者就想:可不可以在HyperMesh中输入ANSYS的命令流,导出时包含在CDB文件中,可以直接被ANSYS读取呢?经过不断尝试,还真发现了这个功能。即在求解控制卡片中设置:

如何在HyperMesh中使用ANSYS命令流的图5




01UNSU_PREP7


UNSU_PREP7:在生成有限元模型之前插入的命令。由于输出的CDB文件自带一条</PREP7>命令(如下图),所以这个命令相当于在前处理中输入的命令。我们在这个卡片中输入ANSYS的命令流以后,这些命令流将被放置在CDB文件的最前端

如何在HyperMesh中使用ANSYS命令流的图6



我们可以用这个控制卡片解决问题一:

由于我们设置停用单元形状检查时,需要在导入CDB文件之前,所以我们可以在卡片UNSU_PREP7中输入命令<SHPP,OFF,ALL>。由于卡片中的命令在前处理中被执行,所以我们不需要使用</PREP7>命令进入前处理。

如何在HyperMesh中使用ANSYS命令流的图7



打开输出的CDB文件,我们发现:使用 UNSU_PREP7卡片输入的命令在 第14行,位于产生节点( 第18行)之前,所以这条命令将先被执行,即在导入单元数据之前就已经关闭了单元形状检查。
 

如何在HyperMesh中使用ANSYS命令流的图8

将CDB文件导入ANSYS,会收到ANSYS抛出的一个警告,说明ANSYS确实关闭了单元形状检查。



02UNSU_END

UNSU_END:执行完所有控制卡片之后插入的命令。我们在这个卡片中输入ANSYS的命令流以后,这些命令流将被放置在 CDB文件的最后端
 

我们可以利用该卡片来输入一些 求解完成后需要执行的命令。比如计算完成后我们想直接显示计算结果,只需在分析中,插入 UNSU_END卡片,并输入 </POST1>和<PLNSOL,U,SUM>,表示进入后处理并显示整体位移结果,然后输出CDB文件。

如何在HyperMesh中使用ANSYS命令流的图10



打开输出的CDB文件,我们发现:使用UNSU_END卡片输入的命令在第183、184行,的确是CDB文件中的最后一条命令。

如何在HyperMesh中使用ANSYS命令流的图11



将CDB文件导入ANSYS,ANSYS求解完成后自动显示了整体位移结果,完成了我们的目标。

如何在HyperMesh中使用ANSYS命令流的图12



03UNSU_PREP_MID

UNSU_PREP_MID:生成有限元模型之后、载荷步数据定义之前插入的命令。如此,我们就可以利用这张卡片对我们建立的有限元模型进行修改。


我们可以用这个控制卡片解决问题二:

我们在HyperMesh中使用MPC184单元建立了一个刚性梁(K1=1)模型,单元ID为4。为了验证UNSU_PREP_MID输入的命令在载荷步数据定义之前,我们也为该模型定义了1个约束

如何在HyperMesh中使用ANSYS命令流的图13

我们知道,MPC刚性梁单元的运动约束算法缺省为直接消去法(K2=0),当我们想使用拉格朗日乘子法(K2=1)时,没办法在HyperMesh中直接定义定义关键选项K2,所以之前笔者都是先把CDB文件导入ANSYS然后再修改K2。现在我们尝试使用UNSU_PREP_MID卡片对K2进行修改。



我们选择UNSU_PREP_MID卡片,在卡片中输入<KEYOPT,4,2,1>命令(这条命令的意思是将ID为4的单元的K2设置为1),然后输出CDB文件。

如何在HyperMesh中使用ANSYS命令流的图14



打开输出的CDB文件,我们发现:使用UNSU_PREP_MID卡片输入的命令在第59行,位于定义的约束数据(第69行)之前,所以这条命令将先于定义约束命令被执行,即在定义约束之前完成了对刚性梁MPC184单元K2关键选项的修改。

如何在HyperMesh中使用ANSYS命令流的图15



在ANSYS中导入CDB文件,打开MPC184单元的设置,我们发现,184单元的K2关键选项确实已经被修改为K2=1(拉格朗日乘子法),完成了我们的目标。

如何在HyperMesh中使用ANSYS命令流的图16




04UNSU_PREP_END

UNSU_PREP_END:载荷步数据定义之后、执行其他控制卡片命令之前插入的命令。举个栗子:我们有时会在HyperMesh中设置其他的ANSYS控制卡片,如添加加速度的卡片ACEL、执行求解命令的SOLVE卡片等。使用UNSU_PREP_END输入的命令,将在执行这些控制卡片命令之前执行。

为了验证UNSU_PREP_END卡片命令插入的位置,我们为该模型也添加了/SOLU、ACEL和SOLVE控制卡片。

如何在HyperMesh中使用ANSYS命令流的图17



我们选择UNSU_PREP_END卡片,同样在卡片中输入<KEYOPT,4,2,1>命令(这条命令的意思是将ID为4的单元的K2设置为1),然后输出CDB文件。

打开输出的CDB文件,我们发现:使用UNSU_PREP_END卡片输入的命令在第68行,位于定义的约束(第66行)数据之后、执行其他控制卡片命令(第73、74、75行)之前。所以这条命令将先于其他控制卡片命令被执行,即在执行其他卡片命令之前完成了对刚性梁MPC184单元K2关键选项的修改。同样能帮助我们解决问题二。

如何在HyperMesh中使用ANSYS命令流的图19



在ANSYS中导入CDB文件,打开MPC184单元的设置,我们发现,184单元的K2关键选项确实已经被修改为K2=1(拉格朗日乘子法),完成了我们的目标。

如何在HyperMesh中使用ANSYS命令流的图20



总结

1.UNSU_PREP7:用来输入在生成有限元模型之前的命令,所输入的命令位于CDB文件的最前端。

2.UNSU_END:用来输入CDB文件最后执行的命令,所输入的命令位于CDB文件的最后端。

3.UNSU_PREP_MID:在生成有限元模型之后、载荷步数据定义之前插入的命令。

4.UNSU_PREP_END:在载荷步数据定义之后、执行其他控制卡片命令之前插入的命令。

如何在HyperMesh中使用ANSYS命令流的图21


上图为4种卡片在CDB文件中的位置(各种命令的执行顺序)
       

上述所有操作,在HyperWorksX中仍然适用。

实际上使用者在HyperMesh中的操作,都被HyperMesh转换成ANSYS的命令流,记录在CDB文件中,这也是HyperMesh与ANSYS联合仿真的实质

由于笔者未找到上述4种卡片在官方帮助文件中的解释,上述内容均为笔者自行总结,因此可能会存在一定的错误或偏差,还望各位读者不吝指正。


至此,本文完。
   

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空