4. 热-结构耦合分析:顺序耦合与直接耦合、热应变与热应力计算、耦合场单元选择

热-结构耦合分析,说白了就是算两件事:温度变化让零件胀了多少,胀不动的地方产生了多大的力。我刚开始做光机仿真时,总觉得把温度场算准了就行,结果结构变形算出来跟实测差一大截。后来才明白——耦合方式没选对,单元类型没用好,算出来的东西根本没法信。

这一章咱们就把耦合分析的门道捋清楚。我会结合自己踩过的坑,把顺序耦合、直接耦合、热应变计算和单元选择这几个关键点讲透。

4.1 顺序耦合 vs 直接耦合:什么时候该用哪个?

耦合分析有两种主流方法:顺序耦合和直接耦合。很多新手上来就问“哪个更准”,其实不存在绝对的优劣,关键看你的问题场景。

对比项 顺序耦合 直接耦合
计算流程 先算温度场,再把温度结果作为载荷加载到结构场 同时求解温度场和结构场,耦合矩阵一次性组装
计算效率 高,可分别优化网格和时间步 低,自由度翻倍,求解规模大
适用场景 温度场对结构变形影响大,但结构变形对温度场反馈可忽略 温度场与结构变形存在强双向耦合(如摩擦生热、接触热阻变化)
软件实现 ANSYS Workbench 中拖拽数据流即可 需使用耦合场单元(如 SOLID226、SOLID227)
我的建议 光机结构分析中,90% 的情况用这个就够了 除非你算的是高速滑动摩擦或大变形接触传热,否则别碰
我的经验: 做空间相机镜筒热变形时,我一开始用了直接耦合,算了一个通宵没收敛。后来换成顺序耦合,半天出结果,跟实测偏差不到 5%。说白了,光机结构里热变形对温度场的反馈微乎其微,没必要杀鸡用牛刀。

4.2 热应变与热应力计算:公式背后的物理直觉

热应变的核心公式很简单:

ε_thermal = α × (T - T_ref)

其中 α 是线膨胀系数,T 是当前温度,T_ref 是参考温度(通常是应力释放温度)。但实际工程中,坑全藏在细节里。

4.2.1 各向异性热膨胀:光机结构的噩梦

我遇到过最头疼的情况是碳纤维镜筒的热变形。碳纤维铺层方向不同,α 值可以差 10 倍以上。如果你用各向同性材料模型去算,结果完全不对。

正确的做法是定义正交各向异性热膨胀系数:

! ANSYS APDL 示例
MP, ALPX, 1, -0.5e-6   ! 纤维方向
MP, ALPY, 1, 12e-6     ! 垂直纤维方向
MP, ALPZ, 1, 30e-6     ! 厚度方向
注意: 各向异性材料的参考温度 T_ref 必须与应力释放温度一致。我曾经因为 T_ref 设成了室温(20°C),而实际固化温度是 120°C,算出来的热应力方向都是反的。这个坑,我替你们踩过了。

4.2.2 热应力计算的本质

热应力不是直接由温度产生的,而是由“约束”产生的。你想想看:如果一根杆子自由膨胀,它不会有任何应力。只有当它被固定住,或者相邻材料膨胀量不一致时,才会产生应力。

所以热应力计算的本质是:

σ_thermal = E × (ε_total - ε_thermal)

其中 ε_total 是结构实际发生的应变(由位移场决定),ε_thermal 是自由热应变。两者的差值才是弹性应变,乘以弹性模量 E 就得到热应力。

4.3 耦合场单元选择:选错了,算出来就是废的

单元选择是热-结构耦合分析中最容易被忽视的环节。我见过太多人直接用结构单元加载温度体载荷,结果忽略了热-结构耦合单元的特殊要求。

4.3.1 常用耦合场单元一览

单元类型 维度 节点自由度 适用场景
SOLID226 3D T + UX/UY/UZ 通用热-结构耦合,支持塑性、蠕变
SOLID227 3D T + UX/UY/UZ 大变形、大应变、接触耦合
PLANE223 2D T + UX/UY 平面应力/应变热耦合
BEAM188/189 1D T + UX/UY/UZ/ROTX/ROTY/ROTZ 梁结构热变形(需开启 KEYOPT(1)=1)
核心原则: 直接耦合必须使用具有温度和位移自由度的耦合场单元。顺序耦合则可以在热分析中用热单元(如 SOLID90),在结构分析中用结构单元(如 SOLID186),通过体载荷传递温度。

4.3.2 我的单元选择决策流程

我一般按这个逻辑来选:

  1. 先判断耦合方式: 顺序耦合还是直接耦合?
  2. 顺序耦合: 热分析用 SOLID90(20节点六面体热单元),结构分析用 SOLID186(20节点六面体结构单元)。网格可以共用,但单元类型不同。
  3. 直接耦合: 首选 SOLID226(20节点六面体耦合单元)。如果涉及大变形接触,换 SOLID227。
  4. 检查单元形状: 六面体优先,四面体慎用。耦合场四面体单元容易产生剪切闭锁,热应力结果偏硬。
避坑指南: 我曾经用 SOLID227 算一个简单的镜座热变形,结果应力集中处数值振荡。排查了两天才发现——SOLID227 的积分点设置对扭曲网格敏感。后来换成 SOLID226 + 纯六面体网格,问题解决。记住:耦合场单元对网格质量的要求比纯结构单元高一个等级。

4.4 本章知识体系:一张图看懂

下面这张图总结了热-结构耦合分析的核心逻辑,我建议你把它存下来,做项目时对照着看。

热-结构耦合分析知识体系 热-结构耦合分析核心逻辑 耦合方式选择 顺序耦合(90%场景) 直接耦合(强双向耦合) 单元选择 热:SOLID90 → 结构:SOLID186 单元选择 耦合场:SOLID226 / SOLID227 热应变计算 ε = α × (T - T_ref) 热应力计算 σ = E × (ε_total - ε_thermal) 变形量 + 应力分布 → 光机优化 网格质量决定耦合精度 六面体优先,避免扭曲

4.5 实战要点总结

最后,我把这一章的核心要点浓缩成几条,你写报告或做仿真时可以直接参考:

  • 耦合方式: 光机结构分析优先选顺序耦合。除非你遇到摩擦生热或接触热阻随变形剧烈变化的情况,否则别碰直接耦合。
  • 参考温度: 这是最容易出错的地方。T_ref 必须等于应力释放温度(如固化温度、装配温度),不是环境温度。
  • 各向异性: 复合材料结构必须定义方向相关的热膨胀系数。用各向同性近似算碳纤维,结果会差一个数量级。
  • 单元选择: 顺序耦合用 SOLID90 + SOLID186;直接耦合用 SOLID226。网格质量是命门,六面体 + 密实网格是唯一出路。
  • 验证: 算完后用简单手算验证趋势。比如铝板均匀升温,自由膨胀量应该是 α × L × ΔT,如果仿真结果差太多,先查 T_ref 和材料参数。
我的习惯: 每次做热-结构耦合分析前,我都会先跑一个“单单元测试”——用一个六面体单元,施加均匀温度,看热应变和热应力是否跟手算一致。这一步只要 5 分钟,但能帮你省下后面 5 小时的排查时间。