2. 参数化仿真对象建模
参数化仿真对象建模的核心任务,不是把模型“画出来”,而是把模型中会变化、值得变化、必须变化的部分识别出来,并转成可被程序读写的参数。一个仿真对象通常由四类信息构成:几何特征、材料属性、边界条件、载荷工况。它们共同决定求解结果,但并非所有字段都适合参数化。参数化的目标是建立“参数集 → 设计变量 → 仿真输入”的映射关系,使同一套模型能够通过改变少量变量快速生成多个设计方案。
一、四类信息的可参数化边界
几何特征是最直观的参数来源。例如一块带孔平板,可参数化变量包括长 L、宽 W、厚 T、孔径 D、孔心坐标 (X, Y)、圆角半径 R 等。但几何参数化要注意“驱动关系”:如果孔心坐标依赖板宽,应写成 X = W/2,而不是独立变量,否则改板宽时孔会偏位。材料属性方面,常用参数包括弹性模量 E、泊松比 ν、密度 ρ、屈服强度 σs,以及温度相关曲线。边界条件包括约束类型、约束位置、约束方向,例如固定端面、对称面、弹簧刚度 k。载荷工况包括力 F、压力 p、力矩 M、转速 n、加速度 a、温度 T 及其作用位置与方向。
判断一个字段是否值得参数化,可用三条标准:是否随设计意图变化、是否影响关注结果、是否可被稳定驱动。例如螺栓孔倒角通常不影响刚度结论,可不参数化;而孔径直接影响应力集中,必须参数化。若某字段在 CAD 中无法通过表达式或脚本稳定修改,则应先解决驱动问题,再纳入参数集。
二、参数集与设计变量的映射
参数集是“模型可接受的输入字段集合”,设计变量是“本次研究真正要扫描或优化的字段”。两者不是一回事。例如参数集可包含 L、W、T、D、E、F 共 6 个字段,但本次只研究 T 与 D 对最大应力的影响,则设计变量为 T、D,其余为固定值。映射关系可表示为:设计变量 → 参数集 → 几何/材料/边界/载荷 → 求解器输入文件。这个链条中任何一环断裂,自动化都会失败。
实际建模时建议为每个参数定义五元组:名称、类型、单位、默认值、取值范围。例如 plate_thickness,连续型,mm,默认 5,范围 2~10。名称应使用英文标识符,避免中文和空格,便于脚本引用。单位必须统一,建议全部采用 SI 或 mm-N-MPa 体系,防止量纲错误。
三、从 CAD 到求解器的实际驱动方式
以带孔平板为例,假设使用参数化 CAD 与有限元脚本联合驱动。第一步,在 CAD 中建立草图并标注尺寸,将 L、W、T、D、X、Y 设为可命名参数。第二步,在参数集中登记这些字段,并设置默认值与范围。第三步,编写脚本读取参数表,逐行替换 CAD 表达式,导出 STEP 或直接生成网格。第四步,将材料、边界、载荷写入求解器输入文件。第五步,批量提交并提取结果。
# 参数表 params.csv 示例
name,type,unit,default,min,max
plate_length,continuous,mm,200,150,300
plate_width,continuous,mm,100,80,150
plate_thickness,continuous,mm,5,2,10
hole_diameter,continuous,mm,8,4,12
hole_x,continuous,mm,100,60,140
hole_y,continuous,mm,50,30,70
youngs_modulus,continuous,MPa,210000,190000,230000
force,continuous,N,5000,3000,8000
脚本读取该表后,对每一行生成一组输入。例如第 3 行 T=5、D=8,则 CAD 中板厚改为 5,孔径改为 8,其余保持默认。求解完成后,从结果文件读取最大等效应力 σmax 与最大位移 umax,写回结果表。这样,一个参数化仿真对象就具备了“改参数—重生成—重求解—取结果”的闭环能力。
四、参数化建模中的常见陷阱
第一,过参数化。把不影响结论的倒角、圆角、小孔全部参数化,导致参数集臃肿、脚本维护困难。第二,欠参数化。漏掉关键变量,例如只参数化孔径却固定孔心位置,导致应力集中位置无法移动。第三,单位混用。CAD 用 mm,求解器用 m,材料用 MPa,若不在参数集中统一,结果会差 1000 倍。第四,驱动失败。某些几何特征在参数变化后重建失败,例如孔超出板边界。应在参数集中设置约束条件,如 D < W/2、X - D/2 > 0。
五、参数集与设计变量的检查清单
| 检查项 | 判断标准 | 示例 |
|---|---|---|
| 名称唯一性 | 英文标识符,无空格,无中文 | plate_thickness |
| 单位一致性 | 全模型统一 mm-N-MPa | F=5000 N,L=200 mm |
| 范围合理性 | min/max 不导致几何失败 | D < W/2 |
| 驱动关系 | 依赖参数用表达式而非独立变量 | X = W/2 |
| 设计变量数量 | 首轮建议 2~4 个 | T, D |
| 结果可提取 | 结果文件中有明确变量名 | σmax, umax |
完成上述步骤后,参数化仿真对象建模就从“手工改模型”转变为“参数驱动模型”。下一阶段即可在此基础上开展 DOE、灵敏度分析与优化,而无需反复重建模型。关键在于:参数集要稳定、映射关系要清晰、驱动链要可验证。只要这三件事做好,后续自动化才有可靠基础。