首页/文章/ 详情

Abaqus工程师是怎么设计输入曲线荷载的

3月前浏览990

写在前面

如果你用"有限元",不妨加个关注,总有对你有用的东西。

点击下面名片快速关注。




摘要

  本文讲述 Abaqus 中控制载荷时间历程的核心关键字:AMPLITUDE ,分析abaqus是怎么把曲线荷载输入到计算流程中的,包括详细的参数解析,以及最后给出的实际例子。

1. 引言

在有限元分析中,载荷很少是恒定不变的——地震波随时间剧烈波动,冲击载荷瞬间衰减,旋转机械承受周期激励,准静态加载需要平滑过渡。Abaqus 用一个关键字统一管理所有这些变化规律:***AMPLITUDE**。

无论是施加位移边界、集中力、分布载荷、温度场还是连接器运动,只要涉及"随时间变化"(或频域中"随频率变化"),你都需要定义一条幅值曲线。***AMPLITUDE 是 Abaqus 中使用频率最高的关键字之一**——一份典型的 inp 文件里,它往往出现十几次甚至几十次。

然而,该关键字支持十种不同的定义方式(DEFINITION),每种都有自己独特的参数配置和数据行格式。很多工程师只知道默认的 TABULAR 方式,对 PERIODIC、MODULATED、DECAY 等高级功能一知半解,遇到复杂加载场景就束手无策。

本文将以 Abaqus 2016 关键字参考手册为基础,系统梳理 *AMPLITUDE 的全部参数、十种幅值定义类型、实战示例以及常见错误,帮助你在半小时内全面掌握这个关键字。

2. 关键字基本结构

2.1 语法总览

*AMPLITUDE 关键字的最基本形式如下:

*AMPLITUDE, NAME=幅值名称, DEFINITION=定义类型
数据行(根据定义类型不同而不同)

所有幅值曲线都有一个唯一的名字(NAME),后续通过这个名字在其他关键字中引用。例如,在 *BOUNDARY 中施加一个名为 LoadCurve 的位移曲线:

*AMPLITUDE, NAME=LoadCurve, DEFINITION=TABULAR
0.0, 0.0
1.0, 1.0
2.0, 0.5
3.0, 0.0

*BOUNDARY, AMPLITUDE=LoadCurve
Set-1, 1, 1, 10.0

这里 *BOUNDARY 中指定的位移量 10.0 是参考值,实际位移 = 参考值 × 幅值曲线在对应时刻的值。当 VALUE=ABSOLUTE 时,实际位移直接取幅值曲线的值。

2.2 必需参数:NAME

参数      
说明      
NAME
幅值曲线的标签名,后续通过 AMPLITUDE=NAME 引用。名称中不能包含特殊字符,建议使用英文和下划线。      

NAME 可以包含字母、数字和下划线,但不能以数字开头。多个幅值曲线可以出现在同一个 inp 文件中,只要名称不重复即可。

2.3 产品支持

产品      
是否支持      
Abaqus/Standard      
是      
Abaqus/Explicit      
是      
Abaqus/CFD      
是(不支持的 DEFINITION 类型见下文)      
Abaqus/CAE      
是(不支持 BUBBLE 加载)      

2.4 级别说明

*AMPLITUDE 关键字可以作为 Model data(模型数据)定义在任何 step 之外,也可以作为 History data(历史数据)定义在 step 内部。通常情况下,建议将幅值曲线统一定义在 step 之前,便于集中管理。

2.5 通用可选参数详解

这些参数适用于大多数 DEFINITION 类型(少数例外会在各节专门标注)。

TIME:选择时间度量方式

TIME=STEP TIME  (默认)
TIME=TOTAL TIME
选项      
含义      
STEP TIME
以当前 step 的起止为参考,step 开始时 t=0。频域分析中,STEP TIME 对应频率而非时间。      
TOTAL TIME
累积所有非摄动分析步的总时间。重新启动分析时,TOTAL TIME 会从重启点继续累加。      

选取建议:

  • 如果幅值曲线只在一个 step 中使用,且需要从零开始加载 → 用 STEP TIME
  • 如果幅值曲线跨多个 step 使用,且时间需要连续累积 → 用 TOTAL TIME
  • 在 *FREQUENCY、*STEADY STATE DYNAMICS 等频域分析中,STEP TIME 对应的是频率而非物理时间

VALUE:相对值与绝对值

VALUE=RELATIVE  (默认)
VALUE=ABSOLUTE
选项      
含义      
RELATIVE
幅值曲线的值为比例因子(通常 0~1),实际载荷 = 幅值 × 关键字中指定的参考值      
ABSOLUTE
幅值曲线的值为绝对值,直接替代关键字中指定的参考值      

RELATIVE 示例:

*AMPLITUDE, NAME=Load, VALUE=RELATIVE
0.0, 0.0
1.0, 1.0
2.0, 0.0

*CLOAD, AMPLITUDE=Load
Node-1, 1, 1000.0

实际力 = 1000.0 × 幅值。在 t=1.0 时力达到峰值 1000 N。

ABSOLUTE 示例:

*AMPLITUDE, NAME=Displ, VALUE=ABSOLUTE
0.0, 0.0
1.0, 5.0
2.0, 10.0

*BOUNDARY, AMPLITUDE=Displ
Set-1, 1, 1, 1.0

