!三维焊接模拟过程的问题
!下面的命令流,是我在看了清华大学出版社《ANSYS有限元原理与工程应用实例大全》之后
!,自己改写了一点(基本上是来自原书)。
fini
/filname,weld-hgen
/clear
/PREP7
ET,1,PLANE55
ET,2,SOLID70
MPTEMP,1,20,500,1000,1500,2000 !定义材料模型
MPDATA,EX,1,1,1.93E11,1.5E11,0.7E11,0.1E11,0.01E11
MPDATA,EX,2,1,1.02E11,0.5E11,0.08E11,0.001E11,0.0001E11
MPDATA,EX,3,1,1.17E11,0.9E11,0.3E11,0.05E11,0.005E1
MP,DENS,1,8030 !定义材料密度
MP,DENS,2,4850
MP,DENS,3,8900
MP,KXX,1,16.3 !定义热传导系数
MP,KXX,2,7.44
MP,KXX,3,393
MP,C,1,502 !定义比热
MP,C,2,544
MP,C,3,385
len=0.1
wid=0.1008
thic=0.006
h1=0.002
h=0.01
b=0.0008
K,1, !建立关键点
K,2,0,h1
K,3,0,thic
K,4,0.0029,thic
K,5,wid,thic
K,6,wid,h1
K,7,wid
K,8,wid,-h
K,9, 0,-h
K,10,b,-h
K,11,b,0,,
K,12,b,h1
A,1,2,12,11 !由关键点建立面
A,2,3,4,12
A,11,7,6,12
A,12,4,5,6
A,1,9,10,11
A,10,8,7,11
KGEN,2,9,,,,,-len,,0 !拷贝关键点
LSTR,9,13 !生成直线
AGLUE,1,2,3,4,5,6 !进行布尔操作,将所有面粘合
AATT,3, , 1, 0,1 !定义面的属性
AATT,3, , 1, 0,2
AATT,1, , 1, 0,3
AATT,1, , 1, 0,4
AATT,2, , 1, 0,5
AATT,2, , 1, 0,6
LESIZE,1,,,5,,,,,1 !对线定义单元数量
LESIZE,3,,,5,,,,,1
LESIZE,5,,,5,,,,,1
LESIZE,7,,,5,,,,,1
LESIZE,9,,,5,,,,,1
LESIZE,12,,,5,,,,,1
LESIZE,13,,,3,,,,,1
LESIZE,15,,,3,,,,,1
LESIZE,17,,,3,,,,,1
LESIZE,2,,,5,,,,,1
LESIZE,4,,,5,,,,,1
LESIZE,6,,,5,,,,,1
LESIZE,14,,,5,,,,,1
LESIZE,8,,,40,10,,,,1
LESIZE,11,,,40,10,,,,1
LESIZE,16,,,40,10,,,,1
LESIZE,10,,,40,0.1,,,,1
AMESH,1,6,1 !划分网格
TYPE,2 !选择单元类型
EXTOPT,ESIZE,60,0, !定义单元分数
EXTOPT,ACLEAR,1 !选择建立模型后删除面
EXTOPT,ATTR,1,0,0 !体的单元属性和面相同!体的单元属性和面相同
VDRAG,1,2,3,4,5,6,18 !延伸面
save,'weld-hgen','db'
/SOLU
ANTYPE,4 !选择求解器
TRNOPT,FULL
NROPT,FULL !没SpecifiestheNewton-Raphsonoptionsinastaticorfulltransientanalysis.
ALLSEL,ALL !选择所有
ASEL,R,EXT !选外表面Areanumbersonexteriorofselectedvolumes(ignoreremainingfields).
asel,s,area,,1,4,1!选择面
asel,a,area,,11
asel,a,area,,13
asel,a,area,,15
asel,a,area,,17
asel,a,area,,19,22,1
NSLA,S,1 !选择面上所有节点
SF,ALL,CONV,200,25 !施加对流系数
ALLSEL,ALL !选择所有
ASEL,S,EXT !选择外表面
asel,s,area,,26,29,1 !选择面
asel,a,area,,5
asel,a,area,,6
asel,a,area,,24
NSLA,S,1 !选择面上所有节点
SF,ALL,CONV,100,25 !施加对流系数
ALLSEL,ALL !选择所有
*GET,EMAX,ELEM,,COUNT, , , , !获取参数
*GET,NMAX,NODE,,COUNT, , , ,
VSEL,S,VOLU,,1,2 !选择体1、2
eslv
ALLSEL,BELOW,VOLU !在选择的体下编辑
!BELOW:Selectsallitemsdirectlyassociatedwithandbelowtheselecteditemsof
!thespecified entity type
*GET,AEMAX,ELEM,,NUM,MAX, , , , !获取参数
*DIM,ANEO,ARRAY,AEMAX,1,1, , , !定义列
*DIM,ANEZ,ARRAY,AEMAX,1,1, , ,
*DIM,ANEL,ARRAY,AEMAX,1,1, , ,
*SET,II,0 !获取单元号码
*DO,I,1,EMAX
*IF,ESEL(I),EQ,1,THEN
*SET,II,II+1
*SET,ANEO(II),I
*ENDIF
*ENDDO
*DO,I,1,AEMAX !获取单元的Z坐标
*GET,ANEZ(I),ELEM,ANEO(I),CENT,Z
*ENDDO
TUNIF,25, !设置开始温度
*DO,I,1,AEMAX !杀死单元
EKILL,ANEO(I)
*ENDDO
alls
esel,s,live
eplot
alls
!调用宏文件PAR_FUNCT,输入参数,以下代表宏文件
Z0=-len !焊缝长度,z的负方向
V=0.00277 !焊接速度
R0=0.1/60 !焊缝长分成60份
MU=0.6 !效率
U=22 !焊接电压
EI=160 !焊接电流
T=0 !焊接起始时间点
DT=len/60/V !载荷步时间,每份焊接时间
GENQ=U*EI*MU/7.2E-8 !定义生热率 ??
LUMPM,0 !输出结果文件
OUTRES,ALL,ALL
!调用宏文件,激活单元、施加载荷
*DO,I,1,60 !在60份里面循环
*SET,T,T+DT
!激活单元宏文件EAELMENT
ZMAX=Z0+V*T
ZMIN=Z0+V*T-R0
J=0
*DO,II,1,AEMAX
*IF,ANEZ(II),LE,ZMAX,THEN
*IF,ANEZ(II),GT,ZMIN,THEN
EALIVE,ANEO(II)
J=J+1
ANEL(J)=ANEO(II)
*ENDIF
*ENDIF
*ENDDO
esel,s,live
eplot
ANSEL=J
ESEL,S,LIVE
EPLOT
ESEL,ALL
*DO,K,1,ANSEL !施加载荷宏文件DQGEN
BFE,ANEL(K),HGEN,,GENQ
*ENDDO
TIME,T
AUTOTS,1
NSUBST,4,,,1
KBC,1
TSRES,ERASE
!Defines an array of keytimes at which the time-stepping strategy changes.
LUMPM,0 !输出结果文件
OUTRES,ALL,ALL
SOLVE !求解
*DO,JJ,1,ANSEL !删除载荷DEQGEN
BFEDELE,ANEL(JJ),HGEN
*ENDDO
*ENDDO
FINISH
save,'hgen','db'
/POST1 !进入后处理器
SET,40,LAST,1, !设置载荷步
PLNSOL,TEMP,, 0 !显示温度场分布
ANTIME,10,0.2, ,1,2,0,35 !动画显示焊接过程
FINISH
!/EXIT !退出ANSYS