焊接/键合残余应力与变形怎么算?Abaqus 热-力顺序耦合与 DFLUX 详解
——科研到工程:Abaqus Goldak 双椭球 + FROM FILE 实现可复现实验结果(含 Goldak 热源 DFLUX )
适用人群:做焊接/键合残余应力/变形预测、增材制造热-力场分析的工程师与研究生
代码环境:Abaqus/CAE 2019(Python 2.7),Abaqus/Standard(DFLUX Fortran 子程序)
本文提供 两个脚本(Abaqus/CAE Python 自动网格建模脚本 + Fortran DFLUX 热源子程序)梳理成一套可复用的 有限元计算流程:
- 从物理到实现 的清晰链路:能量输入 → 传热 → 温度–时间历程 → FROM FILE 映射 → 弹塑性力学响应;
- 建模与求解流程:几何、分区、网格、边界、步长、输出与文件命名;
- Goldak 双椭球热源与热力耦合理论: 在
DFLUX中的实现原理与关键参数;
目录
- 用 Abaqus 做焊接/键合热-力耦合的“一键批量建模与计算” - 目录 - 1. 为什么要做焊接/键合热-力耦合? - 2. Goldak 双椭球热源与能量守恒 - 3. 总体流程与工程目录 - 4. 热分析建模要点(Thermal) - 5. 力学分析建模要点(Mechanical) - 6. 自动化批量建模脚本(Python,最终版) - 7. DFLUX:Goldak 体热源子程序(Fortran) - 8. 模型验证 - 9. 参考参数与推荐文献
1. 为什么要做焊接/键合热-力耦合?
焊接/键合是强非线性、强非稳态的多物理场过程:移动热源瞬时把能量输入到极小体积,热扩散与对流/辐射把能量带走,材料在不同温度区间内经历弹性–塑性–循环硬化乃至回复。顺序耦合(先热后力)是工业中最稳健的路线:
- 热分析(Heat Transfer):移动热源 + 换热边界 → 得到温度–时间历程
T(x,y,z,t); - 映射(FROM FILE):把热场随时间读入力学模型;
- 力学分析(Static, nlgeom):考虑
E(T)、σy(T)、α(T)等 → 输出残余应力/变形。
为什么不能只做热或只做力?
- 只做热:没有热–力耦合的应力演化,无法预测残余场;
- 只做力:没有真实的温度历程驱动,热应变与材料退化无从谈起。
工程意义:
- 快速评估工艺窗口(功率/焊速/热源形参)对峰温、HAZ、残余应力与翘曲的影响;
- 用自动化脚本把“手工建模”变成“可复用流程资产”,支撑 DOE/灵敏度/优化。
要让结果可信,关键是:能量守恒、边界换热量级合理、材料热物性/力学参数随温度变化;在力学侧需最小约束消除刚体模态,并与热网格一致以确保映射稳定。
2. Goldak 双椭球热源、能量守恒与热力耦合
符号:坐标 ;热源中心位置 ;半轴 ;有效功率 ;分配系数 (满足 )。
前半椭球(front,)
后半椭球(rear,$x
分段表达
能量守恒
轨迹(恒速 ,起点 ,起始时刻 )
热传导控制方程(瞬态)
在域 、时间区间 内,温度场 满足瞬态能量守恒(不考虑相变):
其中 为密度, 为定压比热, 为导热系数, 为体热源(W/m^3)。
初始条件:
边界条件(三类任选/组合):
- 指定温度(Dirichlet):
- 指定热流(Neumann):
- 对流 + 辐射(Robin):
其中 为对流换热系数, 为表面发射率, 为 Stefan–Boltzmann 常数, 为环境温度。
力学控制方程与热应变
焊接/键合后的固体力学响应(小–中变形,几何非线性可按需开启):
静力平衡:
其中 为 Cauchy 应力, 为体力密度(可忽略)。
位移边界:
弹性本构(各向同性):
含温度依赖的 。
塑性与硬化(示例:J2 + 组合硬化;仅示意):
- 等效应力:, 为偏应力;
- 屈服函数:;
- 演化:,并可含各向/随动硬化项;
- 一致性条件:。
顺序耦合的本质:先用热方程得到 ,再把它作为已知外场驱动固体力学问题(通过 与温度依赖材料参数),时间上保持同一时间轴或可匹配的时间段。
热-力耦合
热传导与移动热源
其中 即 Goldak 双椭球体热源; 表面边界含对流/辐射条件:
热弹塑性平衡方程
耦合流程
顺序耦合中,热分析得到的 (或其在积分点/节点的离散值)通过 TEMPERATURE, FILE=... 输入到力学模型。
- 解热方程得 ;
- 在力学步中按时间步读入 , 由 生成热应变, 并以温度退化的 与屈服准则/硬化规律推进塑性;
- 在冷却阶段, 不可恢复的塑性应变与结构约束共同“锁定”残余应力。
要求:
- 网格一致(最好共享相同拓扑与节点);
- 时间轴覆盖(力学步的时间点应落在热步范围内,或可插值);
- 参考温度一致(材料模型中的 与初始温度设置一致);
- 边界与最小约束合理,去除刚体模态。
3. 总体流程与工程目录
- Python 脚本自动创建几何/网格/材料/边界与分析步,分别写出热(THinp)与力学(MEinp)输入;
- DFLUX 计算体热源
q(x,y,z,t); - Mechanical 通过
*TEMPERATURE, FILE=<thermal job>读取热场。
工程目录(由脚本在“当前工作目录 CWD”下自动生成):
<当前工作目录 CWD>/ ├─ THinp/ # 热分析 .inp(文件名以 T- 开头) ├─ MEinp/ # 力学分析 .inp(文件名以 M- 开头) └─ UFLUX.for(或 DFLUX.for)
4. 热分析建模要点(Thermal)
- 单元:一阶
DC3D8;网格沿焊缝中心、端部与厚度方向加密; - 边界:除对称面外的外表面施加对流+辐射;
- 步长:自动增量(初始 0.02 s,最小 );
- 初温:20 ℃;
- 热源:
Body heat flux, USER(由 DFLUX 提供)。
5. 力学分析建模要点(Mechanical)
- 单元:一阶
C3D8R;与热网格一致; - 约束:
Y=0对称;两端两点最小约束去除刚体模态(右端约束u3,左端约束u1,u3); - 材料:
E(T),σy(T),组合硬化+循环硬化,α(T)、cp(T)、k(T); - 步长:
Static, nlgeom=ON,时间长度与热分析一致; - 温度:
*TEMPERATURE, FILE=<热分析 job 名>,分 3 个阶段(Welding/Cool1/Cool2)。
6. 自动化批量建模脚本(Python)
该脚本以当前工作目录 CWD 为根,在THinp/和MEinp/写入成对输入文件;支持单值或区间 min-max-n 的参数扫参。
使用
- CAE GUI:
File → Run Script...选择脚本; - 命令行:
abaqus cae noGUI=script.py -- 0.16 0.06 0.02 0.08 0.00227 1100 - 或区间:
-- 0.16 0.06 0.02 0.06-0.10-3 0.0018-0.003-5 900-1300-3。
脚本(节选,仅突出关键处)
# -*- coding: mbcs -*-
from abaqus import *
from abaqusConstants import *
import section, regionToolset, part, material, assembly, step, load, mesh, job, sketch
import os, sys, numpy as np
from collections import OrderedDict
# 以“当前工作目录”为根
BASE_DIR = os.getcwd()
THERM_DIR = os.path.join(BASE_DIR, 'THinp')
MECH_DIR = os.path.join(BASE_DIR, 'MEinp')
def ensure_output_directories():
for d in (THERM_DIR, MECH_DIR):
if not os.path.isdir(d):
os.makedirs(d)
# ……(此处省略:材料、几何、分区、网格、步骤、边界、输出等函数)……
# 主流程:循环参数 → 写热分析 inp → 写力学 inp
if __name__ == '__main__':
ensure_output_directories()
# 解析参数(支持单值或 min-max-n 形式)
# grid = {'length': [...], 'width': [...], ...}
# ……
for L in grid['length']:
for W in grid['width']:
for H in grid['height']:
for BL in grid['bead_length']:
for VS in grid['arc_speed']:
for PWR in grid['heat_input']:
os.chdir(THERM_DIR)
th_job = make_thermal_model(L, W, H, BL, VS, PWR)
os.chdir(MECH_DIR)
me_job = make_mechanical_model(L, W, H, BL, VS, PWR, thermal_job_name=th_job)
os.chdir(BASE_DIR)
print('All input files generated successfully.')
7. DFLUX:Goldak 体热源子程序(Fortran)
SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,JLTYP,
& TEMP,PRESS,SNAME)
INCLUDE 'ABA_PARAM.INC'
DIMENSION FLUX(1),TIME(2),COORDS(3)
CHARACTER*80 SNAME
C ---- 用户参数(需与 Python/工艺一致) ----
Q = 1100.0D0
A1 = 4.5D-3
A2 = 6.5D-3
B = 6.8D-3
C = 2.6D-3
F1 = 1.0D0
F2 = 1.0D0
L = 0.080D0
V = 2.27D-3 ! m/s
T0 = 0.0D0
X0 = -L/2.0D0
PI = 3.141592653589793D0
JLTYP = 1
C ---- 当前时间与位置 ----
T = TIME(1)
X = COORDS(1)
Y = COORDS(2)
Z = COORDS(3)
C ---- 热源中心并限位 ----
XNOW = X0 + V*(T - T0)
IF ( XNOW .GT. 0.5D0*L ) XNOW = 0.5D0*L
IF ( XNOW .LT. -0.5D0*L ) XNOW = -0.5D0*L
C ---- 规范化系数 ----
.......................
IF ( X .GE. XNOW ) THEN
FLUX(1) = QF
ELSE
FLUX(1) = QR
ENDIF
RETURN
END
若你用“线能量” (J/mm)与焊速 (m/s),则
Q = η * E_\ell * v
。
8. 模型验证
- 准备输入
- Python 脚本:几何尺寸
[L,W,H]、焊缝长度BL、焊速VS、有效功率Q。 - Fortran 子程序:Goldak 形参
a1,a2,b,c与分配f1,f2,以及功率Q、速度v、长度L、起点X0等。
- 热分析输入(T-*.inp)
- 几何与分区:长方体试样;以
Y=0为对称平面;在 焊缝中心线与两端 做加密分区(便于捕捉尖锐梯度与端部效应)。 - 网格:一阶热单元
DC3D8;全局较粗、焊缝区加密; - 材料(热物性):
Density、SpecificHeat(T)、Conductivity(T); - 边界换热:除
Y=0对称面外,其他外表面施加 Film + RadiationToAmbient; - 分析步:
Welding(持续BL/VS),Cool1,Cool2,均为自动增量控制; - 体热源:
*DFLUX(或输入文件设为USER),在Welding步生效; - 输出:
NT/HFL/RFL等场量。
- 求解热场
- 提交
T-*.inp+DFLUX.for(或user=UFLUX.for)作业,得到T-*.odb。 - 检查代表性点温度–时间曲线、峰值温度、等温线是否合理。
- 力学分析输入(M-*.inp)
- 几何/网格:与热侧一致,一阶
C3D8R; - 约束:
Y=0对称;两端两点 最小约束(去刚体模态:右端约束u3,左端约束u1,u3); - 材料(力学):
Elastic(T)、Plastic(Combined)+CyclicHardening(T)、Expansion(T),并保留cp/k(T)以便温度场读取时内部一致; - 分析步:
Welding、Cool1、Cool2,与热侧 时间轴一致; - 温度映射:
*TEMPERATURE, FILE=<T-...>, OP=NEW ** Step-1: Welding beginStep=1 ** Step-2: Cool1 beginStep=2 ** Step-3: Cool2 beginStep=3
- 输出:
S/U/LE/PEEQ/NT。
- 求解力学场
- 提交
M-*.inp,Abaqus 将从T-*.odb读取每一步对应的温度场; - 检查残余应力分布(纵向/横向/厚向)、等效塑性应变、焊后翘曲。
- 后处理与扫参
- 批量参数(几何/工艺)→ 自动生成多组
T-*/M-*.inp→ 批处理提交 → 统一提取峰值温度、熔宽/熔深近似、最大残余应力、变形等 → 建响应面或灵敏度分析。
FAQ(高频问题)
- 能只用 FILM/RADIATE 做热源吗? 不能,那是边界换热;DFLUX 是体热源。
- 为什么不做全耦合? 工程尺度下成本高、材料相依更复杂;顺序耦合更稳健。
- FROM FILE 总失败? 先查网格一致与 Job 名,时间轴覆盖,再看插值容差设置。
- Goldak 与高斯面热源区别? Goldak 是体热源且前后不对称;面热源多用于薄板近表面近似
9. 参考参数与推荐文献
- Goldak J., Chakravarti A., Bibby M., A new finite element model for welding heat sources, Metallurgical Transactions B, 1984.
- Lindgren L.E., Modelling for residual stresses and distortions, 2001–2014(系列综述)。
- ABAQUS Analysis User’s Guide:Heat Transfer、DFLUX、TEMPERATURE FROM FILE.
以下内容为付费内容,请购买后观看
包含2个文件
Abaqus/CAE Python 建模脚本 Fortran `DFLUX` 热源子程序
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP




















