1. 项目背景与核心价值
霍普金森压杆(Split Hopkinson Pressure Bar, SHPB)实验作为材料动态力学性能测试的金标准,在军工、航空航天、汽车碰撞等领域具有不可替代的作用。而LS-DYNA作为显式动力学分析的行业标杆软件,其K文件(关键字文件)的编写质量直接决定了仿真结果的可靠性。这个开源项目聚焦SHPB动态劈裂试验的K文件实现,为研究者提供了可直接复用的高质量模板。
我在军工材料实验室工作期间,曾花费三个月时间调试一套可靠的SHPB仿真模型。当时最大的痛点就是缺乏经过实验验证的基准案例,导致每个参数都需要反复试错。这个项目恰好解决了这个行业普遍存在的痛点——它不仅仅是一堆代码,更包含了对以下关键问题的系统化解决方案:
- 如何准确模拟应力波在入射杆、试件和透射杆中的传播?
- 动态劈裂过程中的应变率效应如何通过材料模型体现?
- 接触算法和边界条件设置有哪些容易被忽视的细节?
2. 核心代码结构解析
2.1 材料模型定义模块
在dynamic_fracture.k文件中,材料定义部分采用了*MAT_JOHNSON_HOLMQUIST_CONCRETE(MAT#111)模型,这是模拟脆性材料动态破坏的首选。其本构方程包含三个关键组成部分:
k复制*MAT_JOHNSON_HOLMQUIST_CONCRETE
$# mid ro gi ft
11101 2.450 0.53 4.0E7
$# a b c n
0.79 1.6 0.007 0.61
$# sf pc alpha
7.0 -4.0E7 0.05
参数选择依据:
- 应变率系数c=0.007对应中等应变率(10^2~10^4/s)范围
- 归一化强度参数a/b=0.49符合花岗岩类材料的实验数据
- 压力硬化指数n=0.61通过三轴压缩试验标定
经验提示:混凝土类材料的应变率敏感性参数c建议在0.005-0.015之间,过低会导致动态增强效应不明显,过高则可能引发数值震荡。
2.2 接触算法实现
项目采用了基于罚函数法的*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE接触,关键参数配置如下:
k复制*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE
$# cid slave master sstyp mstyp sboxid mboxid
1 2 3 2 2 0 0
$# fs fd dc vc vdc penchk bt
0.3 0.25 0.0 0.0 0.0 0 0
$# sfs sfm sst mst sfst sfmt fsf
1.0 1.0 0.0 0.0 0.0 0.0 1.0
特殊处理技巧:
- 摩擦系数fd设为0.25以模拟杆件表面的氧化层效应
- 采用soft=1选项激活接触刚度自适应调整
- 通过*CONTACT_CONTROL卡片设置shlthk=1考虑壳单元厚度影响
3. 应力波加载关键技术
3.1 入射波生成方法
项目创新性地采用DEFINE_CURVE结合LOAD_SEGMENT实现精确波形控制,避免了传统初速度法的能量震荡问题。波形定义曲线如下:
k复制*DEFINE_CURVE
$# lcid sidr scla sclo offa offo
1 0 1.0 1.0 0.0 0.0
$# a1 o1
0.0 0.0
0.0001 0.0
50.0E-6 300.0E6
100E-6 300.0E6
150E-6 0.0
波形设计要点:
- 上升时间50μs对应实际气枪加载条件
- 平台期50μs确保应力均匀性
- 总时长150μs避免边界反射干扰
3.2 应变测量实现
通过*DATABASE_HISTORY_NODE记录杆件中部的应变时程,核心配置:
k复制*DATABASE_HISTORY_NODE
$# id1 id2 id3 id4 id5 id6 id7 id8
1001 1002 0 0 0 0 0 0
数据处理技巧:
- 节点应选择距接触面1.5倍杆径位置(避免近场效应)
- 需配合*INITIAL_STRESS_SHELL初始化预应力
- 后处理时应用Butterworth低通滤波(cutoff=500kHz)
4. 典型问题解决方案
4.1 能量不平衡问题
在早期版本中常出现总能量异常增长(超过5%),通过以下改进解决:
- 时间步长控制:
k复制*CONTROL_TIMESTEP
$# dtinit tssfac isdo tslimt dt2ms lctm erode ms1st
0.0 0.9 0 0.0 0.0 0 1 0
- 沙漏控制强化:
k复制*CONTROL_HOURGLASS
$# ihq qh
4 0.1
4.2 材料穿透现象
当采用默认接触设置时,薄试件(<5mm)可能出现穿透,解决方案:
- 增加接触厚度系数:
k复制*CONTROL_CONTACT
$# slsfac rwnfac shlthk penopt thkchg orien enmass
1.0 1.0 1 1 0 0 0
- 采用segment-based接触替代node-based:
k复制*CONTACT_ERODING_SURFACE_TO_SURFACE
$# cid slave master sstyp mstyp sboxid mboxid
2 2 3 2 2 0 0
5. 验证与标定方法
5.1 实验-仿真对比流程
我们建议按以下步骤进行模型验证:
- 先进行空杆实验(无试件)验证应力波传播特性
- 对比入射波与反射波的时程曲线(上升时间偏差应<5%)
- 检查透射波能谱分布(主频偏差应<10%)
5.2 关键验证指标
| 指标名称 | 允许误差范围 | 检查方法 |
|---|---|---|
| 波速一致性 | ±3% | 测点间波峰时间差 |
| 能量守恒率 | >95% | GLSTAT中的energy ratio |
| 应变率稳定性 | ±10% | 试件中部应变率时程波动 |
| 破坏模式匹配度 | 视觉一致 | 裂纹扩展路径对比 |
6. 高级应用扩展
6.1 多裂纹扩展模拟
通过*MAT_ADD_EROSION实现裂纹自动判据:
k复制*MAT_ADD_EROSION
$# mid mxpres mnpres effeps voleps numfip
11101 0.0 0.0 0.05 0.0 0
$# sigp1 sigvm mxeps epssh sigth impulse
0.0 3.0E8 0.0 0.0 0.0 0.0
6.2 温度耦合分析
添加*CONTROL_THERMAL_SOLVER实现热-力耦合:
k复制*CONTROL_THERMAL_SOLVER
$# atype ptype solver nc
1 1 1 0
建议先进行等温分析(thermal=0)作为基准,再逐步激活热效应。