onlyu 发表于 2009-10-25 21:40:03

求助~几乎一样的程序结果却大相径庭,能帮帮忙看看吗(内附命令流)

最近做激光焊接模拟,我的程序是参考论坛前辈而来,前两天偶然改了一下(主要区别为换了加载面,加载参数完全一样),结果却大相径庭,怎么想也不应该这样,搞不出来了很无语,请大家救命了~~同行也可以交流一下(我qq:121946286,email:blackgod2002@163.com),谢谢了。

1.改前程序,貌似结果更合理些

/CONFIG,NRES,10000
/view,1,1,1,1
/PREP7
xn=100
yn=6
w=0.003
*set,length,0.05
*set,width,0.01
*set,height,0.01
*SET,Vol,0.015!---扫描速度 5~10 mm/s
*SET,powe,1000!---功率/W
*SET,xSIZE,length/xn
*SET,ySIZE,w/yn
*SET,TINC,xSIZE/Vol
*SET,Rad,1e-3 !---光斑半径
*SET,pi,3.1415926
*SET,MAX_TIME,LENGTH/xSIZE+1
*SET,MAX_X,length/xSIZE+1
*SET,MAX_Y,w/ySIZE+1
*SET,power_max,0.7*powe/(pi*Rad*Rad)
*set,kk,2
et,1,solid70
keyopt,1,2,1
MPTEMP,1,20,100,200,300,400,500
MPTEMP,7,600,700,800,900,1000,1100
MPTEMP,13,1200,1300,1400,1600,2000,2500
!MPDATA,KXX,1,1,52,51.5,48,45,44,40
!MPDATA,KXX,1,7,36,32,27,27.5,28,29
!MPDATA,KXX,1,13,30,32
!MPDATA,C,1,1,479,485,494,515,536,558
!MPDATA,C,1,7,588,624,691,713,691,700
!MPDATA,C,1,13,711.5,722,752.5,859,945,1034   !---859,945,1034
MPDATA,KXX,1,1,78,68,59,52,44,40
MPDATA,KXX,1,7,36,32,29,27.5,28,29
MPDATA,KXX,1,13,30,32
MPDATA,C,1,1,535.8,548,560.9,578,586,600
MPDATA,C,1,7,625,658,703.2,713,718,720
MPDATA,C,1,13,724.2,730,752.5
MPDATA,EX,1,1,205E9,202.5E9,200.5E9,181E9,174E9,166E9
MPDATA,EX,1,7,157E9,80E9,30E9,20E9,10E9,5E9
MPDATA,EX,1,13,1.5E9,1.2E9,1E9
MPDATA,ALPX,1,1,15.7E-6,16E-6,17.0E-6,17.2E-6,17.5E-6,17.9E-6
MPDATA,ALPX,1,7,18.2E-6,18.5E-6,18.87E-6,19.00E-6,19.52E-6,19.90E-6
MPDATA,ALPX,1,13,20.17E-6,20.80E-6,21.10E-6
MPDATA,PRXY,1,1,0.3,0.319,0.338,0.357,0.376,0.395
MPDATA,PRXY,1,7,0.414,0.433,0.452,0.471,0.49,0.49
MPDATA,PRXY,1,13,0.49,0.49,0.49
MP,DENS,1,7800

block,0,length,0,width,0,height
block,0,length,0,w,0.007,height
vovlap,all
numcmp,all
allsel
type,1
mat,1
lsel,s,,,14,19
lsel,a,,,9,11,2
lesize,all,,,yn
alls
lsel,s,,,20,23
lesize,all,,,10,0.3
lsel,s,,,1,8,7
lesize,all,,,10
alls
lsel,s,,,5
lesize,all,,,xn
alls
vsweep,all

*dim,flux2,table,max_x,max_y,max_time,x,y,time
*do,k,1,max_time
*do,i,1,max_x
   flux2(i,0,k)=(i-1)*xsize
*enddo
*do,j,1,max_y
   flux2(0,j,k)=(j-1)*ysize
*enddo
*do,i,1,max_x
    *do,j,1,max_y
   xcenter=vol*(k-1)*tinc
   ycenter=0
   distance=sqrt(((i-1)*xsize-xcenter)**2+((j-1)*ysize-ycenter)**2)
    *if,distance,le,rad,then
      flux2(i,j,k)=power_max/exp(kk*distance**2/(rad**2))
    *else
      flux2(i,j,k)=0
    *endif
    *enddo
*enddo
flux2(0,0,k)=(k-1)*tinc
*enddo
save
FINISH
/SOL
antype,trans
timint,on
autots,on
toffst,273
tunif,25
tref,25
kbc,1
tintp,,,,1
ic,all,temp,25   !---施加初始温度25
tim=1e-6
alls
asel,u,,,1,9,8
asel,u,,,3,6
nsla,s
sf,all,conv,10,25
allsel

