少年阿宝 发表于 2013-12-12 09:51:06

激光多道焊(熔覆)接例子,共同学习

楼主刚搜索到一个激光多道焊接的例子,但是还是有点小问题,大家拿回去运行,调试一下,看看如何改善!记得做人要厚道哦:D
/UNITS,SI
/CONFIG,NRES,10000
/PREP7
ET,1,SOLID70   !单元类型,1表示此单元编号为1
MP,DENS,1,7930   !定义材料密度   
MP,C,1,502       !定义材料比热
mptemp,1,20,100,500
mpdata,kxx,1,1,12.1,16.3,21.4   !kxx热导系数
/VIEW,1,1,1,1
!*************定义基板尺寸***********
lx=0.1
lz=0.1
ly=0.006         !基板大小
!*************定义焊接参数***********
layer=2          !总的焊接道数
lap=1/3          !两道之间搭接量
weld=0.01      !每道焊道宽度
wweld=layer*weld-(layer-1)*lap*weld      !焊道的总宽度
wheight=0.004    !焊道的高度
remain=0.03

LSIZE=0.002   
V=0.008          !速度
pi=3.1415926
U=25
I=180
Q=U*I            !电源有效功率(在此,可以对Q通过UI来调整)
R=0.006          !电源有效热半径
effect=0.8
Qmax=effect*Q/(pi*R*R)   !中心处最大热流
tm=(lx-2*remain)/V         !一道的总时间
tinc=LSIZE/V               !每小段的时间间隔


!*****************建立模型,生成网格**************
block,0,lx,0,ly,0,lz          !创建一个块体积,可以根据基板尺寸调整坐标
wpoff,remain,ly,(lz-wweld)/2!随着坐标系轴的变化平移工作平面
block,0,lx-2*remain,0,wheight,0,wweld
vsbw,all,,delete            !对block布尔运算
wpoff,,,wweld
vsbw,all,,delete
wprota,90,90                  !转动工作面
vsbw,all,,delete
wpoff,,,lx-2*remain
vsbw,all,,delete
save

vglue,all                     !粘合所有的几何体

lsel,s,,,9,12,1
lsel,a,,,25,26,1
lsel,a,,,30
lsel,a,,,32
lsel,a,,,38
lsel,a,,,45
lsel,a,,,59
lsel,a,,,73
lesize,all,0.005,,,0.2,,,,1

allsel,all
lsel,s,,,13,16,1
lsel,a,,,19,21,1
lsel,a,,,23,24,1
lsel,a,,,34
lsel,a,,,41,44,1
lsel,a,,,63,64,1
lsel,a,,,77,78,1
lsel,a,,,81,82,1
lesize,all,0.001,,,1,,,,1

allsel,all
lsel,s,,,1
lsel,a,,,3,6,1
lsel,a,,,8
lsel,a,,,27
lsel,a,,,29
lsel,a,,,31
lsel,a,,,33
lsel,a,,,35
lsel,a,,,37
lsel,a,,,40
lsel,a,,,50
lsel,a,,,53
lsel,a,,,55
lsel,a,,,62
lsel,a,,,67
lsel,a,,,69
lsel,a,,,85
lesize,all,0.002,,,1,,,,1

allsel,all
lsel,s,,,46
lsel,a,,,86
lsel,a,,,88
lesize,all,0.001,,,5,,,,1

allsel,all
vsweep,all

/PNUM,DEFA
EPLOT
fini
!*******************进入后处理器*********************
/solu
antype,trans,new
!nlgeom,on
timint,0,struct
timint,1,therm
timint,0,mag
timint,0,elect
tref,25
nropt,auto
autos,on
kbc,0
pred,on
lnsrch,on
!************杀死焊缝去单元***********
nsel,s,loc,y,ly,ly+wheight
esln,s,1
ekill,all
allsel,all

esel,s,live
eplot

!**********施加对流载荷*************
esel,s,live
nsel,s,loc,z,0
nsel,a,loc,z,lz
nsel,a,loc,x,0
nsel,a,loc,x,lx
sf,all,conv,10,25

!************定义数组维数**********
MAX_TIME=1+tm/tinc
!MAX_X=1+(lx-2*remain)/LSIZE
MAX_X=1+lx/LSIZE
MAX_Z=1+lz/LSIZE

!*************定义table数组

!******************************************
*DIM,heatflux,TABLE,MAX_X,MAX_Z,MAX_TIME,X,Z,TIME
*do,n,1,layer,1
m=mod(n,2)      !返回n/2的余数部分
*if,m,eq,1,then
!n=1
      *DO,K,1,MAX_TIME,1
      *DO,I,1,MAX_X,1
      heatflux(I,0,K)=(I-1)*LSIZE
      *ENDDO
      *DO,J,1,MAX_Z,1
      heatflux(0,J,K)=(J-1)*LSIZE
      *ENDDO
      *DO,I,1,MAX_X,1
      *DO,J,1,MAX_Z,1
      XCENTER=remain+V*(K-1)*tinc
      ZCENTER=2*(n-1)*weld/3+(lz-wweld)/2+weld/2
      DISTANCE=SQRT(((I-1)*LSIZE-XCENTER)**2+((J-1)*LSIZE-ZCENTER)**2)
      *IF,DISTANCE,LE,R,THEN
      heatflux(I,J,K)=Qmax/EXP(2*DISTANCE**2/(R**2))
      *ELSE
      heatflux(I,J,K)=0
      *ENDIF
      *ENDDO
      *ENDDO
      heatflux(0,0,K)=(K-1)*tinc