实际位移直接等于幅值,t=2.0 时位移为 10.0 mm(而非 1.0 × 10.0)。

注意事项:

  • VALUE=ABSOLUTE 会同时影响温度和温度梯度。对于连接了梁单元或壳单元的节点,如果其截面定义中使用了 TEMPERATURE=GRADIENTS(这是默认设置),则 **不应使用 VALUE=ABSOLUTE**,否则温度梯度的值会被错误地覆盖。

SCALEX / SCALEY:缩放时间轴和幅值轴

SCALEX=缩放因子  (默认 1.0)
SCALEY=缩放因子  (默认 1.0)
参数      
作用      
SCALEX
将数据行中所有时间值乘以该因子      
SCALEY
将数据行中所有幅值乘以该因子      

典型场景:实验数据是秒级的,但需要做微秒级分析。设置 SCALEX=1.0E-6 即可。

SHIFTX / SHIFTY:平移时间轴和幅值轴

SHIFTX=偏移量  (默认 0.0)
SHIFTY=偏移量  (默认 0.0)
参数      
作用      
SHIFTX
将数据行中所有时间值加上该偏移      
SHIFTY
将数据行中所有幅值加上该偏移      

典型场景:地震波记录的开始时刻不是 t=0,通过 SHIFTX 可以对齐零时刻。

INPUT:从外部文件读取

*AMPLITUDE, NAME=External, INPUT=load_data.txt

当数据行很多(如来自实验设备的上万行数据)时,将数据存放在外部 txt 文件中,通过 INPUT 参数引用。外部文件的格式与直接写在 inp 中的数据行完全相同。

不适用于 DEFINITION=USER 和 DEFINITION=ACTUATOR。

SMOOTH:平滑过渡(TABULAR 和 EQUALLY SPACED 专用)

SMOOTH=平滑系数  (Standard 默认 0.25,Explicit 默认 0.0,范围 0.0 ≤ SMOOTH ≤ 0.5)

当时间导数需要被计算时(如直接积分动力学分析中的位移/速度边界条件),Abaqus 会在每个时间点的前后 SMOOTH × Δt 区间内,用二次函数替代分段线性插值,使得速度(一阶导数)连续。

SMOOTH 值      
效果      
0.0      
纯分段线性,速度在时间点处不连续(默认用于 Explicit)      
0.05      
轻微平滑,适合时间间隔较大的曲线      
0.25      
标准平滑(默认用于 Standard)      
0.5      
最大平滑(整个间隔被平滑,不推荐)      

图:SMOOTH 参数效果对比 — 同一组数据点分别使用 SMOOTH=0、0.05、0.25 的效果

注意:SMOOTH 只在需要计算幅值时间导数时才生效,对于力加载等场景不起作用。另外,CFD 分析中不支持此参数。

3. 十种幅值定义类型详解

3.1 TABULAR —— 表格型(默认)

含义

按时间顺序给定一组 (时间, 幅值) 数据对,Abaqus 默认使用分段线性插值计算任意时刻的幅值。这是最常用、最直观的定义方式。

数据行格式

格式一:每行四对数据(8 个数值)

第一行:t₁, A₁, t₂, A₂, t₃, A₃, t₄, A₄
第二行:t₅, A₅, t₆, A₆, t₇, A₇, t₈, A₈
...
最后一行:可少于 4 对数据

格式二:每行一对数据(2 个数值)

第一行:t₁, A₁
第二行:t₂, A₂
第三行:t₃, A₃
...

两种格式可以混合使用,但通常建议统一为一种格式以提高可读性。

示例:梯形脉冲加载

*AMPLITUDE, NAME=Pulse, DEFINITION=TABULAR, TIME=STEP TIME
0.0,  0.0
0.05, 1.0
0.15, 1.0
0.20, 0.0
时间 (s)      
幅值      
0.00      
0.0      
0.05      
1.0      
0.15      
1.0      
0.20      
0.0      

t ∈ [0, 0.05]:线性上升;t ∈ [0.05, 0.15]:保持最大值;t ∈ [0.15, 0.20]:线性下降。

适用场景

  • 通用瞬态加载(力、位移、温度等的任意时间历程)
  • 实验数据导入
  • 多步复杂加载路径图:TABULAR 梯形脉冲加载 — 数据点:(0,0) → (0.05,1) → (0.15,1) → (0.20,0)

3.2 EQUALLY SPACED —— 等间距型

含义

时间间隔固定,数据行只需列出每个时间点的幅值。适用于数据点非常密集且间隔均匀的场景(如高速数据采集系统输出的数据)。

专用参数

参数      
必要性      
说明      
FIXED INTERVAL必需
固定的时间(或频率)间隔 Δt      
BEGIN
可选(默认 0.0)      
第一个幅值对应的时间/频率      

数据行格式

格式一:每行八个幅值

第一行:A₁, A₂, A₃, A₄, A₅, A₆, A₇, A₈
...

格式二:每行一个幅值

第一行:A₁
第二行:A₂
...

时间序列自动按 tᵢ = BEGIN + (i-1) × FIXED INTERVAL 生成。

示例:0.01 秒间隔的正弦半波

*AMPLITUDE, NAME=HalfSine, DEFINITION=EQUALLY SPACED, FIXED INTERVAL=0.01
0.0000
0.1564
0.3090
0.4540
0.5878
0.7071
0.8090
0.8910
0.9511
0.9877
1.0000

