焊接模拟跑完最后一帧,残余应力云图上焊缝区纵向应力到了380MPa,跟文献值差了快一倍,肯定哪个环节出问题了。
焊接热源用DFLUX子程序,双椭球模型,前半球长a=4mm,后半球长b=8mm,宽度c=3mm,深度d=2mm,热源功率Q=UIη,电压24V,电流200A,效率0.8。移动速度3mm/s,沿焊缝方向。生热率分配前半球0.6后半球1.4。子程序里用COORDS取积分点坐标,TIMINC取时间增量,判断热源当前位置,高斯分布算热流密度。平板尺寸200×100×6mm,对接焊缝,开V型坡口,坡口角度60°,钝边2mm。
材料用Q345,密度7850,比热容460,导热系数随温度变,20°C时50,800°C时降到25。相变潜热用等效比热容法塞进去,固相线1450°C,液相线1500°C。热膨胀系数1.2e-5,弹性模量随温度衰减,20°C时206GPa,600°C时掉到80GPa左右。塑性用各向同性硬化加随动硬化混合,Ziegler模型。这些参数从JMatPro算出来导出,手动往ABAQUS里敲,敲错一个数就得重来。

热分析步用Heat Transfer,瞬态,总时间200s,初始增量0.01s,最小1e-6,最大1s。*HEAT TRANSFER, DIRECT,*DFLUX,*FILM定义对流换热,膜系数15 W/m²K,*RADIATE定义辐射,发射率0.8。热源走过之后加冷却步,空冷到室温。温度场算完存成ODB,再读进来做应力分析。应力分析用Static, General,把温度场作为预定义场读入,*TEMPERATURE, FILE=job_heat.odb。
加载步边界条件:对称面用XSYMM和YSYMM,底面约束竖向位移,防止刚体位移。焊缝区网格加密,最小尺寸0.5mm,远离焊缝用2mm过渡。单元类型热分析用DC3D8,应力分析用C3D8R。网格过渡用Tie约束绑定,别用Shared Nodes,跨网格密度Tie更容易收敛。
有一次做一个12mm厚板的焊接,双面V型坡口。周五下午提交,机房里空调坏了,热得跟蒸笼一样,跑热分析跑了四个多小时,温度场出来一看,焊缝区最高温度到了1800°C,比预期低了300°C。检查DFLUX,发现子程序里热源坐标用的COORDS(1)是全局坐标,忘了减去焊接起始点的偏移量,热源实际走到板子外面去了。改了坐标偏移重新提交,温度场对了,但应力分析又崩了。读温度场的时候时间步不匹配,热分析和应力分析的时间步长不一样,*TEMPERATURE, FILE插值直接报错。把两个分析步的时间增量对齐,热分析写场输出的时候Frequency设成跟应力分析一样的步长,才跑通。前前后后折腾了三天,真正算的时间不到六个小时。
焊接残余应力跟拘束条件关系很大,完全自由和刚性拘束算出来能差两倍。实际工况下夹具的拘束程度得根据装夹方式估算,全刚性约束算出来的残余应力偏高,不适合直接跟实测对比。热源参数反演是个办法,用实测熔池形状反推热源尺寸和效率,比用经验公式准。文献里双椭球参数各家取法不一样,同一个板厚同一个焊接工艺,参数差个20%很正常。
移动热源模拟一次,网格数量少说几十万,热分析加应力分析两趟算下来,机时消耗不小。能用2D简化的时候就别上3D,平面应变假设对厚板中间截面够用,宽度方向应力分布不均的时候再考虑3D。热源简化成高斯面热源或者体热源,看熔深要求,熔深浅的用面热源凑合。生死单元模拟多道焊,填充金属逐层激活,*MODEL CHANGE, ADD=STRAIN FREE,每道焊完冷却再加下一道。
后处理看残余应力,路径定义沿垂直焊缝方向,距焊缝中心线5mm、10mm、20mm各一条。纵向应力S11和横向应力S22分别画出来,跟XRD实测值对比。D:\temp\welding\Job-1.odb,Step-2,Frame
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删