ANSYS如何给任意曲面施加任意方向的均布压力

Please Share Us

点击此处查看 ✿水哥原创ANSYS视频教程清单 ✿

水哥专属答疑服务已开通,点此此处查看详情

       本期给大家带来一个宏文件的开发与使用全过程,宏文件功能如文章标题所示,给任意曲面施加任意方向的均布压力。

       我们在做分析时,有时候总避免不了需要给某些特定的曲面施加特定方向的荷载,常用给面施加压力的有SFA命令,但SFA命令总是沿着面的法向,荷载转换到单元上面也是沿着单元法向的,所以当面法向不一致时,要施加同一个方向的荷载就比较头疼了。解决这种窘境的一个好方法是采用表面效应单元解决,事实上,很多时候,要实现复杂曲面统一方向荷载的施加都是靠表面效应单元解决,例如土木结构里面经常用到的投影荷载。

       采用表面效应单元时,每一次都要新建单元,并且要根据荷载方向的特性,设定不同的单元关键项,水哥有时候觉得甚是麻烦(主要是懒),故编写了如下宏文件,能较好的一步到位根据曲面形状施加各种方向的荷载,供同学们参考使用,本宏文件目前只针对采用壳单元模拟的情况。

       本宏文件思路如下:

1、选取需要施加的面

2、根据面,选择相应的单元

3、获取单元信息

4、计算等效节点荷载

5、循环施加荷载。

宏文件命令流如下:

*Create,Arbpres,mac

Save,Arbs1,Db      !预防使用错误,用Resume,S1,Db返回

Esla,S$Nsla,S,1 

*Get,Elnum,Elem,,count !获取单元数目

*dim,Eleno,,Elnum        !存储单元号

*get,e1,elem,,num,min  

eleno(1)=e1

*do,i,2,elnum

e1=elnext(e1)

eleno(i)=e1

*enddo

Dofsel,S,Fx,Fy,Fz  

Fcum,Add                        !荷载加载设置为叠加

*Do,I,1,Elnum 

*If,Arg1,Eq,1,Then 

Esel,S,,,eleno(i)

*Get,E_area,Elem,Eleno(i),Aproj,Arg2 !用单元投影面积     

*Else 

*Get,E_area,Elem,Eleno(i),Area       !用单元真实面积 

*Endif

ArbP=Arg3                 !压力荷载值 

ArbF=ArbP*E_area         

Esel,S,,,eleno(i) 

Nsle,S,Corner 

*Get,N_num,Node,,Count 

F_N=ArbF/N_num 

*Do,J,1,N_Num 

*if,Arg5,eq,1,then

F,Nelem(Eleno(i),J),Arg4,F_N   !施加节点荷载

*elseif,Arg5,eq,-1,then

F,Nelem(Eleno(i),J),Arg4,-F_N 

*Enddo

*ENDDO

Esla,s 

Fcum,Repl          !荷载加载设置为替换

Dofsel,All 

Allsel 

!清除临时变量 

ELnum=$ArbP=$ArbF=$F_N=$N_num=$Inum=$E_area=

*End 

!宏文件结束

       本宏文件有五个参数,使用前需要将我们施加的面选中,然后在调用该宏,五个参数的含义分别如下: 

1、使用格式:Arbpres,Arg1,Arg2,Arg3,Arg4,Arg5

2、Arg1:1或0,是否进行面积投影,1代表投影,0代表否 

3、Arg2: ‘x’、’y’或’z’,当Arg1=1时有效,指定面积投影方向 

4、Arg3: 压力荷载值 

5、Arg4: ‘fx’、’fy’或’fz’,指定压力的加载方向

6、Arg5:方向正负调整,1代表与指定方向想同,-1代表相反 

7、注意,如果不小心使用错误,或者发生了未可知的错误警告等,可以采用Resume,Arbs1,db命令恢复未加载前模型

        注意Arg2、Arg4采用的是字符型变量,在输入的时候需要用‘  ’符号。

【案例验证】

         如下所示一圆筒结构,长1m,半径0.15m,厚0.01m,材料为钢材,跨中0.4m范围内表面受均布压力10Mpa,采用ANSYS对其分析。

ANSYS如何给任意曲面施加任意方向的均布压力

1、采用表面效应单元

     分析思路:结构使用壳单元模拟,采用四分之一模型计算,用工作平面将跨中400mm范围切割出,划分网格,然后在跨中中生成表面效应单元,最后使用表面单元加载,主要过程命令流如下:

finish

/clear

/prep7

l=1000

r=150

t=10

et,1,shell63

et,2,surf154

keyopt,2,11,2   !整面,否则为投影面

!=========

!建模

!=========

asel,s,loc,z,300,700

esla,s,1

type,2

real,2

esurf

esel,r,type,,2

sfe,all,5,pres,,10,0,-1.0,0

/psf,pres,,2

eplot

!=============

!加载、求解、后处理

切割示意图如下:

ANSYS如何给任意曲面施加任意方向的均布压力

加载示意图如下:    

ANSYS如何给任意曲面施加任意方向的均布压力

计算位移总图:

ANSYS如何给任意曲面施加任意方向的均布压力

2、采用本文编制的宏文件

分析思路:用工作平面将跨中400mm范围切割出,划分网格,然后选中跨中要加载的几何面,直接调用本宏文件即可,主要过程如下:

!==============

!建模

!==============

!选中要加载的面

Asel,s,loc,z,300,700

!调用宏文件

Arbpres,0,’Y’,10,’FY’,-1  

!============

!加载求解

加载示意图如下:

ANSYS如何给任意曲面施加任意方向的均布压力

计算位移总图:

ANSYS如何给任意曲面施加任意方向的均布压力

通过计算结果的对比,可以发现本宏文件能很好的实现均布荷载的导荷,通过调用的方式避免了设置表面效应的麻烦。

那么疑问来了,如果我们施加的方向不是沿整体坐标系方向呢?这时候的处理办法如下:

1、沿着我们加载的方向建立平行的局部坐标系;

2、选中加载区域的节点,旋转节点坐标系至第一步建立好的局部坐标系

3、调用本文宏文件即可。

下面做一个演示,同样的案例,将荷载方向调整45度,如下所示:

ANSYS如何给任意曲面施加任意方向的均布压力

!==============

!建模

!==============

local,11,0,,,,45          !创建局部坐标系

csys,0

asel,s,loc,z,300,700

nsla,s,1

csys,11

nrotat,all                !旋转节点坐标系

!调用宏文件

Arbpres,0,’Y’,10,’FY’,-1  

!============

!加载求解

加载示意图如下:

ANSYS如何给任意曲面施加任意方向的均布压力

ANSYS如何给任意曲面施加任意方向的均布压力

求解结果云图如下:

ANSYS如何给任意曲面施加任意方向的均布压力

有兴趣的同学可以采用表面效应单元的方式对比计算下~~!

祝好

ANSYS结构院

2020.03.05     

欢迎扫描如下二维码关注本站微信公众号:ANSYS结构院

有时间麻烦帮忙点击下公众号文末的广告哦, 权当码字的辛苦费,感谢大家!

Please Share Us
© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容

YOU MAY LIKE…