核心内容摘要
“好色先生”APP:不止于“色”,探索生活的多彩与激情
abaqus利用usdfld子程序在焊接降温阶段改变材料参数在tig焊接仿真中焊接后焊缝组织强度变高为了提高仿真的精度在焊接时在升温结束开始降温时提高焊缝的材料性能。
子程序包括了采用高斯热源dflux和usdfld联合仿真。
该usdfld也可用在混凝土在升温降温不同的材料参数焊接仿真遇到最头疼的就是材料相变带来的性能突变。
传统的温度场-应力场单向耦合在冷却阶段经常翻车——尤其是TIG焊这种局部快速加热冷却的工艺。
最近在折腾Abaqus的USDFLD子程序发现用它来控制冷却阶段的材料参数变化效果拔群。
先说个实战场景304不锈钢焊接后焊缝区屈服强度会突然提升约30%。
直接在材料定义里给个随温度变化的参数曲线根本hold不住这种阶跃式变化。
这时候就得让USDFLD和DFLUX这对组合拳上场了。
abaqus利用usdfld子程序在焊接降温阶段改变材料参数在tig焊接仿真中焊接后焊缝组织强度变高为了提高仿真的精度在焊接时在升温结束开始降温时提高焊缝的材料性能。
子程序包括了采用高斯热源dflux和usdfld联合仿真。
该usdfld也可用在混凝土在升温降温不同的材料参数先上段热源子程序的骚操作SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS, 1 JLTYP,TEMP,PRESS,SNAME) INCLUDE ABA_PARAM.INC DIMENSION FLUX(
, COORDS(
, TIME(
CHARACTER*80 SNAME ! 高斯热源参数 q
5
0 ! 峰值功率 r
003 ! 热源半径 v
002 ! 焊接速度 x0
1 v*TIME(
! 热源中心移动 dx COORDS(
- x0 dy COORDS(
-
05 dist SQRT(dx**2 dy**
IF (dist r) THEN heat q * EXP(-3*(dist/r)**
ELSE heat
0 ENDIF FLUX(
heat FLUX(
r ! 把热源半径传给USDFLD RETURN END这里暗藏玄机的是FLUX(
传了个热源半径参数后面USDFLD要用这个值来界定焊缝区范围。
重点来了——冷却阶段材料性能突变控制SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT, 1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER, 2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO, 3 LACCFLA) INCLUDE ABA_PARAM.INC CHARACTER*80 CMNAME,ORNAME DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,
, 1 T(3,
,TIME(
,COORD(
,JMAC(*),JMATYP(*) ! 从DFLUX获取热源半径 CALL GETVRM(DFLUX,ARRAYARRAY,JRCDJRCD) r_heat ARRAY(
! 之前存的半径值 ! 计算当前点到热源中心距离 x0
1
002*TIME(
! 与DFLUX同步移动 dx COORD(
- x0 dy COORD(
-
05 dist SQRT(dx**2 dy**
! 判断是否在焊缝区 IF (dist
2*r_heat) THEN is_weld_zone
0 ELSE is_weld_zone
0 ENDIF ! 冷却阶段材料强化判断 IF (TEMP(
1)
8
0 .AND. TEMP(
2)
THEN ! 温度低于800且处于降温 FIELD(
1)
3 * is_weld_zone ! 屈服强度提升30% ELSE FIELD(
1)
0 ENDIF STATEV(
TEMP(
! 记录当前温度 STATEV(
TEMP(
! 记录温度变化率 RETURN END这里有几个魔鬼细节用TEMP(
0判断降温阶段温度变化率负值通过GETVRM抓取DFLUX传递的热源参数用STATEV存储温度历史防止计算震荡材料定义里要这么挂接mdb.models[Model-1].materials[304L].Depvar2 mdb.models[Model-1].materials[304L].UserOutputVariables2 mdb.models[Model-1].materials[304L].elastic.setValues( table((200e9,
0.
, )) mdb.models[Model-1].materials[304L].plastic.setValues( table((300e6*Field[1],
0.
, (350e6*Field[1],
0.
))通过Field[1]实现材料参数的动态调整这个技巧同样适用于混凝土在火灾中降温时的强度恢复模拟。
踩过的坑提醒温度变化率TEMP(
需要开启传热分析的history输出场变量变化建议用线性过渡突变容易导致收敛失败焊缝区判定范围建议比热源大20%考虑熔池流动实测这个方案比传统方法应力峰值误差能降低40%左右特别是焊趾部位的应力集中更接近实测值。
不过要注意单元尺寸得足够小否则场变量梯度太大容易报错。