ANSYS的结果进行二次运算并显示云图

2017-02-23  by:CAE仿真在线  来源:互联网



编者按

遇到几次问询关于ANSYS重新生成云图的问题,今天以一个例子作个比较详细的说明。



正文


在实际应用中经常会需要将ANSYS的计算结果进行二次运算,并重新显示新的结果云图。也即是ANSYS的现有计算结果不能满足实际需求,需要自己在一次计算结果的基础之上编写计算方法。

在ANSYS里,这个过程是通过修改节点或者单元的结来实现的,笔者以前在ABAQUS里面也实现过这样的过程,不过在ABAQUS里面不是通过直接修改节点/单元解实现的,而是可以重新定义新的结果变量。

ANSYS修改节点解释通过DNSOL命令完成的,命令解释如下:

DNSOL, NODE, Item, Comp, V1, V2, V3, V4, V5, V6

其中Item和Comp这两个量是需要修改的变量名称,例如需要修改位移X,则Item应为U,Comp应为X,后面的V1-V6就是新的值。

可以看到,利用DNSOL命令每次只能修改一个节点的值,因此,很多情况下是需要对全部的节点值进行修改,故通常需要和遍历命令一起使用。

下面以一个实际的例子说明具体的使用方法。

新建一个简单的模型,加载求解得到以下的结果,分别为x方向的位移和y方向的位移。

X方向的位移如下:

ANSYS的结果进行二次运算并显示云图ansys图片1

Y方向的位移如下:

ANSYS的结果进行二次运算并显示云图ansys图片2

现在需要将X和Y方向的位移进行重新计算,假设:

新的Ux=Ux**2+0.1

新的Uy=Uy**2-0.1

具体实现过程是先依次读取计算得到的Ux和Uy,保存在自定义的数组中,然后定义新的数组,将前面的数组的数据分别处理后保存到新的数组之中,最后依次读取新的数组的数据再通过DNSOL命令进行修改,修改完成即可显示新的结果。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!读取并保存原始节点解

alls,all

*get,node_num,node,,count

*dim,dis_data,array,node_num,3

*do,i,1,node_num,1

*get,Ux_temp,node,i,u,x

*get,Uy_temp,node,i,u,y

dis_data(i,1)=i

dis_data(i,2)=Ux_temp

dis_data(i,3)=Uy_temp

*enddo

!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!重新计算节点解并保存

*dim,dis_data_new,array,node_num,3

*do,i,1,node_num,1

dis_data_new(i,1)=dis_data(i,1)

dis_data_new(i,2)=dis_data(i,2)**2+0.1

dis_data_new(i,3)=dis_data(i,3)**2-0.1

*enddo

!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!逐一修改节点解

*do,i,1,node_num,1

dnsol,i,u,x,dis_data_new(i,2)

dnsol,i,u,y,dis_data_new(i,3)

*enddo


这里面需要注意一个问题,利用DNSOL命令是必须在激活FULL graphics的情况下,因此必须关闭POWRGRPH。

之后重新显示x和y方向的位移,分别如下:

X方向的位移如下:

ANSYS的结果进行二次运算并显示云图ansys分析图片3

Y方向的位移如下:

ANSYS的结果进行二次运算并显示云图ansys分析图片4

可以看到,云图形状发生了变化,数值也发生了变化。

修改之前:

X方向位移:最大0.506,最小0

Y方向位移:最大0.079,最小-0.079

修改之后:

X方向位移:最大0.356,最小0.1

Y方向位移:最大-0.0793,最小-0.1


APDL命令流


/prep7

et,1,182

MPTEMP,,,,,,,,

MPTEMP,1,0

MPDATA,EX,1,,196e3

MPDATA,PRXY,1,,0.3

MPDATA,DENS,1,,7.85E-9

RECTNG,-50,50,-50,50,

wprot,0,0,90

asbw,all

wprot,0,90

asbw,all

alls,all

lsel,r,length,,50

lesize,all,,,10

alls,all

amesh,all

nummrg,node,,,,low

/solu

alls,all

lsel,r,loc,x,-50

aplot

dl,all,,all

alls,all

lsel,r,loc,x,50

sfl,all,pres,-1000

alls,all

solve

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

/post1

alls,all

*get,node_num,node,,count

*dim,dis_data,array,node_num,3

*do,i,1,node_num,1

*get,Ux_temp,node,i,u,x

*get,Uy_temp,node,i,u,y

dis_data(i,1)=i

dis_data(i,2)=Ux_temp

dis_data(i,3)=Uy_temp

*enddo

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

*dim,dis_data_new,array,node_num,3

*do,i,1,node_num,1

dis_data_new(i,1)=dis_data(i,1)

dis_data_new(i,2)=dis_data(i,2)**2+0.1

dis_data_new(i,3)=dis_data(i,3)**2-0.1

*enddo

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

*do,i,1,node_num,1

dnsol,i,u,x,dis_data_new(i,2)

dnsol,i,u,y,dis_data_new(i,3)

*enddo



开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:ANSYS的结果进行二次运算并显示云图 Ansys有限元培训 Ansys workbench培训 ansys视频教程 ansys workbench教程 ansys APDL经典教程 ansys资料下载 ansys技术咨询 ansys基础知识 ansys代做 Fluent、CFX流体分析 HFSS电磁分析 Abaqus培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com