3. 参数化建模的基本变量与表达式

在 LS-DYNA 中,参数化建模的核心思想是:把模型中会反复变化、需要被扫描或优化的数值,从关键字卡片里“抽出来”,集中定义成命名变量,再让卡片通过变量名引用这些数值。这样,修改一个变量就能同步驱动尺寸、材料、载荷等多处关键字,而不必逐张卡片手工替换。实现这一机制的关键字主要是 *PARAMETER(定义标量变量与表达式)和 *DEFINE_CURVE(定义曲线型变量,如载荷—时间、应力—应变曲线)。

一、*PARAMETER:标量变量与表达式

*PARAMETER 用于定义标量参数,其基本语法为:

*PARAMETER
$   PRMR      VAL
     LENGTH   200.0
     WIDTH    50.0
     THICK    2.0
     AREA     &LENGTH*&WIDTH
     DENS     7.85e-9
     YOUNG    210000.0
     POISS    0.3

其中 PRMR 是参数名,VAL 是数值或表达式。参数名建议使用大写字母、数字和下划线,避免与关键字字段冲突。引用参数时在名字前加 &,例如 &LENGTH。表达式可以包含四则运算、括号、常用数学函数(如 SIN、COS、SQRT、ABS、LOG 等),并且可以引用已定义的参数,形成依赖链。

需要注意两点:一是参数定义顺序影响引用,被引用的参数应先定义;二是单位制必须统一,LS-DYNA 本身不强制单位,但参数化后更容易因单位混用而出错。例如上例采用 mm-ton-s 单位制,密度 7.85e-9 对应钢的 7.85 t/m³,杨氏模量 210000 对应 210 GPa。

二、*DEFINE_CURVE:曲线型设计变量

载荷、材料硬化曲线、速度曲线等往往不是单个数值,而是一条随自变量变化的曲线。*DEFINE_CURVE 用离散点定义曲线,并可通过 LCID 被其他关键字引用。典型写法:

*DEFINE_CURVE
$   LCID      SIDR      SFA       SFO       OFFA      OFFO
     1001       0       1.0       1.0       0.0       0.0
$     TIME      FORCE
      0.0       0.0
      0.001     500.0
      0.002     1200.0
      0.003     1200.0
      0.004     0.0

这里 LCID=1001 是曲线编号,后续在 *BOUNDARY_PRESCRIBED_MOTION、*LOAD_RIGID_BODY 或材料卡片中通过 LCID 引用。曲线点也可以用参数表达式生成,例如把峰值力定义为 &FMAX,则曲线点写成 &T1 &FMAX 的形式,实现“载荷幅值参数化”。

三、把尺寸、材料、载荷统一参数化

下面给出一个简支梁参数化建模的片段,展示三类变量如何协同:

*PARAMETER
$ 几何尺寸
     L        500.0
     B        40.0
     H        20.0
$ 材料
     RHO      7.85e-9
     E        210000.0
     NU       0.3
$ 载荷
     FMAX     2000.0
     TEND     0.004
$ 派生量
     AREA     &B*&H
     IXX      &B*&H**3/12.0
     VMAX     &FMAX*&L**3/(48.0*&E*&IXX)

随后在 *SECTION_BEAM 中引用 &B、&H,在 *MAT_ELASTIC 中引用 &RHO、&E、&NU,在 *DEFINE_CURVE 中用 &FMAX 和 &TEND 生成载荷曲线。这样,改变 L 或 FMAX 后,截面、材料、载荷曲线会同步更新,派生量 VMAX 也会自动重算,便于快速评估不同设计点。

参数化变量驱动关键字的数据流 *PARAMETER 变量池 几何 L=500 B=40 H=20 材料 RHO=7.85e-9 E=210000 NU=0.3 载荷 FMAX=2000 TEND=0.004 派生:AREA、IXX、VMAX *DEFINE_CURVE LCID=1001 载荷曲线 (0, 0) (0.001, 500) (0.002, &FMAX) (0.003, &FMAX) (&TEND, 0) 曲线点引用参数 → 幅值可调 目标关键字卡片 *SECTION_BEAM B=&B H=&H *MAT_ELASTIC RHO=&RHO E=&E NU=&NU *LOAD_RIGID_BODY LCID=1001 引用 直接引用 LCID 修改一个变量 → 全模型同步更新 例如 L: 500 → 600,截面、材料、载荷曲线、派生量 VMAX 自动重算 关键约定: ① 引用参数加 & 前缀;② 被引用参数先定义;③ 单位制统一;④ 曲线用 LCID 被卡片引用;⑤ 表达式支持四则运算与常用函数。

四、表达式与依赖链的实用写法

表达式让参数之间形成依赖关系,这是参数化设计的价值所在。例如:

*PARAMETER
     L        500.0
     B        40.0
     H        20.0
     AREA     &B*&H
     IXX      &B*&H**3/12.0
     E        210000.0
     FMAX     2000.0
     VMAX     &FMAX*&L**3/(48.0*&E*&IXX)
     SIGMAX   &FMAX*&L/(4.0*&IXX/&H*2.0)

这里 VMAX 是简支梁跨中挠度估算,SIGMAX 是最大弯曲应力估算。它们不是仿真结果,而是基于材料力学的解析估算,用于在提交计算前快速判断设计点是否合理。若 VMAX 超过允许挠度或 SIGMAX 超过屈服强度,就可以先调整 B、H 或 FMAX,再进入求解。

参数名不要使用 LS-DYNA 保留字或关键字字段名,如 TIME、LCID、NID 等,否则可能被解析器误读。建议统一加前缀,如 P_L、P_FMAX。

五、参数化建模的检查要点

  • 单位一致性:所有参数必须属于同一单位制,长度、质量、时间、力、应力之间不能混用。
  • 引用顺序:被引用的参数必须在前,表达式不能循环引用。
  • 曲线编号唯一:多个 *DEFINE_CURVE 的 LCID 不能重复,否则后定义会覆盖或引起引用歧义。
  • 参数名可读性:用有意义的名称,如 BEAM_L、MAT_E、LOAD_FMAX,便于后续优化时快速定位。
  • 派生量验证:对关键派生量可先用简单手算核对,确认表达式无误后再批量扫描。

掌握 *PARAMETER 与 *DEFINE_CURVE 的配合后,模型就从“一次性写死”变成了“可调、可扫、可优化”的参数化模型。后续无论是做尺寸扫描、材料替换还是载荷工况对比,都只需要改动参数池中的少数几个数值,而不用逐张卡片手工修改。