|
建议楼主仔细看一下高斯热源模型,楼主理解的有点问题
下面给楼主一个例子:- !=================================================================
- !平板对接开v型坡口多道焊成型(温度场)
- !采用guass表面热源
- !=================================================================
- finish
- /clear,nostart
- /filname,1.11thermal_analysis
- /title,3D_weld_thermal_analysis
- /units,si !定义国际制单位
- /prep7
- !**************************************************
- !定义焊接尺寸及焊接参数
- !**************************************************
- !******************************************构件尺寸
- len=100e-3 !长0.1m
- wid=50e-3 !宽0.05m
- thic=6e-3 !厚0.006m
- !b=0.002 !根部预留(m)
- !h=0 !钝边(m)
- wweld=15e-3 !焊接热影响区宽度
- lnum=10 !沿焊缝长度方向划分份数
- !******************************************焊接参数
- I=200 !焊接电流(A)
- U=30 !焊接电压(V)
- v=0.5/60 !焊接速度(m/s)
- arf=60 !坡口角度(°)
- pi=3.1415926 !pi为圆周率
- eta=0.7 !焊接热效率,手工电弧焊0.7,埋弧焊0.8
- K=1.2e4 !热流集中程度系数(/m^2) ?
- them0=25 !环境温度及母材初始温度,取室温25℃
- !**********************************************定义高斯表面移动热源参数
- !GAUSS热源模型qr=qmax*exp(-k*r*r) !(单位W/m2)
- !假设热源中心坐标为(a,b,c),a=0,b=每个焊缝的最高点的坐标y,c=v*dt
- !每个焊缝上表面任一点的坐标为(x,y,z) ,x>0, y>0, z>0
- !r^2=x^2+(y-b)^2+(z-c)^2,每个焊缝上表面任一点距热源中心距离
- qmax=0.24*k*eta*I*u/pi !加热斑点中心热流(W/m2)
- percent=0.99
- radius=abs(sqrt(1/k*log(1/(1-percent)))) !有效热半径,单位为m
- !**********************************************************************
- !定义单元类型及材料属性
- !**********************************************************************
- et,1,solid70 !计算单元类型
- !nothing !定义实常数
- mptemp,1,0,100,200,300,400,500 !定义材料属性温度范围
- mptemp,,1200,1250,1350,1400,1450,1500
- mptemp,,1505,1705,1905,2105,2305,2500
- mpdata,dens,1,1,7820,7800,7800,7800,7800,7800 !定义材料密度(kg/m3)
- mpdata,dens,1,,7800,7800,7800,7800,7800,7800
- mpdata,dens,1,,7800,7800,7800,7800,7800,7800
- mpdata,kxx,1,1,52,50.7,48.6,46.1,42.3,38.9 !热传导系数(W/(m*K))
- mpdata,kxx,1,,30,30,30,30,30,30
- mpdata,kxx,1,,30,30,30,30,30,30
- mpdata,c,1,1,450,469,481,508.5,536,569 !考虑相变潜热的比热容(J/kg*K)
- mpdata,c,1,,700,2172,5116,6589,8061,9533
- mpdata,c,1,,9533,7757,5982,4206,2431,700
- !****************************************************************
- !建立有限元计算模型
- !****************************************************************
- *afun,deg !如果涉及到角度,将使用“度”(系统默认是弧度)
- K,1,0,0,0
- K,2,wweld,0,0
- K,3,wid,0,0
- K,4,wid,thic,0
- K,5,thic*tan(arf/2)+wweld,thic,0
- K,6,thic*tan(arf/2),thic,0
- K,7,0,0,len
- A,1,3,4,6
- A,1,2,5,6
- cyl4,0,0,thic/cos(arf/2),arf,0,90
- cyl4,0,0,thic/cos(arf/2)*sqrt(2)/2,arf,0,90
- L,1,7 !形成拖拉路径L14
- Vdrag,all,,,,,,14 !沿线拖拉面
- Vptn,all !分割体
- Vglue,all !粘贴体?
- Nummrg,all
- !*************************************************************
- !划分网格
- !*************************************************************
- aadd,24,32 !面相加,以便生成映射网格
- lccat,40,49
- lccat,42,52
- !*************************************沿焊缝z方向划分,均为2mm
- lsel,s,line,,17,21,2
- lsel,a,line,,24,26,2
- lsel,a,line,,35,36
- lsel,a,line,,14,30,16
- lesize,all,2e-3
- !***************************************沿厚度y方向划分1-1.5mm
- lsel,s,line,,6,25,19
- lsel,a,line,,2,18,16
- lesize,all,,,6
- lsel,s,line,,41,43,2
- lsel,a,line,,50,53,3
- lesize,all,1.5e-3
- !***********************************************沿x方向划分1mm
- lsel,s,line,,45,47,2 !母材
- lsel,a,line,,44,46,2
- lesize,all,,,18,0.8
- lsel,s,line,,7,27,20 !母材
- lesize,all,,,12,0.7
- lsel,a,line,,5,23,18
- lesize,all,,,12,10/7
- lsel,s,line,,11,34,23 !焊缝
- lsel,a,line,,48,51,3
- lesize,all,,,4
- !****************************************划分体,生成六面体单元
- alls
- mshkey,1 !映射网格
- mshape,0,3d !六面体形状
- vsel,all
- vatt,,,1
- aslv,s
- aatt,,,1
- type,1 !单元类型为1
- vmesh,all
- !*******************************************存档备份有限元模型
- alls
- save,'1.11thermal_analysis_meshed','db'
- finish
- !=================================================================
- !重新载入有限元模型进行加载求解
- !=================================================================
- /solu
- /view,,-3,2,-5 !调整窗口视角
- !***********************************************************************
- ! 杀 死 焊 缝 区 单 元
- !***********************************************************************
- v1=5 !焊缝1所在的体
- v2=7 !焊缝2所在的体
- a1=18 !焊缝1的上表面
- a2=31 !焊缝2的上表面
- esel,s,type,,1 !选取1类单元
- *get,nemax,elem,,num,max !得到所有1类单元号码的最大值
- *get,nemin,elem,,num,min
- !********************************************分段杀死第2道焊缝
- vsel,s,,,v2
- eslv
- ekill,all
- esel,s,live
- eplot
- !***************************************************************
- !边界条件(暂时没有考虑对流)
- !***************************************************************
- nsel,s,loc,x,0 !在x=0处施加对称边界条件
- dsym,symm,x
- !*****************************************************************
- !设置非线性求解选项
- !*****************************************************************
- alls
- antype,trans !瞬态分析
- trnopt,full !瞬态分析选项,完全分析
- nropt,full,,on !定义完全牛顿--拉普森方法,激活自适应下降(默认)
- pred,on !打开预测校正
- timint,on !时间积分设置
- tintp,0.005,,,1,0.5,0.2 !定义瞬态综合参数
- tref,25 !参考温度25摄氏度
- !***************************************************************
- !设置载荷步参数
- !***************************************************************
- t=0 !求解时间初始值
- dt0=1e-6 !建立初始条件的小时间段
- dt1=0.5 !起始加热点对应的时间
- tinc=len/(lnum*v) !载荷步时间间隔,T =len/v,tinc =T/lnum
- !tsub=0.2 !求解温度场时子步时间
- !***************************************************************
- !稳态分析确定初始温度场
- !***************************************************************
- !初始条件
- time,dt0 !loadstep=1,time=dt0
- timint,off !时间积分选项,关闭(稳态分析)
- kbc,1 !阶越加载
- !nsubst,1 !子步为1步
- esel,s,type,,1 !选择类型1的单元节点
- nsle,s
- ic,all,temp,25 !初始状态,温度25摄氏度
- alls
- outres,all,all
- solve
- save,'1.11thermal_analysis_initial_temp','db'
- !查看初始温度场,应该全为25摄氏度
- !***************************************************************
- !按顺序模拟温度场,以第一道为例
- !***************************************************************
- !**************************************************第1道焊缝填充
- esel,s,type,,1 !在第一类单元中加热流载荷
- esel,r,live
- eplot
- *do,im,0,lnum,1
- !****************************选择有效半径内节点为当前节点
- vsel,s,,,v1 !选择焊缝1上表面单元
- eslv,r
- nsle
- asel,s,,,a1
- nsla,r,1
- esln,r,0
- !热源加载, 将各段后点(0-lnum)为热源中心,先加载后删除热源
- !即先消除上段所加高斯热源,并将上段的温度值作为下段的初始值
- !*******************************************包括起始加热点
- c=V*tinc*im !热源位置
- b=thic/cos(arf/2)*sqrt(2)/2
- tm=dt1+im*tinc
- time,tm
- antype,4,rest
- timint,on
- autots,on
- kbc,1
- deltim,0.01,0.01,0.2 !时间步长
- !***********************************以下为施加热流密度载荷
- *do,i,nemin,nemax,1
- *if,esel(i),eq,1,then !如果该单元在上面的集合里,则
- xsy=centrx(i) !读取该单元的中心坐标
- ysy=centry(i)
- zsy=centrz(i)
- rr=abs(sqrt(xsy*xsy+(ysy-b)*(ysy-b)+(zsy-c)*(zsy-c))) !该单元中心距离热源中心
- *if,rr,le,radius,then !该单元中心在加热半径范围内
- qr=qmax*exp(-k*rr*rr) !该单元中心处的热流大小
- sfe,i,nmface(i),hflux,,qr !在每个单元所指定的面上施加热源载荷
- *endif
- *endif
- *enddo
-
- allsel !全选求解
- outres,all,all
- solve
-
- esel,s,type,,1
- esel,r,live
- vsel,s,,,v1 !选择焊缝1上表面单元
- eslv,r
- nsle
- asel,s,,,a1
- nsla,r,1
- esln,r,0
-
- !!!!!!!!!!!!!!输入先暂时停止一下
- !插入"/post1$plnsol,temp$/psf,hflux,,1,1,on$/replot"的内容进行查看
- !问题:热流载荷的分布和温度场的分布不一致(该完全一致才对),有点偏移?
- !若要继续,读入"finish$/solu"
-
- *do,i,1,6
- sfedele,all,i,hflux !删除每个单元六个面上的热载荷
- *enddo
-
- *enddo
- alls
- esel,s,live
- eplot !查看温度场
- save,'1.11thermal_analysis_alive1','db'
- !=================================================================
- !生成节点温度分布云图动画文件的程序段
- !=================================================================
- /post1
- /seg,dele !允许图形数据存储到局部终端存储器
- /dscale,1,1.0 !显示位移时,设置放大系数
- avprin,0,0 !规定主项量和总向量如何被计算
- avres,1 !规定当powergraphies可用时,结果数据如何被平均
- /seg,multi,1.11temp-10,0.2 !存动画,分节存储后来的显示,动画名字,每个画面间延迟系数
- esel,s,live
- !*************************************************读取初始稳态温度场结果
- set,,,1,,dt0 !从结果文件读,载荷步,子步,比例因子实部,比例因子虚部,时间
- plnsol,temp
- !*****************************************读取第1道焊缝过程中的温度场结果
- *do,im,0,lnum,1
- tm=dt1+im*tinc
- set,,,1,,tm
- plnsol,temp
- *enddo
- /seg,off,1.11temp-10,0.2
- anim,1,1 !*********************************生成动画完毕
- !****************************************存储第1道焊缝过程中的温度场结果图片
- esel,s,live
- *do,im,0,lnum,1
- *if,im,eq,0,then
- tm=dt1
- set,,,1,,tm
- plnsol,temp
- /image,save,1.11temp0,jpeg
- *endif
-
- tm=dt1+im*tinc
- set,,,1,,tm
- plnsol,temp
-
- *if,tm,eq,dt1+lnum/2*tinc,then
- set,,,1,,tm
- plnsol,temp6.5,jpeg
- *endif
-
- *enddo
- /image,save,1.11temp12.5,jpeg
- !温度场完毕
复制代码 |
|