第三章:拓扑优化入门——基于Altair OptiStruct的变密度法拓扑优化
拓扑优化,说白了就是给材料做减法。
你想想看,一个航空钛合金部件,设计出来可能有一百公斤。但真正受力传力的路径,可能只需要四十公斤的材料就够了。那剩下的六十公斤是什么?是累赘,是油耗,是成本。
我刚开始接触拓扑优化时,总觉得这东西有点玄乎。直到有一次,我负责一个起落架支架的减重任务,传统设计已经减到极限了,再削就要出问题。后来用OptiStruct跑了一轮拓扑优化,出来的构型让我眼前一亮——那形状我根本想不到。最后减重了32%,疲劳寿命还提升了15%。
嗯,从那以后,拓扑优化就成了我工具箱里的常客。
3.1 变密度法:拓扑优化的核心思想
变密度法,是目前工程中最主流的拓扑优化方法。它的思路很简单:
- 把设计空间划分成一个个有限元网格
- 每个网格赋予一个「伪密度」变量,范围从0到1
- 密度为1,表示这个地方有材料;密度为0,表示这个地方是空的
- 优化器不断调整这些密度值,直到找到最优的材料分布
说白了,就是让计算机自己决定:哪里该留材料,哪里该掏空。
关键点:变密度法不是真的改变材料密度,而是通过惩罚因子(Penalty Factor)让中间密度向0或1靠拢。常用的惩罚因子是SIMP模型,惩罚值一般取3。
我在项目中遇到过一个问题:如果不加任何约束,拓扑优化出来的结构往往像一团乱麻,根本没法加工。所以,实际工程中必须加上制造约束。
3.2 最小成员尺寸:防止出现细碎结构
拓扑优化有个毛病——容易生成一些细得像头发丝一样的杆件。这些杆件在理论计算中能传力,但实际加工根本做不出来,就算做出来了,也经不起振动和疲劳。
怎么解决?设置最小成员尺寸。
最小成员尺寸,就是告诉优化器:所有保留的材料结构,最小宽度不能小于这个值。
| 部件类型 | 推荐最小成员尺寸 | 说明 |
|---|---|---|
| 钛合金精密铸件 | 3-5 mm | 考虑铸造流动性 |
| 钛合金机加件 | 2-3 mm | 考虑刀具可达性 |
| 钛合金焊接件 | 4-6 mm | 考虑焊接热影响区 |
我的经验:最小成员尺寸一般取平均网格尺寸的3-5倍。比如网格尺寸是1mm,那最小成员尺寸设3mm比较稳妥。设太小了,优化结果没法加工;设太大了,又限制得太死,减重效果打折扣。
3.3 拔模约束:让结构能脱模
如果你做的是铸造件或锻造件,那必须考虑拔模。没有拔模角度的零件,模具拉不出来。
拔模约束,就是强制优化结果沿着某个方向有拔模斜度。
在OptiStruct中设置拔模约束,需要指定:
- 拔模方向:一般是模具开合方向,比如Z轴正向
- 拔模角度:钛合金铸件通常取1-3度,精密铸造可以更小
- 分型面位置:告诉优化器从哪里分开上下模
我曾经吃过一次亏。一个钛合金支架,拓扑优化结果非常漂亮,减重效果也很好。结果到了模具厂,人家一看就说:「这玩意儿拔不了模,得改。」最后只能重新优化,加了拔模约束,虽然减重效果从35%降到了28%,但至少能做出来了。
注意:拔模约束会显著增加优化计算时间。我建议先不加拔模约束跑一轮快速优化,看看材料分布的大致趋势。确认方向没问题后,再加拔模约束做精细优化。
3.4 对称约束:保证结构平衡
航空部件很多是对称的。比如发动机吊架、机翼接头、起落架支柱。如果不对优化施加对称约束,出来的结果可能左右不对称——虽然理论性能最优,但实际装配时会出问题,受力也不均衡。
对称约束有两种:
- 单平面对称:关于一个平面对称,比如XY平面
- 多平面对称:关于两个或三个平面对称,比如同时关于XY和XZ平面对称
我个人习惯是:只要部件本身是对称的,就一定要加对称约束。原因很简单——不对称的优化结果,后续做详细设计时非常痛苦,每个零件都要做两套模型。
3.5 OptiStruct实战设置流程
下面是我常用的设置步骤,每一步都有讲究:
- 导入模型:用HyperMesh读入CAD模型,划分网格。钛合金部件我一般用二阶四面体单元,精度够用。
- 定义设计空间:把需要优化的区域设为DESVAR(设计变量),不需要优化的区域(比如安装孔、接头)设为NONDESIGN。
- 设置优化目标:通常是「最小化柔顺度」(即最大化刚度),同时给定体积分数约束,比如保留30%的材料。
- 添加制造约束:
- 最小成员尺寸:MINDIM = 3.0
- 拔模约束:DRAW(指定方向和角度)
- 对称约束:SYMPLANE(指定对称平面)
- 提交计算:用OptiStruct求解器跑优化。一般需要几十次迭代才能收敛。
- 后处理:用HyperView查看密度云图,提取优化轮廓,导出STL文件做重构。
核心参数设置示例:
// OptiStruct 拓扑优化卡片示例
DESVAR = 1, TOPSHEET, MINDIM = 3.0, MAXDIM = 15.0
DRAW = 1, DIRECTION = Z, ANGLE = 2.0
SYMPLANE = 1, PLANE = XY, TOLERANCE = 0.01
// 目标:最小化柔顺度,体积分数保留30%
RESPONSE = 1, COMPLIANCE
RESPONSE = 2, VOLUMEFRAC, UPPER = 0.30
3.6 知识体系总览
下面这张图,是我梳理的本章知识结构。你可以把它当作一个检查清单,做优化之前对照着过一遍:
3.7 避坑指南
做拓扑优化这些年,我踩过的坑不少。挑几个典型的说说:
- 网格质量不过关:我曾经用一套质量很差的网格跑优化,结果出来的拓扑结构全是锯齿状的,根本没法用。后来花了三天重新画网格,才得到可用的结果。网格质量是优化的基石,别偷懒。
- 约束加得太晚:很多人喜欢先跑一轮不加约束的优化,看看「理想情况」长什么样。这个思路没错,但千万别在最后一轮才加制造约束——那时候优化已经收敛了,再加约束等于从头再来。
- 体积分数设得太激进:一上来就设10%的体积分数,结果优化出来的结构像蜘蛛网一样,根本没法用。我建议从40%开始,逐步降低,每次降5%,看看结构变化趋势。
- 忽略热载荷:钛合金部件很多在高温环境下工作。如果只考虑力学载荷,不考虑热应力,优化出来的结构在实际工况下可能会变形甚至失效。这个坑我栽过一次,后来再也不敢忘了。
一个小技巧:拓扑优化完成后,别急着做详细设计。先用OSSmooth工具把密度云图转成IGES或STEP曲面,然后在CAD软件里做一次快速FEA验证。确认性能达标了,再投入精力做精细化设计。这一步能帮你省下大量返工时间。
拓扑优化不是万能的,但它确实能帮你打开思路。很多你凭经验想不到的构型,计算机能给你找出来。关键是,你得学会跟它对话——用约束条件告诉它:哪些能做,哪些不能做。
好了,这一章的内容就到这里。记住:优化的本质不是让计算机替你设计,而是让计算机帮你探索设计空间。你的工程判断,永远是最后一道关。