我做的是一个简单的平板焊接,参照别人的命令流,运行之后没有焊接的效果,热源移动后前面焊过的地方温度似乎直接就变成室温,就相当于每次移动都是一个新的焊接,不知道是怎么回事,冷却阶段完全没有效果,希望高手能指点一下,命令流如下
!定义材料的属性
/prep7
mptemp,1,20,250,500,750,1000,1500,1700,2500
mpdata,kxx,1,1,50,47,40,27,30,35,140,142
mpdata,dens,1,1,7820,7700,7610,7550,7490,7350,7300,7090
mpdata,c,1,1,460,480,530,675,670,660,780,820
mpdata,prxy,1,1,0.28,0.29,0.31,0.35,0.4,0.45,0.48,0.5
mpdata,alpx,1,1,1.10E-05,1.22E-05,1.39E-05,1.48E-05,1.34E-05,1.33E-05,1.32E-05,1.31E-05
MPDATA,EX,1,1,2.05E+11,1.87E+11,1.50E+11,7.00E+10,2.00E+10,1.90E+10,1.80E+10,1.20E+10
MPTEMP,,,,,,,,
MPTEMP,1,20
MPTEMP,2,1533
MPTEMP,3,1590
MPTEMP,4,1670
MPDE,ENTH,1
MPDATA,ENTH,1,,0
MPDATA,ENTH,1,,7.5E+009
MPDATA,ENTH,1,,9.6E+009
MPDATA,ENTH,1,,1.1E+010
TB,BISO,1,6,2,
TBTEMP,20
TBDATA,,2.20E+08,2.05E+10,,,,
TBTEMP,500
TBDATA,,1.30E+08,1.50E+10,,,,
TBTEMP,750
TBDATA,,4.00E+07,7.00E+9,,,,
TBTEMP,1000
TBDATA,,2.50E+07,2.00E+9,,,,
TBTEMP,1700
TBDATA,,1.00E+06,1.80E+9,,,,
TBTEMP,2500
TBDATA,,1.00E+05,1.20E+9,,,,
SAVE
!建模和划分网格
/units,si
rb=0.002
length=0.12
width=0.06
height=0.006
et,1,solid70
et,2,solid90
block,0,length,0,width,0,height
Block,0,length,0,3*rb,0,height
Block,0,length,0,rb*6,0,height
Block,0,length,0,rb*12,0,height
VOVLAP,ALL
/view,1,1,1,1
Lesize,4,rb
Lesize,5,rb
Lesize,9,rb
Lesize,14,rb
Lesize,50,rb
Lesize,10,rb
Lesize,52,rb
Lesize,23,rb
Lesize,51,rb
Lesize,9,rb
Lesize,49,rb
Lesize,24,rb
Lesize,31,2*rb
Lesize,26,2*rb
Lesize,43,4*rb
Lesize,38,4*rb
Lesize,2,4*rb
Lesize,7,4*rb
Lesize,53,4*rb
Lesize,54,4*rb
Lesize,55,4*rb
Lesize,56,4*rb
Lesize,11,1.5*rb
Lesize,12,1.5*rb
Lesize,47,1.5*rb
Lesize,48,1.5*rb
Save
type,1
mshkey,1
mshape,0
vmesh,5
vmesh,6
type,2
mshkey,0
mshape,1
vmesh,7
vmesh,8
Save
!求解设置
/SOLU
antype,trans,new
nlgeom,on
timint,1,struct
timint,1,thern
timint,0,mag
timint,0,elect
tintp,0.005,1,0.5,0.2
tref,25
nropt,anto,,
autots,on
outres,all
v=0.008
tinc=rb/v
U=25
I=180
ef=0.75
p=25*180*ef
r=0.006
qmax=p/(3.14159*r**2)
max_time=length/rb+1
max_x=length/rb+1
max_y=width/rb+1
*dim,flux2,table,max_x,max_y,max_time,x,y,time
*do,k,1,max_time,1
*do,i,1,max_x,1
flux2(i,0,k)=(i-1)*rb
*enddo
*do,j,1,max_y,1
flux2(0,j,k)=(j-1)*rb
*enddo
*do,i,1,max_x,1
*do,j,1,max_y,1
xcenter=v*(k-1)*tinc
ycenter=0
distance=sqrt(((i-1)*rb-xcenter)**2+((j-1)*rb-ycenter)**2)
*if,distance,le,r,then
flux2(i,j,k)=qmax/EXP(3*DISTANCE**2/(R**2))
*else
flux2(i,j,k)=0
*endif
*enddo
*enddo
flux2(0,0,k)=(k-1)*tinc
nsel,s,loc,z,height
sf,all,hflux,%flux2%
allsel,all
nsel,s,loc,x,0
sf,all,conv,10,20
allsel,all
nsel,s,loc,x,length
sf,all,conv,10,20
allsel,all
nsel,s,loc,y,0
sf,all,conv,10,20
allsel,all
nsel,s,loc,y,width
sf,all,conv,10,20
allsel,all
nsel,s,loc,z,0
sf,all,conv,10,20
allsel,all
time,k*rb/v
nsubst,5
solve
*enddo
save
!冷却阶段
time,20
nsubst,10
solve
time,44
nsubst,24
solve
time,644
nsbust,20
solve
time,7244
nsubst,100
solve
save
finish |