ANSYS中实现弹性地基的方法探索

前面讲述了两期关于ANSYS中弹性地基的实现方法,其方式主要是采用特殊单元定义实常数的方法来解决。这些所谓的特殊单元其实也就是在我们定义该实常数时,软件会自动创建弹簧,只是该弹簧不能由用户访问。除此之外,细心的同学还会发现,该类单元不能实现单向弹簧的作用,这是与实际严重不符合的。因而在进行模拟结构可能受拉导致地基弹簧失效的情况时,该类单元是不可用的。

 除了可以采用这些特殊单元外,我们也可以自己手动添加弹簧来模拟弹性地基。自己手动添加弹簧的好处便是可以设置单向受拉或者单向受压弹簧,此处仍以前面文章中的大板为例,来简要说明手动添加弹簧的方法。关于ANSYS中实现单向弹簧的讨论,下节再仔细讨论。

 首先回顾下前面文章的例子,设有一尺寸为8mX4mX0.6m的大板,在其顶面3mX2m的居中范围内作用均布荷载,荷载大小为150KN/m^2,弹性地基刚度取20MN/m^3,板的弹性模量取30GPa,泊松比系数取0.2,试分析其在均布荷载作用下的结构响应。

  手动设置弹簧的一个核心点便是如何确定不同位置处弹簧的弹性刚度,弹簧的弹性刚度(KN/m)=弹性地基刚度(KN/m^3)*弹簧节点投影面积(m^2)。显然当单元划分大小不一致的时候,我们不可能手动去添加弹簧刚度,这样工作量很大。解决方法便是利用APDL编程循环获取弹簧节点对应的面积,乘以地基刚度并赋予相关节点即可。

 因而,如何获取节点对应的单元面积是建模的重要地方。一个思路便是采用*get命令获取单元表面积,这对于壳单元是可以的。而对于实体单元,则可以通过表面效应单元来间接获取。

命令流如下:(篇幅所限,只列出核心命令流)

finish

/clear

/prep7

A=8$B=4$H=0.6

A1=3$B1=2

Q=150e3

ESF=2.0e7            !弹性地基刚度


ET,1,solid186

et,2,surf154         !辅助表面效应单元

et,3,combin39

!单向弹簧设置

keyopt,3,4,0

keyopt,3,3,3

keyopt,3,1,0

keyopt,3,2,1

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

建模、划分单元、建立表面效应单元

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

!下列命令流为核心命令流

allsel,all

!选择与地基相连的节点和单元

!此处考虑在整个模型中单元和节点号可能不连续的问题

!假定四边形和三角形两种单元

!获得节点总数,即弹簧个数;单元总数

*get,tmmax,node,,num,max  !整个模型的最大节点号

esel,s,type,,2

!此处需注意,我们只选择各个单元角点处的节点

nsle,s,corner

*get,ntol,node,,count !节点总数

*get,etol,elem,,count !单元总数

*get,nmax,node,,num,max !最大节点号

*dim,nodno,,ntol !存储节点号

*dim,nodk,,nmax  !存储各节点面积、弹簧刚度

*dim,eleno,,etol !存储单元号

!获得各个单元号

*get,e1,elem,,num,min

eleno(1)=e1

*do,i,2,etol

e1=elnext(e1)

eleno(i)=e1

*enddo

!获得各节点号

*get,n1,node,,num,min

nodno(1)=n1

*do,i,2,ntol

n1=ndnext(n1)

nodno(i)=n1

*enddo

!求每个节点对应的面积

*do,i,1,etol

ei=eleno(i)

n1=nelem(ei,1)

n2=nelem(ei,2)

n3=nelem(ei,3)

n4=nelem(ei,4)

*get,ai,elem,ei,area

*if,n3,ne,n4,then

ai=ai/4.0

nodk(n1)=nodk(n1)+ai

nodk(n2)=nodk(n2)+ai

nodk(n3)=nodk(n3)+ai

nodk(n4)=nodk(n4)+ai

*else

ai=ai/3.0

nodk(n1)=nodk(n1)+ai

nodk(n2)=nodk(n2)+ai

nodk(n3)=nodk(n3)+ai

*endif

*enddo

!求得弹簧刚度

!面积乘以弹性地基刚度

*do,i,1,nmax

nodk(i)=nodk(i)*ESF

*enddo


*do,i,1,ntol

ni=nodno(i)

r,i+1,0.01,nodk(ni)*0.01

*enddo

!创建弹簧单元

type,3

*do,i,1,ntol

ni=nodno(i)

!注意,此处为好观察弹簧,所以没有选择重合,求解时,软件会提示节点不重合的警告,一般而言,自己建模时可以重合节点。

n,tmmax+i,nx(ni),ny(ni),nz(ni)-0.5 !创建节点(重合)

real,i+1

e,ni,tmmax+i

*enddo

nsel,s,,,tmmax+1,tmmax+ntol

d,all,all

finish

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

求解,后处理

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

建立的弹簧单元如下所示:


细节如下:



求解结果对比:

采用前面方法计算出来的竖向位移云图如下:


采用本方法计算出来的位移云图如下:


各个弹簧单元的轴力如下:


 从上述结果可见,采用手动弹簧时,最大位移为0.001846,采用前面方法最大位移为0.001847,两者结果吻合。同时,从弹簧反力也可以看出,本例所有弹簧均受到压力,无拉力产生,结果可信。

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

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空