24小时热门版块排行榜    

查看: 1599  |  回复: 1

hjb1109

铁虫 (初入文坛)

[求助] ANSYS用生死单元实现多层逐步加热,加载中存在小问题,求解

现在做的工作是对一种算法的有效性演算,所以建模和加载都进行了简化。

需要实现的功能是利用生死单元实现多层逐步加热:就是先激活底层,在底层加载;底层加热完成再激活上面的第二层,再进行加载;第二层加热完成后再激活上面的第三层……

加载用的热源模型是锥形体热源,就是高斯激光作用于半无限大物体表面时所产生的热效应。就是这里出了问题,加载第一层还能够显示出锥形加热,但是到了第二层第三层时不再显示出是锥形,而是圆柱形。在计算过程中ANSYS也给出了警告:在选取节点进行加载时不能识别Z方向的NSEL命令。

希望能有人分析一下原因。下面是APDL程序。

/units,si
/title, shengsi2204
/filn,shengsi2204
/replot


!后面要用到的一些参数,如模型的长宽高,激光功率及相关参数(光斑半径、作用深度等)
len=2/1000               
wid=2/1000            
hth=0.5/1000
q=15
h=1.5/1000                             
r1=0.12/1000
pi=3.1415926
qv=2*q/(pi*h*(r1**2))
lsize=0.1/1000

!为后面建立体热源表格做准备,三维表格每个维度的数量
max_x=len/lsize+1
max_y=wid/lsize+1
max_z=hth/lsize+1

!进入前处理器
/prep7
et,1,solid70         

mp,dens,1,1000
mp,kxx,1,0.25  
mp,c,1,1700
mp,emis,1,0.95

block,0,len,0,wid,0,hth
block,0,len,0,wid,hth,2*hth
block,0,len,0,wid,2*hth,3*hth
/view,1,1,1,1
/replot

allsel,all  
esize,0.1/1000      
mat,1   
vsel,s,volu,,1
vsel,a,volu,,2
vsel,a,volu,,3
vmesh,all


!这里是接触设置,对整个程序没有很大影响,是计算实际需要,很长一段都可以不看
!接触设置开始
/COM, contact pair creation - start
allsel,all
asel,s,,,2
nsla,s,1
cm,target1,node
asel,s,,,7
nsla,s,1
cm,contact1,node

allsel,all
mp,mu,1
mat,1
r,3
real,3
et,3,170
et,4,174
keyopt,4,9,0
keyopt,4,10,2
r,3,
rmore,,,,,,
rmore,,2500
rmore,0
keyopt,4,1,2
nsel,s,,,target1
type,3
esln,s,0
esurf,all
nsel,s,,,contact1
type,4
esln,s,0
esurf,all
allsel,all
asel,s,,,8
nsla,s,1
cm,target1,node
asel,s,,,13
nsla,s,1
cm,contact1,node

allsel,all
mp,mu,1
mat,1
r,3
real,3
et,3,170
et,4,174
keyopt,4,9,0
keyopt,4,10,2
r,3,
rmore,,,,,,
rmore,,2500
rmore,0
keyopt,4,1,2
nsel,s,,,target1
type,3
esln,s,0
esurf,all
nsel,s,,,contact1
type,4
esln,s,0
esurf,all
!接触设置结束
/COM, contact pair creation - end
finish


!进入求解器
/solu


!定义锥形体热源,在水平方向上高斯分布,在深度方向上线性递减
*dim,gene1,table,max_x,max_y,max_z,x,y,z
xc=len/2
yc=wid/2
*do,k,1,max_z,1
    gene1(0,0,k)=(k-1)*lsize

   *do,i,1,max_x,1
    gene1(i,0,k)=(i-1)*lsize
   *enddo
   
   *do,j,1,max_y,1
     gene1(0,j,k)=(j-1)*lsize
   *enddo                              

   *do,i,1,max_x,1                           
     *do,j,1,max_y,1
      distance= (((i-1)*lsize-xc)**2+((j-1)*lsize-yc)**2)**(1/2)
      hei=1+(k-max_z)*lsize/h
       *if,distance,le,r1,then
        gene1(i,j,k)=Qv*EXP(-2*(distance/r1)**2)*hei
       *else
        gene1(i,j,k)=0
       *endif
     *enddo
   *enddo
*enddo


!定义分析类型及一些设置
antype,trans
trnopt,full
tunif,100
allsel
*set,delt,1
timint,on
autots,on


!将V2、V3所含单元杀死,只激活V1所含单元
allsel,all
vsel,s,volu,,2
vsel,a,volu,,3
eslv,s,1
ekill,all
esel,s,live
eplot


!0 !0.1<=t<0.2时,加载第二层
!0.2<=t<0.3时,加载第三层

*do,i,1e-6,1,0.01
     time,i
     deltim,i
     allsel,all

*if,i,lt,0.1,then
    *if,yc,lt,2,then
      allsel,all
      nsel,s,x,loc,xc-r1,xc+r1
      nsel,r,y,loc,yc-r1,yc+r1
      nsel,r,z,loc,0,hth
      bf,all,hgen,%gene1%
     allsel,all
    *endif

*elseif,i,ge,0.1,then
  allsel,all
  bfdele,all,hgen
  vsel,s,volu,,2
  eslv,s,1
  ealive,all
  eplot
  *if,i,lt,0.2,then
    *if,yc,lt,2,then
      allsel,all
      nsel,s,x,loc,xc-r1,xc+r1
      nsel,r,y,loc,yc-r1,yc+r1
      nsel,r,z,loc,hth,2*hth
      bf,all,hgen,%gene1%
     allsel,all
    *endif

  *elseif,i,ge,0.2,then
    allsel,all
    bfdele,all,hgen
    vsel,s,volu,,3
    eslv,s,1
    ealive,all
    eplot
    *if,i,lt,0.3,then
    *if,yc,lt,2,then
      allsel,all
      nsel,s,x,loc,xc-r1,xc+r1
      nsel,r,y,loc,yc-r1,yc+r1
      nsel,r,z,loc,2*hth,3*hth
      bf,all,hgen,%gene1%
     allsel,all
    *endif
    *elseif,i,ge,0.3,then
      allsel,all
      bfdele,all,hgen
    *endif
  *endif
*endif
allsel,all
solve
*enddo

!计算结束
finish



!*************************************************
!下面是移动工作平面进行剖切,方便观察内部温度变化过程
wpoff,len/2,wid/2,0
wprot,0,0,90
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无影之火

铁虫 (初入文坛)

你好,你也是做激光焊温度场分析吗
呵呵额
2楼2013-05-07 08:42:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hjb1109 的主题更新
信息提示
请填处理意见