这 11 个点覆盖 t = 0.0 到 t = 0.10,对应 sin(π·t/0.1) 的离散采样。

适用场景

  • 从实验设备或外部程序导入的等时间间隔数据
  • 周期性加载的高密度采样图:EQUALLY SPACED 正弦半波 — 11 个等间距采样点,虚线为连续 sin 函数参考

3.3 SMOOTH STEP —— 平滑阶跃型

含义

SMOOTH STEP 是对 TABULAR 的增强版。两者数据行格式完全一致,唯一的区别在于插值方式:**SMOOTH STEP 在每个数据点之间使用五次多项式进行平滑插值,保证一阶和二阶导数的连续性。**

这意味着在数据点处,载荷的变化速率和变化加速度都是连续的,非常适合对加速度敏感的分析。

数据行格式

与 TABULAR 完全相同(四对/行或一对/行)。

示例:平滑位移加载

*AMPLITUDE, NAME=SmoothLoad, DEFINITION=SMOOTH STEP
0.0, 0.0
0.2, 1.0
0.8, 1.0
1.0, 0.0
对比      
TABULAR      
SMOOTH STEP      
速度连续性      
在数据点处不连续      
处处连续      
加速度连续性      
不连续      
处处连续      
适用分析类型      
静力学、准静态      
动力学(显式或隐式)      

图:TABULAR vs SMOOTH STEP 插值对比 — 左侧分段线性,右侧五次 Hermite 平滑

适用场景

  • 准静态分析中的平滑加载(避免动力学震荡)
  • 显式动力学中需要光滑加速度的加载
  • 替代 TABULAR + SMOOTH 参数(SMOOTH STEP 本身就能保证二阶光滑)

3.4 PERIODIC —— 周期型(傅里叶级数)

含义

用傅里叶级数定义幅值曲线:

 

其中:

  • N:傅里叶级数的项数
  • ω:圆频率(弧度/时间)
  • t₀:起始时间
  • A₀:常数项
  • Aⁿᶜᵒˢ:第 n 阶余弦系数
  • Aⁿˢⁱⁿ:第 n 阶正弦系数

数据行格式

第一行:N, ω, t₀, A₀
第二行:A₁ᶜᵒˢ, A₁ˢⁱⁿ, A₂ᶜᵒˢ, A₂ˢⁱⁿ, A₃ᶜᵒˢ, A₃ˢⁱⁿ, A₄ᶜᵒˢ, A₄ˢⁱⁿ
第三行:A₅ᶜᵒˢ, A₅ˢⁱⁿ, ...(每行最多 8 个系数,共 2N 个)

示例:简谐激励

一个幅值为 5,频率为 10 Hz 的正弦波:

*AMPLITUDE, NAME=SineLoad, DEFINITION=PERIODIC
1, 62.83185, 0.0, 0.0
0.0, 5.0

ω = 2π × 10 = 62.83185 rad/s,A₁ᶜᵒˢ = 0.0,A₁ˢⁱⁿ = 5.0 → A(t) = 5·sin(62.83185·t)图:PERIODIC 简谐激励 — f=10 Hz,幅值=5

含多阶谐波的示例:

*AMPLITUDE, NAME=ComplexWave, DEFINITION=PERIODIC
3, 31.4159, 0.0, 1.0
2.0, 0.0, 0.0, 3.0, 0.5, 0.0

A(t) = 1.0 + 2.0·cos(ωt) + 3.0·sin(2ωt) + 0.5·cos(3ωt)图:PERIODIC 多阶谐波 — N=3,展示各阶谐波叠加效果

适用场景

  • 旋转机械的周期激励
  • 稳态动力学分析(*STEADY STATE DYNAMICS)
  • 频域响应分析

3.5 MODULATED —— 调制型

含义

用一条幅值曲线 A 去调制另一条幅值曲线 B:最终幅值 = A(t) × B(t)。

例如,用一个低频的正弦波(包络)去调制一个高频的正弦波(载波),模拟地震波或冲击波包络。

数据行格式

单行:A_amplitude_name

这里 A 是调制函数的名称,该函数必须已经通过 *AMPLITUDE 定义。

示例:指数衰减包络调制正弦波

*AMPLITUDE, NAME=Carrier, DEFINITION=PERIODIC
1, 62.83185, 0.0, 0.0
0.0, 1.0
**
*AMPLITUDE, NAME=Envelope, DEFINITION=DECAY
1.0, 0.0, 0.0, 0.05
**
*AMPLITUDE, NAME=DampedSine, DEFINITION=MODULATED
Carrier

最终的幅值 = 纯正弦波 × 指数衰减包络 = e^{-t/0.05} · sin(62.83·t)图:MODULATED 指数衰减包络调制 — 上:载波,中:包络,下:调制结果

注意:调制的顺序是先指定调制函数(第一个定义的幅值曲线名),后定义被调制的曲线(在 MODULATED 的数据行中引用需要被调制的函数名)。实际上,查看 Abaqus 文档中的描述——MODULATED 类型的唯一数据行是 .A.... 格式。正确的理解是:MODULATED 的数据行中引用的是一个已定义的幅值曲线名称。

