拓扑优化是结构优化的一种,和尺寸优化、形状优化不同,拓扑优化是在给定的设计空间里,找最优的材料分布形式,也就是哪些地方留材料、哪些地方去掉,最后得到一个最优的结构拓扑。简单说就是告诉你材料应该怎么摆才最合理,能在满足约束的情况下让目标最优,比如最轻、最刚等等。拓扑优化因为能得到比较新颖的结构形式,减重效果明显,在航空航天、汽车、机械等领域应用越来越广。ANSYS里也有拓扑优化的功能,用起来很方便。本文将介绍拓扑优化的基本概念、原理、方法、应用场景和注意事项,帮助大家入门这门强大的结构优化技术。
一、拓扑优化概述
1. 什么是拓扑优化
拓扑优化的基本概念。
什么是拓扑优化:
- 是结构优化的一种
- 在给定的设计空间和约束条件下
- 寻找最优的材料分布
- 也就是哪些地方留材料,哪些地方去掉
- 让目标函数达到最优
- 英文是Topology Optimization
结构优化的三个层次:
- 尺寸优化:优化结构的尺寸参数,比如板厚、梁的截面尺寸,形状不变
- 形状优化:优化结构的形状,比如孔的形状、圆角大小,拓扑不变
- 拓扑优化:优化结构的拓扑形式,也就是材料怎么分布,变化最大
- 这三个层次,拓扑优化变化最大,能带来的改进也最大
拓扑优化的特点:
- 可以得到全新的结构形式
- 减重效果明显
- 特别适合概念设计阶段
- 得到的结果往往很有启发性
- 但结果可能比较复杂,加工难度大
2. 拓扑优化能做什么
有什么用。
常见的目标函数:
- 最小化柔度,也就是最大化刚度,最常用的
- 最小化重量
- 最大化基频
- 最小化最大应力
- 等等
常见的约束条件:
- 体积分数约束,也就是材料用量不能超过多少,最常用的
- 应力约束
- 位移约束
- 频率约束
- 制造工艺约束,比如拔模、对称、最小尺寸等
- 等等
典型的应用场景:
- 概念设计阶段,找最优的结构形式
- 轻量化设计,在保证性能的前提下减重
- 3D打印的结构设计,因为3D打印可以做复杂形状
- 航天航空结构,对重量要求高
- 汽车结构,轻量化
- 机械零部件优化
- 等等,应用很广
3. 拓扑优化的发展
简单的历史。
发展历程:
- 最早可以追溯到1904年的Michell桁架理论
- 但真正的连续体拓扑优化是90年代左右发展起来的
- 1988年Bendsoe和Kikuchi提出了均匀化方法,是里程碑
- 后来又有了SIMP方法,也就是固体各向同性材料惩罚法,现在最常用
- 还有水平集方法、进化结构优化方法等
- 现在已经很成熟了,很多商业软件都有
现在的情况:
- 方法已经很成熟了
- 商业软件里都有,比如ANSYS、ABAQUS、OptiStruct等
- 应用越来越广
- 和3D打印结合很火
- 还在不断发展,比如多尺度拓扑优化、多目标拓扑优化等
二、拓扑优化的基本原理
1. 设计变量
怎么表示材料分布。
设计变量是什么:
- 拓扑优化的设计变量是每个单元的密度
- 密度在0到1之间
- 密度为1表示这个单元有材料
- 密度为0表示这个单元没有材料
- 中间值表示中间密度
- 这样就把材料分布问题转化成了每个单元密度的优化问题
为什么用密度:
- 简单直观
- 容易实现
- 可以用梯度-based的优化算法
- 是现在最主流的方法
问题:
- 直接优化的话,会有很多中间密度的单元
- 中间密度在物理上不好解释,到底是有材料还是没材料
- 所以需要惩罚,让结果尽量是0或者1
- 这就引出了SIMP方法
2. SIMP方法
最常用的方法。
什么是SIMP:
- 固体各向同性材料惩罚法
- 英文是Solid Isotropic Material with Penalization
- 是现在最主流的拓扑优化方法
- 简单说就是给中间密度惩罚,让它不划算,最后结果尽量是0或1
怎么惩罚:
- 单元的弹性模量和密度的p次方成正比
- E(ρ) = ρ^p * E0
- p是惩罚因子,一般取3左右
- 这样中间密度的单元刚度会很小,不划算
- 优化的时候就会尽量往0或1靠
- 最后得到的结果大多是0或1,中间密度很少
为什么惩罚:
- 为了得到清晰的黑白结果,也就是要么有材料要么没有
- 中间密度不好制造,也不好解释
- 惩罚是SIMP方法的关键
- 惩罚因子不能太小也不能太大
- 太小了中间密度多,太大了可能收敛不好
3. 优化问题的数学描述
正式的定义。
以最小柔度为例:
目标函数:最小化柔度,也就是最大化刚度
min C = F^T * U
约束:体积分数 ≤ Vf
0 ≤ ρe ≤ 1
其中:
- C是柔度
- F是载荷向量
- U是位移向量
- ρe是第e个单元的密度
- Vf是目标体积分数
- 这是最经典的拓扑优化问题
其他类型的问题:
- 最小重量,应力约束
- 频率优化
- 多工况拓扑优化
- 多目标拓扑优化
- 等等,很多变种
4. 优化算法
怎么求解。
常用的优化算法:
- 最优准则法OC:最简单最常用的,专门针对体积约束最小柔度的问题,效率很高
- 移动渐近线法MMA:更通用的梯度优化算法,适合各种约束和目标
- 其他梯度-based的优化算法
- 现在一般都用梯度法,效率高
灵敏度分析:
- 梯度法需要目标函数和约束对设计变量的导数
- 也就是灵敏度
- 拓扑优化的灵敏度分析很重要
- 一般用伴随法,效率高
- 每个迭代步算一次灵敏度
优化的过程:
1. 初始化设计变量,一般都设成目标体积分数
2. 有限元分析,算位移、应力等
3. 计算目标函数和约束
4. 计算灵敏度
5. 用优化算法更新设计变量
6. 检查收敛,不收敛就回到第2步
7. 收敛了就输出结果
迭代次数:
- 一般几十步到上百步就收敛了
- 每一步都要做一次有限元分析
- 所以计算量还是不小的
- 但比瞎试强多了
三、拓扑优化的方法分类
1. 密度法
最主流的。
什么是密度法:
- 用每个单元的密度作为设计变量
- 密度在0到1之间
- 代表材料的有无
- SIMP就是密度法的一种
- 是现在最主流的方法
密度法的特点:
- 简单直观,容易实现
- 计算效率高
- 可以处理复杂的问题
- 结果可能有灰度单元,也就是中间密度
- 需要后处理才能得到清晰的结构
常用的密度法:
- SIMP方法:最常用的
- RAMP方法:另一种惩罚方式
- 等等,核心思想差不多
2. 水平集方法
另一种常用的。
什么是水平集方法:
- 用一个水平集函数的零等值面来表示结构的边界
- 函数大于0的地方有材料,小于0的地方没有
- 边界是光滑的
- 英文是Level Set Method
水平集方法的特点:
- 边界清晰光滑,没有灰度问题
- 可以自然地处理拓扑变化
- 理论上比较优美
- 实现相对复杂一点
- 计算量可能大一点
- 也是很常用的方法
3. 进化结构优化方法ESO
比较直观的方法。
什么是ESO:
- 进化结构优化
- 英文是Evolutionary Structural Optimization
- 基本思想很简单:慢慢去掉应力低的材料,最后剩下的就是最优的
- 很直观,容易理解
ESO的特点:
- 原理简单,容易理解
- 实现也不难
- 但有时候结果不太稳定
- 可能不是最优的
- 现在用得相对少一些
- 但作为入门理解很有帮助
还有改进版的BESO,双向进化结构优化,可以加材料也可以减材料,效果好一些。
4. 其他方法
还有很多其他方法。
比如:
- 均匀化方法:最早的连续体拓扑优化方法,现在用得少了
- 相场法
- 移动可变形组件法MMC
- 等等,非常多
但工程上最常用的还是SIMP方法,也就是密度法,商业软件里基本都是这个。
四、拓扑优化的基本步骤
1. 问题定义
第一步。
明确问题:
- 优化的目标是什么,比如最小柔度、最小重量
- 约束是什么,比如体积分数、应力、位移
- 设计空间是哪部分,哪些地方可以改材料
- 非设计空间是哪部分,比如安装孔、加载的地方不能动
- 载荷和边界条件是什么
- 材料是什么
注意事项:
- 设计空间要给够,不然优化发挥不了作用
- 非设计空间要定义清楚,比如安装面、孔位这些不能改
- 载荷和边界条件要准确
- 体积分数要选合理,不能太低也不能太高
2. 建立有限元模型
建模型。
怎么做:
- 建立几何模型
- 划分设计空间和非设计空间
- 定义材料属性
- 划分网格
- 施加载荷和边界条件
- 做一次静力分析,看看对不对
网格的注意事项:
- 拓扑优化对网格有要求
- 不能太粗,不然结果不精细
- 也不能太细,不然计算量太大
- 一般用四边形或者六面体单元比较好
- 三角形或者四面体也可以,但结果可能差一点
- 网格要尽量均匀
3. 设置拓扑优化
优化设置。
怎么做:
- 定义设计变量,也就是哪些单元是设计变量
- 定义目标函数
- 定义约束条件
- 设置优化参数,比如最大迭代次数、收敛准则
- 制造约束,如果有的话,比如对称、拔模、最小成员尺寸等
常用的制造约束:
- 对称约束:左右对称、上下对称等,结果更规整
- 拔模约束:适合铸造,有拔模方向
- 挤出约束:适合挤出加工,截面不变
- 最小成员尺寸:避免太细的结构,不好制造
- 最大成员尺寸
- 等等,根据制造工艺选
4. 运行优化
开始算。
怎么做:
- 提交优化计算
- 看着迭代过程
- 一般几十步就收敛了
- 每一步都会更新材料分布
收敛的判断:
- 目标函数变化很小了
- 设计变量变化很小了
- 满足约束了
- 达到最大迭代次数了
- 等等
5. 结果后处理
处理结果。
拓扑优化的结果:
- 一般是每个单元的密度云图
- 红色是有材料,蓝色是没材料
- 中间可能有过渡区
- 需要后处理得到清晰的几何
后处理要做什么:
- 选一个合适的密度阈值,比如0.3或者0.5,大于阈值的算有材料
- 提取几何
- 光顺和修复
- 得到可以用的CAD模型
注意事项:
- 阈值的选择会影响结果
- 一般要试几个阈值看看
- 提取的几何可能有问题,需要修复
- 最后一定要用完整的有限元验证一下,看性能是不是满足要求
6. 验证和重构
很重要的一步。
为什么要验证:
- 拓扑优化的模型是简化的
- 提取几何后和优化的模型可能有差异
- 一定要重新分析验证
- 看应力、位移、刚度等是不是满足要求
- 不满足的话可能要调整
几何重构:
- 拓扑优化的结果往往很复杂
- 直接用可能不好制造
- 可以根据拓扑结果重新设计几何
- 保留主要的传力路径
- 简化成容易制造的形式
- 然后再做尺寸优化或者形状优化细化
五、拓扑优化的注意事项
1. 设计空间的选择
很重要。
设计空间要足够大:
- 设计空间越大,优化的自由度越大
- 越可能得到好的结果
- 太小了就限制了优化的发挥
- 当然也要考虑实际情况,不能无限大
非设计空间要定义清楚:
- 安装面、孔位、配合面这些不能动的地方要设成非设计
- 加载和约束的地方一般也设成非设计
- 不然优化可能把这些地方也去掉了
- 非设计空间定义得好,结果才实用
2. 网格的影响
网格很重要。
网格密度:
- 太粗的话结果不精细,细节出不来
- 太细的话计算量太大
- 要根据问题选合适的网格密度
- 可以先粗算一下,再细化
网格类型:
- 四边形、六面体单元结果一般更好
- 三角形、四面体也可以,但可能差一点
- 尽量用规整的网格
网格依赖性:
- 拓扑优化结果可能和网格有关
- 网格不一样,结果可能不一样
- 这是一个问题
- 可以用网格收敛性验证
- 或者用最小成员尺寸约束来缓解
3. 体积分数的选择
选多少合适。
体积分数是什么:
- 就是最后保留的材料体积占设计空间的比例
- 比如0.3就是保留30%的材料
- 是最常用的约束
怎么选:
- 根据经验和需求
- 想要减重多就设低一点
- 想要刚度高就设高一点
- 可以先试一个,看结果再调
- 也可以做参数分析,看不同体积分数下的性能
注意:
- 体积分数太低的话,结构可能太弱
- 太高的话减重效果不明显
- 要在性能和重量之间平衡
- 可以多试几个值看看
4. 棋盘格问题和网格依赖性
常见的问题。
什么是棋盘格:
- 优化结果出现像棋盘一样的黑白交替图案
- 是数值不稳定造成的
- 没有物理意义
- 是拓扑优化里常见的问题
怎么解决:
- 灵敏度过滤
- 密度过滤
- 偏微分方程过滤
- 最小成员尺寸约束
- 等等,现在一般软件里都有处理
网格依赖性:
- 网格不一样,结果不一样
- 也是常见问题
- 过滤和最小尺寸约束可以缓解
- 也可以做网格收敛性研究
5. 制造工艺的考虑
结果要能造出来。
为什么要考虑制造:
- 拓扑优化的结果往往很复杂
- 有些形式不好制造
- 比如很多悬空的、很细的结构
- 不考虑制造的话结果可能没用
常用的制造约束:
- 对称约束:结果对称,好看也好造
- 拔模约束:适合铸造、注塑
- 挤出约束:适合挤出、机加工
- 最小成员尺寸:避免太细的杆
- 最大成员尺寸
- 孔洞约束
- 等等,根据工艺选
3D打印的话:
- 3D打印可以做很复杂的形状
- 制造约束可以少一点
- 但也要考虑支撑、最小壁厚等
- 拓扑优化和3D打印是黄金搭档
6. 结果的验证和解读
不要直接用。
一定要验证:
- 拓扑优化的结果是优化出来的
- 但一定要重新做有限元分析验证
- 看应力、位移、刚度是不是满足要求
- 提取几何后的模型和优化模型有差异
- 不验证直接用可能出问题
怎么解读结果:
- 主要看传力路径
- 材料都在主要的传力路径上
- 去掉的地方都是不受力或者受力小的
- 结果可以给设计很多启发
- 不一定直接用,参考思路也很好
六、ANSYS中的拓扑优化
怎么用ANSYS做。
1. ANSYS拓扑优化的工具
有哪些工具。
ANSYS里的拓扑优化:
- Workbench里有Topology Optimization模块
- 很方便,图形界面操作
- 适合入门
- 经典APDL也可以做,更灵活
功能:
- 支持静力学拓扑优化
- 支持模态拓扑优化
- 支持热拓扑优化
- 支持多工况
- 支持各种制造约束
- 功能还是挺全的
2. Workbench拓扑优化的基本流程
大概怎么做。
基本步骤:
1. 建立几何模型,划分设计空间和非设计空间
2. 建立Static Structural系统,设置材料、网格、载荷、约束
3. 添加Topology Optimization系统,关联前面的静力分析
4. 设置优化目标,比如最小柔度
5. 设置约束,比如体积分数
6. 设置制造约束,如果需要的话
7. 求解
8. 查看结果,后处理
9. 验证和重构
很方便,点点鼠标就能做。
3. 常用的设置和选项
一些常用的。
目标函数选项:
- 最小柔度,也就是最大刚度,最常用
- 最小质量
- 最小最大位移
- 等等
约束选项:
- 体积约束
- 质量约束
- 位移约束
- 应力约束
- 频率约束
- 等等
制造约束选项:
- 对称约束
- 拔模约束
- 挤出约束
- 最小成员尺寸
- 等等
4. 结果后处理
怎么处理结果。
查看结果:
- 可以看密度云图
- 可以看不同阈值下的结果
- 可以看迭代历史
- 可以看目标函数和约束的变化
导出几何:
- 可以导出STL格式
- 也可以用SpaceClaim等工具重构几何
- 然后再做验证分析
注意:
- 导出的几何可能需要修复
- 一定要重新分析验证
- 不要直接用优化结果生产
七、拓扑优化的应用
1. 航空航天
应用很多。
为什么适合:
- 航空航天对重量要求特别高
- 减重收益大
- 很多结构可以用3D打印或者精密铸造
- 拓扑优化效果明显
典型应用:
- 飞机结构件
- 发动机零部件
- 卫星结构
- 支架、连接件
- 等等
2. 汽车工业
也很多。
应用场景:
- 车身结构轻量化
- 底盘零部件
- 动力系统部件
- 新能源汽车的电池包结构
- 等等
好处:
- 减重可以降低油耗或者提高续航
- 提高性能
- 拓扑优化是汽车轻量化的重要工具
3. 机械工程
广泛应用。
应用场景:
- 机床结构
- 机器人结构
- 模具
- 通用机械零部件
- 等等
好处:
- 减轻重量
- 提高刚度
- 降低成本
- 优化性能
4. 3D打印结合
黄金搭档。
为什么和3D打印配:
- 拓扑优化结果往往很复杂
- 传统制造不好做
- 3D打印可以做很复杂的形状
- 两者完美结合
- 现在很火
应用:
- 航空航天3D打印零件
- 医疗植入物,比如骨科植入物
- 模具的随形冷却水路
- 创意产品
- 等等
5. 其他应用
还有很多。
比如:
- 建筑结构
- 生物医疗
- 微机电系统
- 热结构
- 流体拓扑优化
- 等等,应用越来越广
八、总结
拓扑优化是一种强大的结构优化技术,在给定的设计空间里寻找最优的材料分布,可以得到新颖高效的结构形式,减重效果明显。SIMP方法是现在最主流的拓扑优化方法,简单高效,商业软件里基本都有。拓扑优化特别适合概念设计阶段,也和3D打印完美结合,在航空航天、汽车、机械等领域应用越来越广。ANSYS里也有方便的拓扑优化功能,很容易上手。
拓扑优化的要点总结:
- 拓扑优化是结构优化的一种,寻找最优的材料分布,变化最大,效果最显著
- 核心思想是用单元密度作为设计变量,通过惩罚让结果尽量是0或1,SIMP是最常用的方法
- 优化过程:有限元分析、灵敏度计算、更新设计变量,反复迭代直到收敛
- 主要方法:密度法(SIMP)、水平集法、进化结构优化法等,SIMP最主流
- 基本步骤:问题定义、建立模型、优化设置、运行优化、后处理、验证重构
- 注意事项:设计空间要够、网格要合适、体积分数要合理、考虑制造约束、结果要验证
- ANSYS Workbench里有拓扑优化模块,方便易用
- 应用领域:航空航天、汽车、机械、3D打印、医疗等,越来越广泛
给初学者的建议:
- 先理解基本概念,知道拓扑优化是怎么回事,能做什么
- 从简单的例子开始,比如一个简支梁的拓扑优化,先练手
- 先用商业软件的图形界面,比如ANSYS Workbench,容易上手
- 先从最经典的最小柔度、体积约束开始,这是最基础的
- 设计空间和非设计空间要定义好,这对结果影响很大
- 网格不要太粗也不要太细,合适就好
- 体积分数可以多试几个值,看不同的效果
- 结果不要直接用,一定要后处理和验证
- 要考虑制造工艺,加合适的制造约束,不然结果可能造不出来
- 拓扑优化的结果更多是给设计思路和方向,不一定直接用
- 可以结合形状优化和尺寸优化,先拓扑找形式,再细化
- 有兴趣再深入研究原理和算法
- 多做实际案例,在实践中积累经验
拓扑优化是一个很强大也很有意思的工具,掌握了之后可以设计出更轻、更强、更高效的结构,带来很大的价值。它的思想很巧妙,结果也很有启发性,不管是做结构设计还是做研究,都是很值得学习的技术。希望本文能帮助大家入门拓扑优化。如果有相关的经验或者问题,欢迎在评论区交流讨论。
|