第三章 光学系统热分析基础:软件、温度场与材料建模
热分析,说白了就是搞清楚温度变化时,你的镜头到底会变成什么样。我刚开始做无热化设计时,总觉得把镜片材料选好就万事大吉了。结果有一次,镜头在高温箱里测试,成像直接糊成一团。嗯,从那以后,我再也不敢轻视热分析这一步了。
这一章,我们就来聊聊热分析的基础。我会结合我自己的经验,带你看看常用的软件、怎么设置温度场,以及材料参数随温度变化的建模方法。
3.1 热分析软件:Zemax 与 Code V 的选择
市面上能做热分析的光学软件不少,但最主流的还是 Zemax 和 Code V。我个人两个都用过,各有各的脾气。
| 特性 | Zemax (OpticStudio) | Code V |
|---|---|---|
| 热分析入口 | 「多重结构 (Multi-Configuration)」+「温度/压力」操作数 | 「环境 (Environment)」选项卡,直接设置温度 |
| 材料库 | 自带部分玻璃的 dn/dT 数据,可扩展 | 材料库更全,尤其是红外材料 |
| 操作习惯 | 上手快,界面直观,适合中小型系统 | 命令行强大,适合复杂系统优化 |
| 我的推荐 | 新手入门、快速验证 | 高精度、红外系统、复杂热分析 |
我个人习惯用 Zemax 做前期验证。为什么?因为它设置快。你只需要在多重结构里添加 TEMP 和 PRES 操作数,就能定义不同温度下的镜头状态。Code V 则更强大,尤其是它的「热扰动」分析功能,能模拟温度梯度。我在做一款红外热像仪镜头时,就靠 Code V 发现了镜筒局部受热导致的像散问题。
3.2 温度场设置:从均匀到梯度
温度场设置,听起来高大上,其实就两种:均匀温度场和梯度温度场。
3.2.1 均匀温度场
这是最基础的情况。假设整个镜头从镜片到镜筒,温度都一样。比如,镜头从 20°C 升到 60°C,所有零件都变成 60°C。在 Zemax 里,你只需要在多重结构里设置 TEMP 操作数就行了。
! Zemax 多重结构示例
CONF 1 ! 20°C
TEMP 20
PRES 1
CONF 2 ! 60°C
TEMP 60
PRES 1
我曾经犯过一个错:只设置了镜片的温度,忘了设置空气间隔的温度。结果算出来的热离焦量完全不对。记住,空气也是会热胀冷缩的。
3.2.2 梯度温度场
实际情况往往更复杂。镜头前组可能被太阳晒得滚烫,后组却相对凉爽。这时候就需要梯度温度场。Code V 在这方面做得比较好,它允许你定义每个表面的温度分布。
我记得有一次做车载镜头,镜头前部靠近引擎,温度高达 105°C,后部靠近座舱只有 50°C。如果按均匀温度场算,结果根本不准。后来我用 Code V 的「热梯度」功能,把温度分布映射到镜片上,才找到了真正的热变形规律。
3.3 材料参数随温度变化的建模
这是热分析的核心。温度一变,材料的折射率、热膨胀系数、厚度都会变。你想想看,这些参数一起变,镜头性能能不变吗?
3.3.1 折射率温度系数 (dn/dT)
这是最重要的参数。它表示温度每升高 1°C,折射率变化多少。不同玻璃的 dn/dT 差别很大。比如,有些冕牌玻璃的 dn/dT 是正的,而某些火石玻璃却是负的。无热化设计的一个核心思路,就是利用正负 dn/dT 的材料互相补偿。
| 材料 | dn/dT (10⁻⁶/°C) | 特点 |
|---|---|---|
| N-BK7 | +2.0 | 常见冕牌玻璃,正 dn/dT |
| SF6 | +8.5 | 高折射率火石,dn/dT 很大 |
| CaF₂ (氟化钙) | -10.6 | 红外材料,负 dn/dT,常用于补偿 |
| ZnSe (硒化锌) | +48.0 | 红外材料,dn/dT 极大,需小心使用 |
在 Zemax 里,你可以在玻璃库中直接查看或修改 dn/dT 数据。我个人习惯是,对于关键材料,一定要找供应商要实测的 dn/dT 曲线,而不是用软件默认值。默认值有时候会坑人。
3.3.2 热膨胀系数 (CTE)
CTE 决定了镜片和镜筒的尺寸变化。镜片的热膨胀会导致曲率半径和厚度改变。镜筒的热膨胀会导致镜片间距改变。
这里有个避坑指南:我曾经设计一款镜头,镜片用的是 N-BK7 (CTE ≈ 7.1×10⁻⁶/°C),镜筒用的是铝合金 (CTE ≈ 23×10⁻⁶/°C)。结果温度一高,镜筒膨胀得比镜片快,镜片在镜筒里松动了。后来我改用了因瓦合金 (CTE ≈ 1.2×10⁻⁶/°C) 做镜筒,才解决了问题。记住,镜筒和镜片的 CTE 要尽量匹配。
3.3.3 建模方法:Sellmeier 方程的温度修正
高精度建模时,不能只用一个常数 dn/dT。更准确的做法是使用修正后的 Sellmeier 方程。这个方程描述了折射率随波长和温度的变化。
! 修正的 Sellmeier 方程形式
n²(λ, T) = A(T) + B(T) / (λ² - C(T)) + D(T) / (λ² - E(T))
! 其中 A(T), B(T), C(T), D(T), E(T) 都是温度的函数
! 通常表示为多项式:A(T) = A0 + A1*T + A2*T² + ...
在 Zemax 和 Code V 中,你都可以直接输入这些温度系数。我个人建议,如果做高精度无热化设计,一定要用这种模型。只用一个 dn/dT 常数,在宽温度范围内误差会很大。
3.4 本章知识体系:热分析流程
下面这张图,是我自己总结的热分析基本流程。每次做项目前,我都会对照着走一遍,确保没漏掉什么。
这张图把整个流程串起来了。从定义温度范围开始,到最终评估优化,每一步都环环相扣。你想想看,如果材料参数没搞准,后面的分析全是白费功夫。
好了,这一章的内容就这些。热分析软件、温度场设置、材料建模,这三块是基础中的基础。把这三块搞扎实了,后面做无热化设计才能得心应手。记住,别光看理论,一定要动手在软件里跑一遍。遇到问题,欢迎随时交流。