3. 自由尺寸优化数学基础
自由尺寸优化(Free-Size Optimization)在 OptiStruct 中并不是“凭感觉删单元”,它本质上是一个带惩罚的连续变量优化问题:把每个壳单元的厚度当作可连续变化的设计变量,通过插值模型把“厚度”映射为“单元密度”,再用惩罚机制把中间密度推向 0 或 1,最终得到一张“哪里该留料、哪里该去料”的厚度分布图。理解这套数学表达,是判断优化结果是否可信、参数是否设置合理的前提。
一、设计变量:以单元厚度为载体的连续变量
在自由尺寸优化中,设计变量不是单元的“有/无”,而是每个设计域内壳单元的单元厚度。设设计域被离散为 N 个壳单元,则设计变量向量可写为:
x = [x₁, x₂, …, x_N]ᵀ, x_i ∈ [x_min, x_max]
其中 x_i 是第 i 个单元的厚度变量,x_min 通常取一个很小的正数(如 0.01 mm 或初始厚度的 1%),x_max 取工艺允许的最大厚度(如 3 mm 或初始厚度的 2~3 倍)。x_min 不能取 0,否则单元刚度矩阵奇异,求解会失败;这也是自由尺寸优化与拓扑优化在变量定义上的关键差别——拓扑优化用“材料密度”作变量,自由尺寸优化用“厚度”作变量,但两者在数学处理上高度同源。
OptiStruct 中通过 DESVAR 与 DVPREL1 卡片把厚度变量与 PSHELL 的 T 字段关联。例如一个 2 mm 初始厚度的壳,可设置:
DESVAR, 1, THICK_1, 2.0, 0.02, 4.0
DVPREL1, 1, PSHELL, 1, T, 1.0, 1, 0.0
这表示变量 THICK_1 初始值 2.0 mm,下限 0.02 mm,上限 4.0 mm,并以线性比例影响 PSHELL 1 的厚度。实际工程中常按“设计域”批量建立变量,而不是逐单元手工定义。
二、单元密度与厚度插值模型
为了把厚度变量转化为类似拓扑优化的“材料分布”概念,OptiStruct 引入归一化密度:
ρ_i = (x_i − x_min) / (x_max − x_min), ρ_i ∈ [0, 1]
ρ_i 接近 1 表示该单元“满料”,接近 0 表示“去料”。单元刚度矩阵按 SIMP(Solid Isotropic Material with Penalization)型插值缩放:
K_i = ρ_i^p · K_i⁰
其中 K_i⁰ 是单元在参考厚度下的刚度矩阵,p 为惩罚因子。厚度与密度的关系并非简单线性,OptiStruct 内部采用与厚度相关的插值,使中间厚度在刚度上“得不偿失”,从而在优化后期自然向两端聚集。需要强调的是:ρ_i 是数学中间量,最终输出的是厚度云图,而不是密度云图。
三、中间密度惩罚机制
如果 p = 1,问题退化为线性规划,优化器会大量保留中间厚度(如 1.2 mm、1.7 mm),结果无法指导“留料/去料”决策。惩罚因子 p 的作用是压低中间密度的刚度贡献:
p 通常取 3.0(二维壳单元常用 2.0~3.0)
当 ρ = 0.5、p = 3 时,ρ^p = 0.125,即“半厚”单元只贡献 12.5% 的刚度,优化器会主动把它推向 0 或 1。但 p 过大也会带来问题:刚度矩阵病态、迭代震荡、结果对网格敏感。工程上常采用“连续化策略”——前期用较小 p(如 1.5)保证收敛稳定,后期逐步提高到 3.0,使密度分布逐渐清晰。OptiStruct 的 MATPEN 或自由尺寸优化参数中的惩罚设置即对应这一机制。
四、目标函数与约束条件的数学表达
自由尺寸优化通常以柔度最小化(等价于刚度最大化)为目标:
min C(x) = Uᵀ K U = Σ ρ_i^p · u_iᵀ k_i⁰ u_i
s.t. K U = F
V(x) = Σ ρ_i · v_i ≤ V* (体积约束)
0 ≤ x_min ≤ x_i ≤ x_max
g_j(x) ≤ 0 (应力、位移、频率等附加约束)
其中 U 为全局位移向量,F 为载荷向量,v_i 为单元体积,V* 为允许的材料体积上限(如初始体积的 30%)。体积约束是自由尺寸优化最核心的约束,它直接决定“能去掉多少料”。若同时施加应力约束,则需引入应力凝聚函数,计算量显著增加,通常建议先做无应力约束的自由尺寸优化,再对结果做尺寸/形状优化。
灵敏度分析是求解的关键:目标函数对设计变量的偏导为
∂C/∂ρ_i = −p · ρ_i^(p−1) · u_iᵀ k_i⁰ u_i
该式说明:单元应变能越大,其密度增加对降低柔度越有利,优化器据此把材料从低应变能区搬到高应变能区。体积约束的灵敏度为 ∂V/∂ρ_i = v_i,两者共同构成优化器的搜索方向。
五、参数设置与结果判读的对应关系
把上述数学表达落到 OptiStruct 实际操作,需要关注三组参数与结果的对应关系。第一组是变量上下限:x_min 过大会导致“去不干净”,x_max 过小则限制增料空间,建议 x_min 取初始厚度的 1%~5%,x_max 取初始厚度的 2~3 倍。第二组是体积分数 V*:它直接决定材料保留比例,工程上常从 0.3 开始试算,观察厚度云图是否出现清晰的“骨架”。第三组是惩罚因子 p 与迭代策略:若结果中 0.3~0.7 的中间厚度单元占比超过 15%,应提高 p 或增加迭代步数。
结果判读时,不要只看最大厚度值,而要看厚度分布的连通性与可制造性。理想结果是:高厚度区形成连续传力路径,低厚度区成片消失,边界清晰;若出现大量孤立的高厚度小岛或棋盘格,说明网格过粗或惩罚过强,需要加密网格或降低 p。自由尺寸优化的输出本质是一张“厚度建议图”,后续还需经过尺寸优化或形状优化,才能转化为可制造的板厚规格。
总结来看,自由尺寸优化的数学基础可以浓缩为一条链:厚度变量 → 归一化密度 → SIMP 插值 → 惩罚因子 → 柔度目标与体积约束 → 灵敏度驱动迭代。理解每个环节的数学含义,才能在 OptiStruct 中正确设置 DESVAR 上下限、体积分数和惩罚参数,并对厚度云图做出专业判断。