适用场景

  • 地震波的包络调制
  • 冲击载荷的指数衰减包络
  • 多级调制信号

3.6 DECAY —— 指数衰减型

含义

定义一个指数衰减函数,数学表达式为:

 
参数      
含义      
A₀      
常数项(衰减后趋近于该值)      
A      
指数项系数      
t₀      
衰减起始时间      
τ      
衰减时间常数      

数据行格式

单行:A₀, A, t₀, τ

示例:冲击衰减

一个初始峰值为 100,衰减时间常数为 0.1 秒的冲击响应:

*AMPLITUDE, NAME=BlastDecay, DEFINITION=DECAY
0.0, 100.0, 0.0, 0.1

t=0 时幅值 = 100;t=0.1 时幅值 ≈ 36.8(即峰值的 1/e);t=0.3 时幅值 ≈ 5.0

带常数项的衰减:

*AMPLITUDE, NAME=ResidualDecay, DEFINITION=DECAY
10.0, 90.0, 0.0, 0.05

初始值 = 100,最终趋近于 10。

适用场景

  • 爆炸冲击波衰减
  • 阻尼自由振动包络
  • 冲击后的残留变形图:DECAY 指数衰减 — 左:纯衰减 A=100·exp(-t/0.1),右:带常数项 A=10+90·exp(-t/0.05)

3.7 SOLUTION DEPENDENT —— 解相关型

含义

幅值在求解过程中根据当前解的状态动态调整。Abaqus 会在每个增量步检查是否需要调整幅值。用户可以通过用户子程序控制幅值的变化逻辑。

数据行格式

单行:A₀, Aₘᵢₙ, Aₘₐₓ
字段      
含义      
默认值      
A₀      
初始幅值      
1.0      
Aₘᵢₙ      
最小允许值      
0.1      
Aₘₐₓ      
最大允许值      
1000.0      

示例

*AMPLITUDE, NAME=AdaptiveLoad, DEFINITION=SOLUTION DEPENDENT
1.0, 0.05, 5.0

初始幅值 = 1.0,允许在 [0.05, 5.0] 范围内动态调整。

适用场景

  • 自适应加载控制(根据收敛情况自动调整载荷步长)
  • 裂纹扩展分析中的自动加载
  • RISK 分析中的自动减载

注意:此类型不适用于 Abaqus/CFD 分析。

3.8 BUBBLE —— 气泡加载型

含义

专门用于水下爆炸(UNDEX)气泡脉动分析,模拟气泡在流体中的膨胀、压缩和迁移过程。该定义类型集成了完整的气泡动力学模型。

数据行格式(共四行)

第一行:炸药材料参数(8 个字段)

字段      
含义      
K      
炸药材料常数      
k      
炸药材料常数      
A      
炸药材料常数      
B      
炸药材料常数      
γ      
绝热指数      
γᵍ      
气体比热比      
ρ_c      
炸药密度      
M_c      
炸药质量      
depth      
炸药深度      

第二行:流体参数(5 个字段)

字段      
含义      
ρ_f      
流体密度      
c_f      
流体中的声速      
nx      
自由液面法向 x 分量      
ny      
自由液面法向 y 分量      
nz      
自由液面法向 z 分量      

第三行:环境与控制参数(5 个字段)

字段      
含义      
默认值      
g      
重力加速度      
-      
Pₐₜₘ      
大气压力      
-      
α      
波效应参数(1.0=开启, 0.0=关闭)      
1.0      
C_D      
流动阻力系数      
0.0      
n      
流动阻力指数      
2.0      

第四行:模拟控制参数(5 个字段)

字段      
含义      
默认值      
T_dur      
模拟时长      
-      
Nₘₐₓ      
最大时间步数      
1500      
εᵣₑₗ      
相对步长控制参数      
1×10⁻¹¹      
εₐᵦₛ      
绝对步长控制参数      
1×10⁻¹¹      
β      
步长控制指数      
0.2      

示例

*AMPLITUDE, NAME=BubbleLoad, DEFINITION=BUBBLE
1.5E5, 0.8, 3.0E5, 3.5E9, 2.0, 1.4, 1600.0, 50.0, 10.0
1000.0, 1500.0, 0.0, 1.0, 0.0
9.81, 101325.0, 1.0, 0.0, 2.0
0.5, 2000, 1.0E-12, 1.0E-12, 0.2

适用场景

  • 水下爆炸气泡脉动分析
  • 舰船 UNDEX 冲击响应
  • 水库爆破安全评估

注意:此类型不适用于 Abaqus/CFD 分析,也不支持 Abaqus/CAE 界面。

3.9 USER —— 用户子程序型

含义

通过 Fortran 用户子程序 UAMP(Abaqus/Standard)或 VUAMP(Abaqus/Explicit)自定义任意复杂的幅值计算逻辑。这是灵活度最高的一种方式。

专用参数

参数      
说明      
默认值      
PROPERTIES
传入子程序的属性数量      
0      
VARIABLES
解相关状态变量数      
1      

数据行格式(当 PROPERTIES > 0 时)

第一行:属性值 1, 属性值 2, ..., 属性值 8
...

每行最多 8 个属性值,共 PROPERTIES 个属性。这些属性可在子程序中被读取和使用。

示例

*AMPLITUDE, NAME=CustomLoad, DEFINITION=USER, PROPERTIES=3, VARIABLES=2
1000.0, 0.5, 2.0