*do,I,1,MAX_TIME
tim=tim+tinc
time,tim
deltim,,,,1
kbc,1
tsres,erase
asel,,,,6
sfa,all,,hflux,%flux2%
/PSF,HFLUX,,2
/REPLOT
alls
Solve
*enddo
sfadele,all,,hflux
tim=tim+1000
nsubst,10
time,tim
alls
solve
save
FINISH

2.改后程序,结果不对劲

/CONFIG,NRES,10000
/view,1,1,1,1
/PREP7
xn=100
yn=6!---x+y,3mm/10
h=0.003
*set,length,0.05
*set,width,0.01
*set,height,0.01
*SET,Vol,0.02!---扫描速度 5~10 mm/s
*SET,powe,800!---功率/W
*SET,xSIZE,length/xn
*SET,zSIZE,h/yn
*SET,TINC,xSIZE/Vol
*SET,Rad,1e-3 !---光斑半径
*SET,pi,3.1415926
*SET,MAX_TIME,LENGTH/xSIZE+1
*SET,MAX_X,length/xSIZE+1
*SET,MAX_z,h/zSIZE+1
*SET,power_max,0.7*powe/(pi*Rad*Rad)
*set,kk,2   !---considerable
et,1,solid70
keyopt,1,2,1
MPTEMP,1,20,100,200,300,400,500
MPTEMP,7,600,700,800,900,1000,1100
MPTEMP,13,1200,1300,1400,1600
MPDATA,KXX,1,1,78,68,59,52,44,40
MPDATA,KXX,1,7,36,32,29,27.5,28,29
MPDATA,KXX,1,13,30,32
MPDATA,C,1,1,535.8,548,560.9,578,586,600
MPDATA,C,1,7,625,658,703.2,713,718,720
MPDATA,C,1,13,724.2,730,752.5
MPDATA,EX,1,1,205E9,202.5E9,200.5E9,181E9,174E9,166E9
MPDATA,EX,1,7,157E9,80E9,30E9,20E9,10E9,5E9
MPDATA,EX,1,13,1.5E9,1.2E9,1E9
MPDATA,ALPX,1,1,15.7E-6,16E-6,17.0E-6,17.2E-6,17.5E-6,17.9E-6
MPDATA,ALPX,1,7,18.2E-6,18.5E-6,18.87E-6,19.00E-6,19.52E-6,19.90E-6
MPDATA,ALPX,1,13,20.17E-6,20.80E-6,21.10E-6
MPDATA,PRXY,1,1,0.3,0.319,0.338,0.357,0.376,0.395
MPDATA,PRXY,1,7,0.414,0.433,0.452,0.471,0.49,0.49
MPDATA,PRXY,1,13,0.49,0.49,0.49
MP,DENS,1,7800

block,0,length,0,width,0,height
block,0,length,0.007,width,0.007,height
allsel
vovlap,all
numcmp,all
type,1
mat,1
lsel,s,,,16,19
lesize,all,,,yn
lsel,s,,,14,15
lsel,a,,,9,11,2
lesize,all,,,yn
alls
lsel,s,,,21,23,2
lesize,all,,,10,0.3
lsel,s,,,3,8,5
lesize,all,,,10
alls
lsel,s,,,6
lesize,all,,,xn
alls
vsweep,all

*dim,flux2,table,max_x,max_z,max_time,x,z,time
*do,k,1,max_time
*do,i,1,max_x
   flux2(i,0,k)=(i-1)*xsize
*enddo
*do,j,1,max_z
   flux2(0,j,k)=0.01-(j-1)*zsize
*enddo
*do,i,1,max_x
    *do,j,1,max_z
   xcenter=vol*(k-1)*tinc
   zcenter=0.01
   distance=sqrt(((i-1)*xsize-xcenter)**2+(0.01-(j-1)*zsize-zcenter)**2)
    *if,distance,le,rad,then
      flux2(i,j,k)=power_max/exp(kk*(distance**2)/(rad**2))
    *else
      flux2(i,j,k)=0
    *endif
    *enddo
*enddo
   flux2(0,0,k)=(k-1)*tinc
*enddo
save
FINISH
/SOL
antype,trans
timint,on
autots,on
tim=1e-6
toffst,273
tunif,25
tref,25
kbc,1
tintp,,,,1
alls
asel,u,,,2,6
asel,u,,,10
nsla,s
sf,all,conv,10,25
allsel

ic,all,temp,25
*do,I,1,MAX_TIME
tim=tim+tinc
time,tim
deltim,,,,1
kbc,1
tsres,erase
sfa,5,,hflux,%flux2%
/PSF,HFLUX,,2
/REPLOT
alls
Solve
*enddo
sfadele,all,,hflux
tim=tim+1000
nsubst,10
time,tim
alls
solve
save
FINISH

都可以运行,个人感觉是表载荷出了问题,但是又找不出来,拜托了~在线等……

onlyu 发表于 2009-10-25 21:53:03

本帖最后由 onlyu 于 2009-10-25 21:57 编辑

help~不会贴图,大家运行一下看看
页: [1]
查看完整版本: 求助~几乎一样的程序结果却大相径庭,能帮帮忙看看吗(内附命令流)