3. 有限元法入门:网格划分、单元类型、边界条件设定
说实话,很多搞光机的人一听到「有限元」三个字就头大。我当年刚入行时也一样,觉得这东西是搞力学的人玩的,跟我做光学设计有什么关系?直到有一次,我设计的一个反射镜在温度变化后像质崩得一塌糊涂,我才意识到——不懂有限元,光机系统根本做不精。
这一章,我就带你从工程应用的角度,把有限元法的三个核心环节讲透:网格怎么划、单元怎么选、边界条件怎么设。不扯虚的,全是实战经验。
3.1 网格划分:不是越密越好
网格划分是有限元分析的第一步,也是最容易踩坑的一步。我见过不少新手,一上来就把网格划得密密麻麻,觉得越精细越准。结果呢?计算跑了一整天,出来的结果跟实测差了一大截。
网格划分的核心原则就两条:
- 关键区域加密,非关键区域稀疏——比如镜面支撑点附近、胶接界面、螺栓连接处,这些地方应力集中,网格必须细。而远离光路的壳体、底座,网格可以粗一些。
- 网格质量比数量重要——一个扭曲的六面体网格,不如一个规整的四面体网格。我习惯用「长宽比」和「翘曲度」两个指标来检查网格质量。长宽比超过5的,我会手动调整。
实战经验: 我在做某星载相机热变形分析时,最初用了全局0.5mm的网格,算出来镜面变形0.3μm。后来把支撑结构局部加密到0.1mm,其他区域放松到2mm,结果镜面变形变成了0.18μm,跟实测只差5%。你看,网格策略对了,精度和效率都能兼顾。
3.2 单元类型:选对了事半功倍
有限元软件里单元类型一大堆:实体单元、壳单元、梁单元、弹簧单元……你想想看,光机系统里哪些地方该用哪种?
我个人的选择习惯是这样的:
| 结构类型 | 推荐单元 | 理由 |
|---|---|---|
| 镜体、镜座、厚壁结构 | 二阶四面体(C3D10) | 能较好模拟弯曲和扭转,对复杂几何适应性强 |
| 薄壁壳体、遮光罩 | 壳单元(S4R) | 厚度方向应力梯度小,用壳单元效率高 |
| 支撑杆、桁架 | 梁单元(B31) | 细长结构,轴向和弯曲行为为主 |
| 胶层、柔性环节 | 弹簧/阻尼单元 | 简化建模,避免网格畸变 |
一个小技巧: 对于光机系统里的镜面,我建议用二阶单元。因为一阶单元在弯曲变形时容易出现「剪切闭锁」现象,算出来的变形量偏小。你想想看,镜面变形差个0.1μm,光学像质可能就完全不一样了。
3.3 边界条件设定:最容易被忽视的环节
边界条件设错了,网格再密、单元再高级,结果也是错的。我曾经犯过一个低级错误——把镜座的底面设成了全约束(所有自由度都固定),结果算出来的热变形只有实测的一半。后来才发现,实际安装时镜座是通过三个柔性支撑点固定的,底面并不是完全刚性连接。
光机系统里常见的边界条件类型:
- 固定约束: 用于模拟螺栓连接、焊接等刚性连接。注意,实际螺栓连接是有刚度的,不是理想刚性。我一般会在螺栓位置加一个弹簧单元来模拟连接刚度。
- 位移约束: 用于模拟导轨、滑槽等导向结构。比如镜筒在导轨上滑动,只约束垂直于导轨方向的位移,沿导轨方向释放。
- 热边界条件: 包括温度载荷和对流换热系数。温度场不均匀时,要特别注意梯度变化大的区域——比如镜面边缘和中心温差超过5℃,就可能导致明显的热像差。
- 接触边界: 镜片和镜座之间的接触,不是理想绑定。我习惯用「无摩擦接触」或「小滑移接触」来模拟,这样能更真实地反映热变形时的相对位移。
避坑指南: 我曾经在分析一个离轴三反系统时,把主镜和次镜之间的支撑结构设成了「绑定接触」。结果算出来的光轴偏移量只有0.02mm,但实际装调时发现偏移了0.15mm。后来改成「摩擦接触」并设置摩擦系数0.15,结果就对了。记住:光机系统里,刚性连接是理想情况,实际都是柔性连接。
3.4 知识体系总览
为了让你对本章内容有个整体印象,我画了一张流程图。它把网格划分、单元类型、边界条件设定这三个环节串起来了,也标出了每个环节的关键决策点。
3.5 一个完整的操作流程
说了这么多理论,咱们来走一遍实际流程。假设你要分析一个反射镜在温度变化20℃时的面形变化:
- 导入几何模型——从CAD软件导出STEP或IGS格式,注意去除小倒角、小孔等不影响结果的细节。
- 设置材料属性——镜体用微晶玻璃(膨胀系数0.05×10⁻⁶/K),镜座用钛合金(膨胀系数8.6×10⁻⁶/K)。
- 划分网格——镜面区域用0.2mm二阶四面体,镜座用1mm二阶四面体,支撑点局部加密到0.1mm。
- 施加边界条件——镜座底面三个支撑点施加位移约束(仅约束Z向),镜面施加20℃均匀温升。
- 求解并提取结果——提取镜面节点的位移数据,用Zernike多项式拟合出面形误差。
嗯,这里要注意: 提取镜面节点位移时,一定要用「节点坐标系」而不是「全局坐标系」。因为镜面可能是曲面,全局坐标系下的位移不能直接反映面形变化。我习惯在镜面中心建立一个局部坐标系,Z轴沿镜面法向,这样提取的Z向位移就是面形误差。
3.6 常见错误与避坑指南
最后,我把自己这些年踩过的坑总结一下,你遇到了可以直接拿来用:
- 网格过渡太突然: 从细网格到粗网格,中间要有2-3层过渡单元。我曾经直接跳了5倍尺寸,结果应力集中区域算出来的值偏大30%。
- 单元类型混用不当: 壳单元和实体单元连接时,要加MPC(多点约束)或RBE2单元来传递自由度。直接共节点的话,壳单元的转动自由度会丢失。
- 边界条件过约束: 这是最常见的问题。实际结构总有自由度,全约束会让结构变「刚」,变形量偏小。我一般会先做一次模态分析,看看约束后的固有频率是否合理。
- 忽略热辐射: 在真空环境下,热辐射是主要传热方式。如果只考虑热传导,温度场会偏均匀,热变形算出来也会偏小。
好了,这一章的内容就到这里。网格划分、单元类型、边界条件——这三个环节你掌握了,有限元分析的基本功就算打牢了。下一章我们会聊更具体的内容,到时候见。