4. 参数化几何建模与变量定义

参数化几何建模的核心思想,是把电磁器件的形状、尺寸、位置从“一次性画出来的图形”变成“由一组可调参数驱动的几何”。当设计变量改变时,几何自动重建,网格、材料分配、边界条件和后处理也随之更新。这样,优化算法才能在参数空间中反复搜索,而不需要人工重画模型。本节围绕三个关键问题展开:设计变量、约束变量与导出变量如何划分;几何约束与装配关系如何表达;以及如何用脚本或参数化 CAD 建立可稳定重建的模型。

一、三类变量的职责划分

在参数化模型中,变量不是随意命名的数字,而是按“谁驱动谁、谁限制谁、谁由谁计算”分成三类。

  • 设计变量(Design Variables):优化器可以直接调整的独立参数,例如磁芯内半径 R_in、外半径 R_out、气隙长度 g、绕组匝数 N、导体截面宽度 w_c。它们构成优化问题的搜索维度。
  • 约束变量(Constraint Variables):不直接作为优化目标,但必须满足边界条件或几何关系,例如总高度 H_total ≤ 60 mm、窗口填充率 k_fill ≤ 0.45、最小绝缘距离 d_ins ≥ 1.2 mm。它们通常以不等式或等式形式出现,限制设计变量的可行域。
  • 导出变量(Derived Variables):由设计变量和约束通过公式或几何关系计算得到,例如平均磁路长度 l_e、磁芯截面积 A_e、绕组平均匝长 l_w、铜损 P_cu。它们不独立,但直接进入电磁计算和后处理。

划分清楚后,优化脚本只需修改设计变量,约束变量负责“拦截”不可行方案,导出变量负责把几何信息传递给电磁求解器。三者关系可以用下面的变量依赖图表示。

参数化模型变量依赖关系 设计变量(可调) R_in = 12.0 mm R_out = 25.0 mm g = 0.8 mm N = 42 匝 约束变量(限制) H_total ≤ 60 mm k_fill ≤ 0.45 d_ins ≥ 1.2 mm R_out − R_in ≥ 8 mm 导出变量(计算) A_e = π(R_out²−R_in²) l_e = 2π(R_out+R_in)/2 l_w = 2π(R_in+g/2) P_cu = I²·ρ·N·l_w/A_c 约束检查 几何重建 可行域 优化器根据导出变量(如 P_cu、电感 L)调整设计变量,迭代搜索 关键原则:设计变量独立可调;约束变量只做边界判断;导出变量由公式计算,不参与优化搜索。 示例参数为教学假设值,实际设计需根据材料、温升和绝缘等级重新标定。

二、几何约束与装配关系的表达

参数化建模最容易出错的地方,是几何约束没有显式表达,导致参数变化后模型出现自交、间隙消失或装配错位。以环形磁芯与绕组为例,至少需要表达以下约束关系:

  1. 尺寸链约束:绕组内径必须大于磁芯外径加绝缘厚度,即 R_wind_in ≥ R_out + d_ins。若优化器把 R_out 调大而 R_wind_in 未同步,绕组会嵌入磁芯。
  2. 装配同轴约束:磁芯、骨架、绕组默认共享同一轴线 Z,所有回转体以 Z 为基准。若引入偏心变量 e_x,必须显式声明偏心方向与坐标系一致。
  3. 端面配合约束:骨架端面与磁芯端面之间保留气隙 g,气隙方向沿 Z 轴。气隙变化时,绕组窗口高度应同步调整,否则填充率计算失真。
  4. 参数联动约束:当 R_in 变化时,R_out 应保持 R_out = R_in + t_core(t_core 为磁芯径向厚度),避免内外径独立变化导致壁厚失控。

在脚本建模中,这些约束通常写成参数之间的表达式,而不是硬编码数字。例如在 Python 脚本中:

# 参数定义(单位:mm)
R_in   = 12.0          # 设计变量:磁芯内半径
t_core = 13.0          # 设计变量:磁芯径向厚度
g      = 0.8           # 设计变量:气隙长度
N      = 42            # 设计变量:绕组匝数
d_ins  = 1.2           # 约束变量:最小绝缘距离

# 导出变量
R_out      = R_in + t_core          # 磁芯外半径
R_wind_in  = R_out + d_ins          # 绕组内半径
H_window   = 2 * (R_out - R_in) + g # 绕组窗口高度
A_e        = 3.14159 * (R_out**2 - R_in**2)  # 磁芯截面积

# 约束检查
assert R_wind_in > R_out, "绕组与磁芯干涉"
assert H_window <= 60.0, "总高度超限"

这段代码的关键不是语法,而是把“几何关系”翻译成“参数表达式”。当优化器修改 R_in 或 t_core 时,R_out、R_wind_in、A_e 自动更新,约束检查在每次重建后立即执行。若约束不满足,该组设计变量被标记为不可行,不进入电磁求解。

三、参数化 CAD 与脚本建模的配合

实际工程中,参数化 CAD 适合处理复杂曲面和装配体,脚本建模适合批量扫描和优化循环。两者可以配合使用:在 CAD 中建立带命名参数的模板,导出为脚本可调用的格式;或者直接在脚本中调用 CAD 的 API 重建几何。无论哪种方式,都需要保证以下三点:

  • 参数命名唯一且语义明确:避免 d1、d2 这类无意义名称,使用 R_in、g_air、N_turn 等可读名称,便于在优化配置文件中引用。
  • 重建过程可重复:同一组参数每次重建应得到相同几何,不依赖人工交互或随机种子。建议在脚本中固定单位制(统一用 mm)和坐标系原点。
  • 失败可捕获:几何重建失败(如自交、零厚度)时,脚本应返回明确的错误码,而不是让优化器继续用无效几何计算。常见做法是设置 try/except 或检查重建后的体积、面积是否在合理范围。
教学示例:某环形电感的设计变量为 R_in ∈ [8, 16] mm、t_core ∈ [8, 16] mm、g ∈ [0.2, 1.5] mm、N ∈ [20, 60]。约束为 H_total ≤ 60 mm、k_fill ≤ 0.45。导出变量包括 A_e、l_e、L(电感)和 P_cu(铜损)。优化目标为在满足约束的前提下最大化 L/P_cu。这些数值为教学假设,实际需根据磁芯材料手册和温升要求调整。

四、变量定义检查清单

在进入优化循环之前,建议用以下清单快速核对参数化模型是否就绪:

检查项 合格标准 常见问题
设计变量独立性 每个设计变量可单独调整,不与其他变量硬绑定 把导出变量误设为设计变量,导致搜索维度冗余
约束完整性 尺寸链、装配、绝缘、填充率均有显式表达式 只检查总高,忽略径向干涉
导出变量一致性 导出变量由公式计算,不手工赋值 在优化循环中手动修改 A_e,破坏几何一致性
单位与坐标系 全文统一 mm 和 Z 轴回转基准 CAD 用 m、脚本用 mm,导致量级错误
重建鲁棒性 极端参数下不崩溃,返回明确失败信息 参数越界后几何自交,求解器报错中断

完成变量定义和几何约束表达后,参数化模型就具备了“可被优化器安全调用”的基本条件。下一步是将这些变量接入电磁求解流程,观察几何变化如何影响磁场分布、电感、损耗和温升,并据此判断优化方向是否合理。