向子程序传递 3 个属性:1000.0, 0.5, 2.0;使用 2 个状态变量。

适用场景

  • 复杂的非线性加载逻辑(如 PID 控制加载)
  • 从外部文件实时读取载荷数据
  • 与其他物理场实时耦合的载荷计算
  • 自定义频率相关载荷

注意:此类型不适用于 Abaqus/CFD 分析。

3.10 ACTUATOR —— 执行器型

含义

通过联合仿真(Co-simulation)与外部逻辑建模软件(如控制系统仿真工具)交换数据,幅值由外部程序实时计算并传递给 Abaqus。

数据行

无数据行。所有参数通过联合仿真接口传递。

示例

*AMPLITUDE, NAME=ActuatorAmp, DEFINITION=ACTUATOR

适用场景

  • Abaqus 与 MATLAB/Simulink 联合仿真中的控制信号
  • 机电液一体化系统仿真
  • 实时控制系统的力学响应分析

注意:此类型不适用于 Abaqus/CFD 分析。

4. 实战示例合集

4.1 三角形脉冲加载(TABULAR)

模拟一个持续 0.1 秒、峰值 500 N 的三角形冲击力。

*AMPLITUDE, NAME=TriPulse, DEFINITION=TABULAR
0.00, 0.0
0.05, 1.0
0.10, 0.0
**
*STEP, NAME=Impact
*DYNAMIC, EXPLICIT
, 0.1
*CLOAD, AMPLITUDE=TriPulse
Node-Impact, 2, 500.0
*END STEP

图:TABULAR 三角形脉冲加载 — 0.05s 到达峰值,0.10s 归零

力的历程:t=0 → 0 N;t=0.05 → 500 N;t=0.10 → 0 N。峰值时刻的力 = 500 × 1.0 = 500 N。

4.2 简谐振动激励(PERIODIC)

对一个悬臂梁的自由端施加频率 50 Hz、幅值 2 mm 的正弦位移激励。

*AMPLITUDE, NAME=Harmonic, DEFINITION=PERIODIC
1, 314.159, 0.0, 0.0
0.0, 2.0
**
*STEP, NAME=Vibration
*STEADY STATE DYNAMICS, DIRECT
10.0, 200.0, 20
*BOUNDARY, AMPLITUDE=Harmonic
Tip-Set, 2, 2, 2.0
*END STEP

图:PERIODIC 简谐激励 — 频率 50 Hz,幅值 2 mm

位移 y(t) = 2.0 × sin(314.159·t),频率 50 Hz,幅值 2 mm。

4.3 冲击衰减载荷(DECAY)

模拟爆炸冲击波的指数衰减。

*AMPLITUDE, NAME=BlastDecay, DEFINITION=DECAY
0.0, 10000.0, 0.0, 0.02
**
*STEP, NAME=Blast
*DYNAMIC, EXPLICIT
, 0.1
*DLOAD, AMPLITUDE=BlastDecay
Surface-Front, P, 10000.0
*END STEP

图:DECAY 爆炸冲击波指数衰减 — 标记衰减时间常数 τ=0.02s

压力 = 10000 · exp(-t/0.02),1/e 衰减时间为 0.02 秒。

4.4 地震波包络调制(MODULATED + DECAY)

用指数衰减包络调制一个 5 Hz 的正弦载波,模拟地震波。

*AMPLITUDE, NAME=CarrierWave, DEFINITION=PERIODIC
1, 31.416, 0.0, 0.0
0.0, 1.0
**
*AMPLITUDE, NAME=Envelope, DEFINITION=DECAY
0.0, 1.0, 0.0, 2.0
**
*AMPLITUDE, NAME=Seismic, DEFINITION=MODULATED
Envelope
**
*STEP, NAME=Earthquake
*DYNAMIC, DIRECT
0.01, 20.0
*BOUNDARY, TYPE=ACCELERATION, AMPLITUDE=Seismic
Base, 1, 1, 9.81
*END STEP

图:MODULATED + DECAY 地震波调制 — 载波、包络与调制结果

加速度 = 9.81 × exp(-t/2.0) × sin(31.416·t),峰值处接近 1g。

4.5 准静态平滑位移加载(SMOOTH STEP)

将一个钢板逐步拉伸 10 mm,确保加载过程没有动力学震荡。

*AMPLITUDE, NAME=SmoothDisp, DEFINITION=SMOOTH STEP
0.0, 0.0
1.0, 1.0
**
*STEP, NAME=Tension
*STATIC
0.01, 1.0
*BOUNDARY, AMPLITUDE=SmoothDisp
End-Set, 1, 1, 10.0
*END STEP

图:SMOOTH STEP 平滑位移加载 — 速度和加速度在起始和终止时刻均为零

位移在 1 秒内平滑地从 0 增加到 10 mm,速度和加速度在起始和终止时刻均为零。

5. 常见错误与避坑指南

5.1 VALUE=ABSOLUTE 与梁壳温度梯度的冲突

错误现象:使用 VALUE=ABSOLUTE 施加温度后,梁单元或壳单元计算的温度梯度不正确。

原因:VALUE=ABSOLUTE 同时覆盖了温度和温度梯度的参考值。而梁壳截面默认 TEMPERATURE=GRADIENTS,期望通过截面厚度方向插值计算梯度。

