24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2606  |  回复: 4

gongmtsd

木虫 (正式写手)

[求助] ANSYS焊接温度场模拟出现问题已有1人参与

问题描述:模型是两块平板对接焊,考虑两边对称,采用计算一半的简化模拟。采用单道焊,堆焊七层,具体写的程序如下。但是在运行时,不论是焊接到哪一层,熔池一直在试板厚度的中心线上移动,不随焊层的变化上下移动。求大神分析原因,指出程序中的错误,谢谢。


/clear
/filname, Multi-pass Welding Numerical Simulation
flag=0
/prep7
*afun,deg
len=300e-3!沿焊缝方向试板长度
wid=120e-3!试板宽度
thk=20e-3!试板厚度
ang=60!坡口角度
lnum=100!焊缝方向单元份数
them0=20!环境温度及试板初始温度,取室温20℃
wid1=12e-3!加密区
wid2=15e-3!过渡区
nweld=7!焊道数量
*dim,weldh,array,nweld!焊缝坐标
weldh(1)=2e-3,5e-3,8e-3,11e-3,14e-3,17e-3,20e-3
weldb=6e-3!第一层焊缝半宽
!双椭球热原模型
v=2e-3!焊接速度
zf=6e-3!前椭球Z轴(沿焊缝方向)
zr=6e-3!后椭球Z轴(沿焊缝方向)
xh=6e-3!前/后椭球X轴(垂直于焊缝方向)
yh=6e-3!前/后椭球Y轴(垂直于焊缝方向)
ff=0.6!前椭球热输入份额
fr=2-ff!后椭球热输入份额
U=25!焊接电压
Ic=160!焊接电流
eta=0.85!焊接热效率
Q=eta*Ic*U!有效热功率
pi=3.141592654!pi为圆周率
Pf=6*sqrt(3)*ff*Q/zf/xh/yh/pi/sqrt(pi)!前椭球系数
Pr=6*sqrt(3)*fr*Q/zr/xh/yh/pi/sqrt(pi)!后椭球系数
dT=len/lnum/v!时间步长
eT=600!空冷步长
fT=3600!最终空冷时间
/prep7
!单元类型
et,1,solid70
!材料属性
mptemp,1,0,100,200,400,600,800
mptemp,7,1000,1200,1400,1550,1800,2000
mpdata,kxx,1,1,50,45,40,36,34,25
mpdata,kxx,1,7,26,28,57,67,215,280
mpdata,dens,1,1,7880,7880,7800,7760,7600,7520
mpdata,dens,1,7,7390,7300,7250,7180,7180,7180
mpdata,c,1,1,480,500,520,650,750,1000
mpdata,c,1,7,1200,1400,1600,1700,1770,1800
mpdata,ex,1,1,2.1e11,2e11,2e11,1.7e11,0.8e11,0.35e11
mpdata,ex,1,7,0.2e11,0.15e11,0.1e11,0.1e11,0.1e11,0.1e11
mpdata,prxy,1,1,0.27,0.27,0.28,0.28,0.29,0.3
mpdata,prxy,1,7,0.31,0.32,0.32,0.32,0.32,0.32
mpdata,alpx,1,1,1.15e-5,1.2e-5,1.3e-5,1.42e-5,1.45e-5,1.45e-5
mpdata,alpx,1,7,1.45e-5,1.45e-5,1.45e-5,1.45e-5,1.45e-5,1.45e-5
!建立几何模型
k,,weldb,weldh(1)
k,,thk/tan(ang),thk
k,,wid,thk
k,,wid,0
k,,weldb,0
a,1,2,3,4,5
AGEN,2,all,,,wid1-thk/tan(ang)
rectng,0,wid2,0,thk
aovlap,all
asel,s,loc,x,wid,wid+wid1 $ adele,all,,,1 $ allsel
lsel,s,loc,x,0,wid1 $ asll,s,1
wpcsys,-1,0 $ wpro,,90
*do,i,1,nweld,1
     wpave,0,weldh(i)
     *if,weldh(i),eq,thk,then
       *cycle
     *endif
     *if,i,eq,1,then
      wpave,0,-weldh(i)
      asbw,all
     *endif