!**********激活单元*********
      esel,s,live
      nsel,s,loc,x,xcenter-0.002,xcenter+0.001
      nsel,r,loc,z,zcenter-weld/2,zcenter+weld/2
      nsel,r,loc,y,ly,ly+wheight
      esln,s,0
      ealive,all
      allsel,all

!**********施加热流载荷**********
      esel,s,live
      nsel,s,loc,Y,ly
      sf,all,hflux,%heatflux%
      allsel,all


!************求解*****************
      time,(n-1)*(tm+tinc)+k*lsize/v
      nsubst,2
      SOLVE
!*************删除热流载荷***********
      nsel,s,loc,y,ly
      sfdele,all,hflux
      allsel,all

      esel,s,live
      eplot

      OUTRES,ALL,ALL,
      /PSF,HFLUX,,2
      /REPLOT
      OUTRES,ALL,ALL,
      *ENDDO

*else
!n=2
      *DO,K,1,MAX_TIME,1
      *DO,I,1,MAX_X,1
      heatflux(I,0,K)=(I-1)*LSIZE
      *ENDDO
      *DO,J,1,MAX_Z,1
      heatflux(0,J,K)=(J-1)*LSIZE
      *ENDDO
      *DO,I,1,MAX_X,1
      *DO,J,1,MAX_Z,1
      XCENTER=lx-remain-V*(K-1)*tinc
      ZCENTER=2*(n-1)*weld/3+(lz-wweld)/2+weld/2
      DISTANCE=SQRT(((I-1)*LSIZE-XCENTER)**2+((J-1)*LSIZE-ZCENTER)**2)
      *IF,DISTANCE,LE,R,THEN
      heatflux(I,J,K)=Qmax/EXP(2*DISTANCE**2/(R**2))
      *ELSE
      heatflux(I,J,K)=0
      *ENDIF
      *ENDDO
      *ENDDO
      heatflux(0,0,K)=(K-1)*tinc
!**********激活单元*********
      esel,s,live
      nsel,s,loc,x,xcenter-0.001,xcenter+0.002
      nsel,r,loc,z,zcenter-weld/2,zcenter+weld/2
      nsel,r,loc,y,ly,ly+wheight
      esln,s,0
      ealive,all
      allsel,all


!**********施加热流载荷**********
      esel,s,live
      nsel,s,loc,Y,ly
      sf,all,hflux,%heatflux%
      allsel,all


!************求解*****************
      time,(n-1)*(tm+tinc)+k*lsize/v
      nsubst,2
      SOLVE
!*************删除热流载荷***********
      nsel,s,loc,y,ly
      sfdele,all,hflux
      allsel,all

      esel,s,live
      eplot

      OUTRES,ALL,ALL,
      /PSF,HFLUX,,2
      /REPLOT
      OUTRES,ALL,ALL,
      *ENDDO
*endif
*enddo
FINISH

leo刘先生 发表于 2014-10-20 15:09:53

恩,正在学习中

leo刘先生 发表于 2014-11-5 11:16:40

感谢楼主分享

fhy19911123 发表于 2016-1-6 10:22:12

楼主,这个程序为什么第一道是对的,但是第一道走完了以后,第二道高斯热源一直在终点的位置。

fhy19911123 发表于 2016-1-6 10:22:56

请问您这个程序调试出来了吗?我也在做多道搭接的高斯热源移动的温度场模拟,总是第一道走完以后,第二道一直在终点的位置不会动了

fengtg_loving 发表于 2016-1-20 02:36:25

不错的东西!谢谢分享
!!!!!!!!!!!!!!!!!!

fengtg_loving 发表于 2016-1-20 02:37:14

共同进步,谢谢!

wzg1103 发表于 2016-1-26 21:40:08

学习学习

11050209 发表于 2016-4-27 16:22:33

感谢分享:D

激光熔覆ANS仿真 发表于 2017-12-6 14:57:08

同样的问题,走到第一道终点后光源始终停留在最后的位置。第二道可以加载,只是第一道最后的载荷去不掉。
我没找到问题在哪,只好找了个近似替代的方法,把每一道的最后一个位置的载荷设置为零,时间步保持不变。效果相当于光源走到最后一小段前就关了,最后的一点点施加的是空载荷。这样做可以得到近似的结果,但是在每道的端部就会误差很大。
有没有大神发现问题出在哪里,给个修正的程序好吗?

imrky 发表于 2018-8-31 19:05:47

感谢分享
页: [1]
查看完整版本: 激光多道焊(熔覆)接例子,共同学习