解决方案:对于带温度梯度的梁壳,改用 VALUE=RELATIVE,或在截面定义中关闭 TEMPERATURE=GRADIENTS。

5.2 SMOOTH 参数在 CFD 中的无效使用

错误现象:在 CFD 分析中使用了 SMOOTH 参数,程序报错或忽略。

原因:CFD 求解器不支持 SMOOTH 参数。

解决方案:在 CFD 分析中移除 SMOOTH 参数,改用 SMOOTH STEP 定义类型来实现平滑过渡。

5.3 TABULAR 数据行对数不完整

错误现象:Abaqus 报错 "Too few data entries on amplitude definition line"。

原因:当使用"四对/行"格式时,中间行(非末行)必须恰好有 4 对(8 个数值),末行可以少于 4 对。

错误示例:

*AMPLITUDE, NAME=Bad
0.0, 0.0, 0.1, 1.0, 0.2, 0.5     ← 只有 3 对!中间行必须是 4 对
0.3, 0.0

正确示例:

*AMPLITUDE, NAME=Good
0.0, 0.0, 0.1, 1.0, 0.2, 0.5, 0.25, 0.75
0.3, 0.0

或者切换为"一对/行"格式:

*AMPLITUDE, NAME=Good
0.0, 0.0
0.1, 1.0
0.2, 0.5
0.3, 0.0

5.4 等间距定义中 BEGIN + FIXED INTERVAL 计算错误

错误现象:加载的起始时刻与预期不符。

原因:EQUALLY SPACED 的时间序列为 tᵢ = BEGIN + (i-1) × FIXED INTERVAL。忘记 BEGIN 的默认值是 0.0,或者将 BEGIN 误解为"第一个时间点的标签"而非"第一个数据点对应的时间"。

示例:以下两个定义等价

*AMPLITUDE, NAME=A, DEFINITION=EQUALLY SPACED, FIXED INTERVAL=0.1
0.0, 0.5, 1.0
*AMPLITUDE, NAME=B, DEFINITION=TABULAR
0.0, 0.0
0.1, 0.5
0.2, 1.0

5.5 PERIODIC 中 ω 单位的混淆

错误现象:振动频率与预期不符。

原因:ω 的单位是弧度/时间,而非 Hz。如果时间单位是秒,频率 f = ω / (2π)。

  • 想要 50 Hz → ω = 2π × 50 = 314.159
  • 错误地写 ω = 50 → 实际频率 ≈ 7.96 Hz

5.6 DEFINITION=USER 中 VARIABLES 数量不足

错误现象:用户子程序异常或 Abaqus 报错。

原因:VARIABLES 必须大于 0(默认值为 1)。如果不使用状态变量,仍需保留默认值;如果使用多个状态变量,必须正确指定数量。

5.7 MODULATED 引用顺序混淆

错误现象:调制结果不是预期的包络效果。

原因:MODULATED 的数据行中引用的幅值曲线是被调制函数,而在其他关键字中引用 MODULATED 曲线时的效果是调制函数 × 被调制函数。理解的关键是:你在 MODULATED 关键字的数据行中指定的字符串,实际上是指向另一个已定义的 *AMPLITUDE 的 NAME。

5.8 DEFINITION 不适用于当前求解器

错误现象:Abaqus 报错 "This definition type is not supported in Abaqus/CFD"。

不支持 CFD 的类型:BUBBLE、SOLUTION DEPENDENT、USER、ACTUATOR。

解决方案:在 CFD 分析中使用 TABULAR、EQUALLY SPACED、PERIODIC、MODULATED 或 SMOOTH STEP。

6. 总结

6.1 选型速查表

分析需求      
推荐 DEFINITION      
理由      
通用加载、实验数据导入      
TABULAR
最直观,逐对给定数据      
大批量均匀采样数据      
EQUALLY SPACED
减少数据输入量      
准静态平滑加载      
SMOOTH STEP
自动保证速度和加速度连续      
周期激励(简谐、多频)      
PERIODIC
以一个公式替代大量数据      
带包络的调制信号      
MODULATED
两曲线相乘实现复杂波形      
冲击衰减、阻尼包络      
DECAY
单行数据定义指数衰减      
自适应加载控制      
SOLUTION DEPENDENT
根据求解状态自动调整      
水下爆炸气泡脉动      
BUBBLE
集成完整气泡动力学      
任意自定义逻辑      
USER
子程序实现任意功能      
联合仿真控制信号      
ACTUATOR
与外部软件实时交互      

6.2 关键参数速记卡

*AMPLITUDE, NAME=xxx, DEFINITION=xxx
         TIME=STEP TIME / TOTAL TIME      ← 时间参照系
         VALUE=RELATIVE / ABSOLUTE        ← 相对/绝对幅值
         SCALEX=  SCALEY=                 ← 缩放
         SHIFTX=  SHIFTY=                 ← 平移
         SMOOTH=0.0~0.5                   ← 平滑过渡
         INPUT=文件名                      ← 外部数据文件

6.3 推荐实践

  1. 统一命名规范:使用描述性名称,如 Amp_Seismic_X、Amp_Impact_Triangular
  2. 所有幅值曲线集中定义在 inp 文件开头,step 之前
  3. 优先使用 RELATIVE:便于参数化调整加载量级
  4. 动力学分析用 SMOOTH STEP:避免虚假的高频响应
  5. 批量数据用 INPUT:保持 inp 文件简洁
  6. 添加注释:用 ** 行说明每条幅值曲线的用途

