接触面上的压力总和

单面接触用于当一个物体的外表面与自身接触或和另一个物体的外表面接触时使用.
单面接触是ANSYS/LS-DYNA中最通用的接触类型,因为程序将搜索模型中的所有外表面,检查其间是否相互发生穿透.
由于所有的外表面都在搜索范围内, 不需要定义接触面与目标面.
在预先不知接触情况时,单面接触非常有用.
相对于ANSYS隐式分析 , ANSYS/LS-DYNA 的单面接触不会非常耗时。
大多数冲击与碰撞问题需要定义单面接触
当接触面之间的穿透超过接触单元厚度的40%时,单面接触自动释放接触,从而对下列问题造成潜在的问题 :
1. 超薄部分
2. 具有低刚度的软体
3. 高速运动物体之间的接触
单面接触在 ASCII rcforc 文件中不记录所有的接触反作用力. 如果需要接触反力, 可以使用点到面或面到面接触。
有效的接触类型有 Single Surface, Automatic Single Surface, Automatic General, Eroding Single Surface 和 Single Edge
第三版,欢迎指正!
!calculate mean contact pressure
!file name : pressure.txt
!command: /input,pressure,txt
!pave is the mean contact pressure
esel,s,type,,3 !contact element 172
*get,nelm,elem,0,count
*get,el,elem,0,num,min
*dim,pel,,nelm,1
*dim,sfel,,nelm,1
pfsum=0
pfsumx=0
pfsumy=0
sfsum=0
sfsumx=0
sfsumy=0
asum=0
asumx=0
asumy=0
pave=0 !the average contact pressure
numcont=0 !the number of contact elements
cnfxsum=0
cnfysum=0
pi=4*atan(1)
*do,i,1,nelm
*GET,stat1,ELEM,el,NMISC,19,1,2 !stat1, contact element status
*if,stat1,ge,2,then !if stat1>=2, it is in close contact,else it''s open
!*GET,ael,ELEM,el,AREA
!For axisymmetric model
*GET,lel,ELEM,el,LENG
nd1=nelem(el,1)
nd2=nelem(el,2)
sintheta=(ny(nd2)+uy(nd2)-ny(nd1)-uy(nd1))/lel
costheta=(nx(nd2)+ux(nd2)-nx(nd1)-ux(nd1))/lel
r1=nx(nd1)+ux(nd1)
r2=nx(nd2)+ux(nd2)
!ael=pi*(r1+r2)*lel
ael=(r1+r2)*lel
!*
!calculate force in x and y direction
*GET,lelx,ELEM,el,LPROJ,X
*GET,lely,ELEM,el,LPROJ,Y
aely=(r1+r2)*lely
aelx=(r1+r2)*lelx
!*
*GET,pel( i ),ELEM,el,SMISC, 5,1,2 !get normal contact pressure of contact element el.
*GET,sfel( i ),ELEM,el,SMISC, 3,4 !get tangential contact stress of contact element el.
*GET,cnfx,ELEM,el,NMISC, 21 !get Contact element el force-x component.
*GET,cnfy,ELEM,el,NMISC, 22 !get Contact element el force-y component.
cnfxsum=cnfxsum+cnfx
cnfysum=cnfysum+cnfy
!*
asum=asum+ael
pfsum=pfsum+ael*pel( i )
sfsum=sfsum+ael*sfel( i )
!sum of the forces in x and y directions
asumx=asumx+aelx
asumy=asumy+aely
pfsumx=pfsumx+ael*pel( i )*sintheta
pfsumy=pfsumy+ael*pel( i )*costheta
sfsumx=sfsumx+aelx*sfel( i )*costheta
sfsumy=sfsumy+aely*sfel( i )*sintheta
!*
numcont=numcont+1
*endif
el=elnext(el)
*enddo
!average and total forces
pave=pfsum/asum
pfsum=pi*pfsum
sfave=sfsum/asum
sfsum=pi*sfsum
!average and total forces in x and y directions
pavex=pfsumx/asumx !平均法向接触力x向分量
pfsumx=pi*pfsumx !法向接触力x向分量
pavey=pfsumy/asumy !平均法向接触力y向分量
pfsumy=pi*pfsumy !法向接触力y向分量
sfavex=sfsumx/asumx !平均摩擦力x向分量
sfsumx=pi*sfsumx !摩擦力x向分量
sfavey=sfsumy/asumy !平均摩擦力y向分量
sfsumy=pi*sfsumy !摩擦力y向分量
!*
cnfxsum=cnfxsum !x向接触力(摩擦力和法向接触力的x向分量)
cnfysum=cnfysum !y向接触力(摩擦力和法向接触力的y向分量)
第四版,欢迎指正!
!calculate mean contact pressure
!file nameressure.txt
!command: /input,pressure,txt
!pave is the mean contact pressure
esel,s,type,,3 !contact element 172
*get,nelm,elem,0,count
*get,el,elem,0,num,min
*dim,pel,,nelm,1
*dim,sfel,,nelm,1
pfsum=0
pfsumx=0
pfsumy=0
sfsum=0
sfsumx=0
sfsumy=0
asum=0
asumx=0
asumy=0
pave=0 !the average contact pressure
numcont=0 !the number of contact elements
cnfxsum=0
cnfysum=0
pi=4*atan(1)
*do,i,1,nelm
*GET,stat1,ELEM,el,NMISC,19,1,2 !stat1, contact element status
*if,stat1,ge,2,then !if stat1>=2, it is in close contact,else it''s open
!*GET,ael,ELEM,el,AREA
!For axisymmetric model
*GET,lel,ELEM,el,LENG
nd1=nelem(el,1)
nd2=nelem(el,2)
dx1=nx(nd2)+ux(nd2)-nx(nd1)-ux(nd1)
dy1=ny(nd2)+uy(nd2)-ny(nd1)-uy(nd1)
lel=sqrt(dx1*dx1+dy1*dy1)
sintheta=dy1/lel
costheta=dx1/lel
r1=nx(nd1)+ux(nd1)
r2=nx(nd2)+ux(nd2)
!ael=pi*(r1+r2)*lel
ael=(r1+r2)*lel
!*
!calculate force in x and y direction
lelx=abs(dx1)
lely=abs(dy1)
aely=(r1+r2)*lely
aelx=(r1+r2)*lelx
!*
*GET,pel( i ),ELEM,el,SMISC, 5,1,2 !get normal contact pressure of contact element el.
*GET,sfel( i ),ELEM,el,SMISC, 3,4 !get tangential contact stress of contact element el.
*GET,cnfx,ELEM,el,NMISC, 21 !get Contact element el force-x component.
*GET,cnfy,ELEM,el,NMISC, 22 !get Contact element el force-y component.
cnfxsum=cnfxsum+cnfx
cnfysum=cnfysum+cnfy
!*
asum=asum+ael
pfsum=pfsum+ael*pel( i )
sfsum=sfsum+ael*sfel( i )
!sum of the forces in x and y directions
asumx=asumx+aelx
asumy=asumy+aely
pfsumx=pfsumx+ael*pel( i )*sintheta
pfsumy=pfsumy+ael*pel( i )*costheta
sfsumx=sfsumx+ael*sfel( i )*costheta
sfsumy=sfsumy+ael*sfel( i )*sintheta
!*
numcont=numcont+1
*endif
el=elnext(el)
*enddo
!average and total forces
pave=pfsum/asum
pfsum=pi*pfsum
sfave=sfsum/asum
sfsum=pi*sfsum
!average and total forces in x and y directions
pavex=pfsumx/asumy
pfsumx=pi*pfsumx
pavey=pfsumy/asumx
pfsumy=pi*pfsumy
sfavex=sfsumx/asumy
sfsumx=pi*sfsumx
sfavey=sfsumy/asumx
sfsumy=pi*sfsumy
!*
cnfxsum=cnfxsum
cnfysum=cnfysum

 

返回Ansys文章专题列表>>>