焊缝U型,两层,第一层一道,体编号为V5,第二层两道,体编号为V3,V4;建立三维模型后,划分网格,输入如下程序 /prep7 et,1,solid70 v=0.002 length=0.02 l_number=length/v !沿焊缝方向单元段数 numcmp,all !压缩所定义的编号 mptemp,1,0,300,600,1000,1300,2000 !材料模型 ,温度表 mpdata,dens,1,1,7859,7770,7659,7600,6750,6750 !密度 mpdata,dens,2,1,7859,7770,7659,7600,6750,6750 mpdata,c,1,1,450,514,967,1370,2800,2000 !比热 mpdata,c,2,1,450,514,967,1370,2800,2000 mpdata,kxx,1,1,67,53,39,31,20,20 !导热系数 mpdata,kxx,2,1,67,53,39,31,20,20 mat,1 /solu autots,on !打开自动时间步长 outpr,nsol,all !打印输出所有时间历程后处理的节点数据 outres,nsol,all !所有节点数据结果都储存到数据库里 kbc,1 !阶跃载荷 antype,trans !瞬态分析 timint,off !关闭时间积分 nsubst,4 !子步数目 d,all,temp,20 !施加初始温度 time,0.01 !时间 solve !求解 esel,s,mat,,1 !选择焊缝单元 ekill,all !杀死单元 esel,all !选择所有单元 time,0.02 !时间 solve !求解 timint,on,ther !打开时间积分,进行瞬态分析 ddele,all,temp !删除前面用 D 命令施加的温度载荷 TIME=0.02 *dim,qq,array,8 !定义数组,存储单元节点热流密度 *dim,e_node,array,20 !定义数组,存储单元所属节点编号 *get,elem_max,elem,0,num,max !获取最大单元号 *get,elem_min,elem,0,num,min !获取最小单元号 *get,node_max,node,0,num,max !获取最大节点号 *get,node_min,node,0,num,min !获取最小节点号 *dim,node_ave,array,node_max !定义数组,存储节点相邻单元数量 *do,j,node_min,node_max!计算节点相邻单元数量,循环开始 alls *if,nsel(j),eq,1,then nsel,s,,,j !选择节点J esln,s !选择节点J 相邻单元 *get,node_ave(j),elem,0,count !获取单元数量 *endif *enddo !计算节点相邻单元数量,循环结束 alls *do,kk,3,5 !计算三层焊接温度场,循环开始 r=0.006 !电弧有效加热半径 *if,kk,eq,3,then !第一层焊缝的基本参数 q=6000*0.8 !输入热量 qmax=3*q/3.1415926/r/r !变量 XC=0.04 YC=0.00385 v_num=5!第一层焊缝的体号 time_inc=length/l_number/v !第一层焊缝时间增量 *endif *if,kk,eq,4,then !第二层焊缝的基本参数 q=7000*0.8 qmax=3*q/3.1415926/r/r *set,xc,0.041301 *set,yc,0.0085 v_num=3 time_inc=length/l_number/1.5/v *endif *if,kk,eq,5,then !第三层焊缝的基本参数 q=8000*0.8 qmax=3*q/3.1415926/r/r *set,xc,0.038699 *set,yc,0.0085 v_num=4 time_inc=length/l_number/2/v *endif *DO,J,1,l_number !从头至尾激活第 KK 层焊缝,开始 SFEDELE,ALL,ALL,HFLUX !删除以前施加的热流密度 VSEL,S,,,v_num !选择第 KK 层焊缝所对应的体 ESLV,S,1 !选择体上单元即第 KK 层焊缝单 元 nsel,r,loc,z,(j-1)*length/l_number+0.0005,j*length/l_number-0.0005 !选择第 J 行单元的中间节点 esln,r !选择第 KK 层第J 行单元 ealive,all !激活单元 alls zc=(j-0.5)*length/l_number !第 KK 层第J 行单元质心 Z 坐标 *do,i,elem_min,elem_max !计算施加单元热流密度,循环开 *if,esel(i),eq,1,then esel,s,,,i !选择第 I 个单元 *do,k,1,8 !计算第I单元前8个节点热流密度 *get,e_node(k),elem,i,node,k !获取第 I 个单元第 K 个节点的编号 ss=e_node(k) distance=sqrt((nx(ss)-xc)*(nx(ss)-xc)+(ny(ss)-yc)*(ny(ss)-yc)+(nz(ss)-zc)*(nz(ss)-zc)) !!计算节点到热中心点(质心)的距离 eee=3*distance**2/r**2 !变量 *if,eee,lt,25,then qq(k)=qmax*exp(-eee)/node_ave(e_node(k)) !第 K 个节点的热流密度 *else qq(k)=0 *endif *enddo *if,qq(1)+qq(2)+qq(3)+qq(4),ne,0,then sfe,i,1,hflux,,qq(1),qq(2),qq(3),qq(4) !在第 I 个单元第一个面上加热流密度 *endif *if,qq(1)+qq(2)+qq(5)+qq(6),ne,0,then sfe,i,2,hflux,,qq(1),qq(2),qq(6),qq(5) !在第 I 个单元第二个面上加热流密度 *endif *if,qq(6)+qq(2)+qq(3)+qq(7),ne,0,then sfe,i,3,hflux,,qq(2),qq(3),qq(7),qq(6) !在第 I 个单元第三个面上加热流密度 *endif *if,qq(1)+qq(4)+qq(5)+qq(7),ne,0,then sfe,i,5,hflux,,qq(1),qq(4),qq(7),qq(5) !在第 I 个单元第五个面上加热流密度 *endif *if,qq(5)+qq(6)+qq(7)+qq(8),ne,0,then sfe,i,6,hflux,,qq(5),qq(6),qq(7),qq(8) !在第 I 个单元第六个面上加热流密度 *endif alls *endif *enddo !计算施加单元热流密度,循环结束 alls asel,s,loc,z,0 !选择边界面 asel,a,loc,z,length asel,a,,,7 asel,a,,,8 asel,a,,,11 asel,a,,,13 asel,a,,,14 asel,a,,,15 asel,a,,,20 asel,a,,,23 asel,a,,,25 sfa,all,1,conv,30,20 !施加对流边界条件 alls time=time+time_inc !时间变量 nsubst,5,5,5 !步长 time,time !设定分析时间 solve *enddo !从头至尾激活第 KK 层焊缝,结束 time=time+3600 !空冷 3600s time,time sfedele,all,all,hflux !空冷 solve !解答 *enddo !计算三层焊缝温度场,循环结束 save !保存 求解的温度场一直是室温,求大神指导!!!!!!!!!!!!!!万分感激!!!!!!!!!! |
|