*enddo
wpcsys,-1,0 $ wpstyle,,,,,,,,0
allsel $ vext,all,,,0,0,len!拉伸成体
!定义选择集-非焊缝
csys,1 $ vsel,s,loc,y,-ang,ang $ csys,0 $ vsel,r,loc,x,weldb,wid
cm,plate,volu
!定义选择集-焊缝
vsel,inve
cm,weld,volu
!定义焊缝对应体号
*dim,weldv,array,nweld
*do,i,1,nweld,1
     cmsel,s,weld
     aslv,s $ asel,r,loc,y,weldh(i)
     vsla,s,0
     *if,weldh(i),gt,0,then
        vsel,r,loc,y,weldh(i)-thk,weldh(i)
     *endif
     *get,par,volu,0,num,min
     weldv(i)=par
*enddo
allsel
!划分网格
!焊缝和加密区
asel,s,loc,x,0,wid1 $ vsla,s,1 $ allsel,belo,volu
lsel,r,loc,z,len*1/3,len*2/3 $ lesize,all,,,lnum,,,,,0!定义焊缝方向尺寸
esize,len/lnum
vsweep,all
!稀疏区
allsel
vsel,s,loc,x,wid2,wid
esize,30e-3
vsweep,all
!过渡区
allsel
vsel,u,type,,1
mshape,1,3d
mshkey,0
vmesh,all
allsel
save
!热分析
/sol
antype,trans!瞬态分析
nropt,full
outres,all,last
kbc,1!阶跃载荷
autots,on!打开自动时间步长
lnsrch,on!打开线性搜索
tunif,them0!初始温度
!对流边界
cmsel,s,plate
asel,s,ext
cmsel,s,weld
aslv,u
sfa,all,1,conv,30,them0
!杀死所有焊缝单元
cmsel,s,weld
eslv,s
ekill,all
allsel
!开始计算
T=0
*do,kW,1,nweld,1!焊缝
    *do,kE,1,lnum,1!按单元循环
       allsel $ BFDELE,all,HGEN!清除生热率
       vsle,s,,,weldv(kW) $ eslv,s $ esel,r,cent,z,(kE-1)*len/lnum,kE*len/lnum $ ealive,all!激活单元
       !确定加热中心点坐标
       sx=0 $ sz=(kE-0.5)*len/lnum
       nsle,s $ *get,tmax,node,0,mxloc,y $ *get,tmin,node,0,mnloc,y $ sy=(tmax+tmin)/2
       !选择焊缝节点
       !cmsel,s,weld $ eslv,s $ esel,r,live $ nsle,s,1!选择激活的焊缝节点
       esel,s,live $ nsle,s,1
       nsel,r,loc,z,sz-zr,sz+zf!加热半径
       nsel,r,loc,x,sx-xh,sx+xh
       nsel,r,loc,y,sy-yh,sy+yh
            !vsel,s,,,weldv(kW) $ eslv,s $ esel,r,cent,z,(kE-1)*len/lnum,kE*len/lnum
            !nsle,s,1
       !施加椭球热源
       *get,nNode,node,0,count!节点数目
       *get,kNode,node,0,num,min!节点编号
       *do,j,1,nNode,1!针对每个点计算生热率
           dx=nx(kNode)-sx $ dy=ny(kNode)-sy $ dz=nz(kNode)-sz
           tx=3*dx*dx/xh/xh $ ty=3*dy*dy/yh/yh $ tz=3*dz*dz/zf/zf
       *if,dz,gt,0,then
            qf=pf*exp(-tx-ty-tz)
            BF,kNode,HGEN,qf
       *else
             qr=pr*exp(-tx-ty-tz)
             BF,kNode,HGEN,qr
       *endif
       kNode=ndnext(kNode)
*enddo
T=T+dT
time,T
NSUBST,2,3!子步数目
allsel
solve
*if,flag,eq,1,then
      *exit
*endif
*enddo
!空冷
*if,flag,ne,1,then
BFDELE,all,HGEN!清除生热率
T=T+eT
time,T
NSUBST,5,20!子步数目
solve
*endif
*enddo
*if,flag,ne,1,then
BFDELE,all,HGEN!清除生热率
T=T+fT
time,T
NSUBST,10,100!子步数目
solve
save
*endif
/post1
set,last

回复此楼
今天的准备决定明天的宽度。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongmtsd

木虫 (正式写手)

2楼2017-06-06 08:17:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongmtsd

木虫 (正式写手)

求大神指点
今天的准备决定明天的宽度。
3楼2017-06-06 12:09:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wz512831950

金虫 (小有名气)

4楼2018-01-30 21:47:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yt941024

新虫 (初入文坛)

【答案】应助回帖

内容已删除
5楼2018-04-22 09:51:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gongmtsd 的主题更新
信息提示
请填处理意见