参考资料:Abaqus Keywords Reference Guide (2016), Section *AMPLITUDE; Abaqus Analysis User's Guide, Section 34.1.2 "Amplitude curves"

本文基于 Abaqus 2016 文档撰写,适用于 Abaqus 6.14 及以上版本。部分高级功能(ACTUATOR、BUBBLE 等)可能需要特定 License 支持。


来源:有限元先生
ACTAbaqus静力学振动显式动力学非线性旋转机械通用MATLABSimulink裂纹材料DAP
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-07-01
最近编辑:3月前
外太空土豆儿
博士 我们穷极一生,究竟在追寻什么?
获赞 46粉丝 48文章 123课程 0
点赞
收藏
作者推荐

ABAQUS inp 文件其实有两种写法

为什么有些Abaqusinp文件有Part,有些却没有?在学习Abaqus的过程中,很多人打开.inp文件时都会发现一个现象:有些.inp文件里面有:*Part...*EndPart*Assembly...*EndAssembly但有些.inp文件却一上来就是:*Node*Element*Nset*Elset*Material这就很容易让人疑惑:为什么同样是Abaqus输入文件,有的有*Part,有的没有?没有*Part的inp文件还能不能正常计算?这两种inp文件到底有什么区别?其实,这不是模型对错的问题,而是Abaqusinp文件有两种不同的模型组织方式。一、inp文件是什么?.inp文件是Abaqus的输入文件,也可以理解为Abaqus求解器真正读取的“计算说明书”。一个完整的.inp文件通常需要告诉Abaqus以下信息:节点在哪里?单元怎么连接?材料参数是多少?哪些单元属于哪个区域?边界条件是什么?载荷怎么施加?采用什么分析步?需要输出哪些结果?也就是说,Abaqus求解器真正关心的是:Node+Element+Material+Section+Boundary+Load+Step至于这些内容是不是写在*Part里面,并不是必须的。所以,Abaqus的.inp文件可以有*Part,也可以没有*Part。二、第一种形式:有Part的inp文件第一种是带有*Part和*Assembly的inp文件。这种形式通常来自Abaqus/CAE建模。典型结构如下:*Heading*Part,name=Dam*Node1,0.,0.2,1.,0.3,1.,1.4,0.,1.*Element,type=CPE41,1,2,3,4*Nset,nset=Top3,4*Elset,elset=DamElements1*SolidSection,elset=DamElements,material=Concrete*EndPart*Assembly,name=Assembly*Instance,name=Dam-1,part=Dam*EndInstance*EndAssembly*Material,name=Concrete*Elastic3.0E10,0.2*Step,name=Step-1*Static*EndStep这种inp文件的核心逻辑是:先定义Part再在Assembly中生成Instance最后对装配体进行分析也就是说,Abaqus先定义一个“部件”,然后把这个部件放到“装配体”中。这和Abaqus/CAE的建模流程是一致的。三、有Part的inp文件对应CAE的建模逻辑在Abaqus/CAE里面,我们一般是按照下面的流程建模:Part模块:建立部件Property模块:定义材料和截面Assembly模块:装配部件Step模块:定义分析步Interaction模块:定义相互作用Load模块:定义边界和载荷Mesh模块:划分网格Job模块:提交计算所以,CAE导出的.inp文件通常会保留这种结构。例如:*Part,name=PART-1...*EndPart*Assembly,name=Assembly*Instance,name=PART-1-1,part=PART-1...*EndInstance*EndAssembly这里的Part就相当于零件,Instance就相当于这个零件在装配体中的一个实例。四、这种形式有什么优点?带有*Part的inp文件更适合复杂工程模型。比如:坝体+地基坝体+库水混凝土+钢筋多个零件装配接触分析复杂边界耦合问题它的优点是模型层次清晰,和Abaqus/CAE完全对应。对于复杂结构来说,这种方式便于管理不同部件、不同材料、不同接触面和不同约束关系。例如在混凝土坝模型中,可以把坝体和地基分别作为两个Part:Part-1:DamPart-2:FoundationAssembly:Dam-1Foundation-1这样,坝体和地基可以分别赋予不同的材料参数,也可以在它们之间定义接触、绑定或者相互作用。五、第二种形式:没有Part的inp文件第二种是没有*Part和*Assembly的inp文件。这种文件通常直接从*Node和*Element开始。典型结构如下:*Heading*Node1,0.,0.2,1.,0.3,1.,1.4,0.,1.*Element,type=CPE4,elset=DamElements1,1,2,3,4*Nset,nset=Bottom1,2*Elset,elset=DamElements1*Material,name=Concrete*Elastic3.0E10,0.2*SolidSection,elset=DamElements,material=Concrete*BoundaryBottom,1,2*Step,name=Step-1*Static*EndStep这种inp文件的核心逻辑是:直接定义全局节点直接定义全局单元直接定义全局集合直接定义材料、边界、载荷和分析步它没有“部件”和“装配”的概念。整个模型直接在全局坐标系中定义。六、没有Part的inp文件能不能算?答案是:完全可以。因为Abaqus求解器并不强制要求输入文件必须有*Part。只要文件中包含必要的有限元信息,Abaqus就可以正常计算。最基本的信息包括:*Node*Element*Material*SolidSection*Boundary*Step*EndStep也就是说,*Part不是Abaqus计算所必需的关键字。它更多是为了配合Abaqus/CAE的部件—装配建模逻辑。七、为什么有些inp文件没有Part?常见原因主要有三个。1.这个inp文件是手写或程序生成的如果我们用Python、MATLAB或Fortran等程序自动生成.inp文件,很多时候会直接写:*Node*Element*Nset*Elset*Material*Boundary*Step而不会再额外写:*Part*Assembly*Instance因为对于程序建模来说,直接生成全局节点和单元更加简单、直接。例如:悬臂梁参数化模型二维混凝土坝剖面模型规则网格模型批量不确定性分析模型优化分析模型这些模型通常不需要复杂的装配关系。2.这个inp文件来自其他前处理器有些.inp文件并不是Abaqus/CAE生成的,而是由其他有限元前处理软件导出的。这类软件可能直接导出全局节点和全局单元,因此文件中也可能没有*Part。3.这是面向求解器的输入文件从Abaqus求解器角度看,模型本质上就是:节点单元材料边界载荷分析步只要这些信息完整,求解器就可以计算。因此,没有*Part的inp文件更像是“求解器层面”的输入文件;有*Part的inp文件更像是“CAE建模层面”的输入文件。八、两种inp文件的本质区别可以用一句话概括:有*Part的inp文件,是“部件—装配式建模”;没有*Part的inp文件,是“整体网格直接建模”。下面是两种形式的对比。对比内容有Part的inp没有Part的inp建模思想部件—装配建模整体网格建模常见来源Abaqus/CAE导出手写或程序生成是否有Assembly通常有通常没有节点定义位置Part内部全局模型中单元定义位置Part内部全局模型中适合对象多部件复杂模型规则结构、参数化模型可视化兼容性更适合CAECAE兼容性相对弱批量修改相对麻烦更方便科研程序调用可以,但结构较复杂更适合批量计算九、一个形象的理解可以把这两种inp文件理解成两种搭积木的方式。有Part的inp:先做零件,再装配这种方式类似于:先制作一个零件再把零件放到装配体中最后对装配体进行分析比如:先建立坝体Part再建立地基Part然后在Assembly中把二者装配起来最后施加载荷和边界条件这种方式适合复杂工程模型。没有Part的inp:直接给出完整结构这种方式类似于:不再区分零件和装配体直接把整个结构的节点、单元、材料、边界全部写出来然后直接计算比如一个二维悬臂梁模型,可以直接写出全部节点和单元,不需要先定义Part。这种方式适合规则模型和程序化建模。十、科研建模中应该选哪一种?如果只是做单个模型,而且模型比较复杂,建议使用:Abaqus/CAE建模→导出带Part的inp文件这样便于可视化检查模型、网格、边界条件和材料赋值。如果要做批量计算、参数分析、不确定性分析或优化分析,建议使用:程序生成或修改无Part的inp文件因为这种方式更容易批量替换参数。例如在混凝土坝抗震不确定性分析中,如果研究参数包括:坝体弹性模量地基弹性模量地震动入射角度那么没有*Part的inp文件往往更方便程序控制。只需要用程序批量修改材料参数或载荷输入,就可以生成大量样本文件。十一、最推荐的实用路线对于很多科研和工程分析来说,最实用的方法并不是二选一,而是采用混合路线:第一步:用Abaqus/CAE建立标准模型第二步:导出inp文件第三步:理解inp文件中的关键字结构第四步:用Python或MATLAB修改关键参数第五步:批量生成新的inp文件第六步:自动提交Abaqus计算第七步:提取结果进行统计分析这种方法兼顾了CAE建模的直观性和inp文件批量计算的灵活性。十二、写inp文件时要注意什么?无论有没有*Part,都要重点检查以下内容:节点编号是否重复单元连接是否正确材料名称是否和截面引用一致Elset和Nset是否定义完整边界条件是否施加到正确集合载荷方向和自由度是否正确分析步是否完整输出变量是否设置正确对于没有*Part的inp文件,尤其要注意节点和单元都在全局坐标系中,边界和载荷也直接作用在全局集合上。对于有*Part的inp文件,则要注意集合名称可能带有Instance信息。例如:Dam-1.TopFoundation-1.Bottom这类名称在程序批量修改时需要特别小心。十三、总结Abaqus的.inp文件主要有两种组织方式:第一种:有Part的inp文件也就是Part/Assembly结构化建模方式。第二种:没有Part的inp文件也就是直接基于全局Node/Element的整体网格建模方式。二者都可以被Abaqus正常计算。区别不在于谁对谁错,而在于模型组织逻辑不同。可以简单记住一句话:有*Part的inp更像Abaqus/CAE的建模流程;没有*Part的inp更像有限元求解器直接读取的网格模型。对于初学者,可以先从Abaqus/CAE导出的带*Part的inp文件开始理解;对于科研批量计算,可以逐渐过渡到直接修改或生成无*Part的inp文件。真正重要的不是有没有*Part,而是模型的节点、单元、材料、边界、载荷和分析步是否完整、正确。喜欢就点个关注呗来源:有限元先生

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