ANSYS施加面载荷(转)
本文摘自《ANSYS工程分析进阶实例》---王呼佳、陈洪军主编,在此对本书作者表示感谢!一般可以通过两种方法施加面荷载,一是在表面上覆盖一层表面效应单元SURF153或SURF154;二是通过apdl语言编程施加。基本思路如下:
人为将面上压力荷载换算成集中力并施加到节点上。施加集中力时,将合力分解为X,Y,Z方向的分力。
(1)选中所要施加压力的表面,在面上生成一层shell63单元。
(2)对生成的shell63单元,使用循环语句逐步进行以下操作。
(3)得到每个单元的面积及单元中心的X,Y,Z坐标值。
(4)将坐标值代入压力随坐标变化的函数式,得到单元中心点处的压力值,并乘以面积得到单元所受的合力。
(5)将合力平均后,施加到单元的各个节点。
(6)对每一个面单元操作完成后,清除面上的shell63单元,进行后续操作。
附示例如下:
一挡土墙,地面全约束,侧面受和水平方向呈16.5度的土压力,大小随埋深而线性增加,表达式为P=1.71X10E4X(H-1)
FINI
/CLE
/FILNAME,THE LOAD OF FACE
/prep7
et,1,45 !solid45实体单元
et,2,42 !plane42平面单元
mp,ex,1,26e9 !C20混凝土
mp,prxy,1,0.2 !泊松比
mp,dens,1,2449 !密度
!建模
k,1
k,2,,-9
k,3,-6.35,-9
k,4,-3.35
a,1,2,3,4
type,2
aesize,all,0.5
amap,1,1,2,3,4 !映射划分面单元
type,1
extopt,ESIZE,15 !指定拉伸方向划分数为15
extopt,ACLEAR,1 !拉伸完毕后,清除面单元
vext,all,,,,,8.2 !z方向拉伸8.2m
!施加侧面土压力
et,500,shell63 !定义63号单元,用于施加载荷
!将面选取出来
type,500
asel,s,loc,x,0 !选出将施加载荷的面
amesh,all
esla,s ! 选择面上所有单元
nsla,s,1 !选择面上所有节点
*get,enmax,elem,,num,max !得到选择集中最大的单元号
*get,enmin,elem,,num,min !得到选择集中最小的单元号
dofsel,s,fx,fy,fz !选择将进行操作的自由度
fcum,add !将力的施加方式设置为"累加",而不是缺省的"替代"
*do,i,enmin,enmax !开始对第enmin号到第enmax号单元的循环
*if,esel(i),eq,1,then !选择语句,判断当前单元是否在选择集中
*get,ae,elem,i,area !得到单元真实面积
!!!!!!!!get,ae,elem,i,aproj,x !!! 此命令用于X向的投影面积
xe=centrx(i) !单元中心的X坐标(用于求解压力值)
ye=centry(i) !单元中心的Y坐标(用于求解压力值)
ze=centrz(i) !单元中心的Z坐标(用于求解压力值)
!输入压力随坐标变化的公式
p_e=1.71e4*(ye-1) !压力公式
f_tot=p_e*ae !单元上的合力
esel,s,elem,,i !选择第i个单元
nsle,s,corner !选择单元角点上的节点
*get,nn,node,,count !得到当前选择集中节点的个数
f_n=f_tot/nn !得到每个节点上需施加的力
*do,j,1,nn !此循环对第i个单元上的每个节点施加集中力
f,nelem(i,j),fx,f_n*cos(16.5*3.14/180) !压力的作用方向为X方向
f,nelem(i,j),fy,f_n*sin(16.5*3.14/180) !压力的作用方向为Y方向
*enddo
*endif
esla,s !重新选择面上所有单元
*enddo
aclear,all !清除面上的shell63单元
fcum,repl !将力的施加方式还原为缺省的"替代"
dofsel,all !还原为所有自由度
allsel
!约束地面
asel,s,loc,y,-9
da,all,all
/solu
alls
solve
转自:http://blog.sina.com.cn/s/blog_631ee4a90101r9ry.html
页:
[1]