第一章:光学设计导论
光学系统设计流程概述
做光学设计这么多年,我经常被问到同一个问题:“一套光学系统到底是怎么从零做出来的?”
其实,光学设计不是一上来就开软件、拉镜头。它更像一个“倒推”的过程。你想想看,客户给你一个需求,比如“我要一个能在3米外看清车牌号的镜头”。那你的第一步是什么?不是画图,而是把这句话翻译成工程语言。
我个人习惯把流程分成五步:
- 需求分析——把“看清车牌”变成焦距、视场角、分辨率这些硬指标。
- 初始结构选型——从专利库或经验库里找一个差不多的结构,比如双高斯、库克三片式。
- 优化迭代——在Zemax或Code V里跑优化,盯着像差曲线看。
- 公差分析——这一步很多人会跳,但我吃过亏。不做公差分析,生产出来就是一堆废品。
- 出图与交付——给加工厂出镜片图纸、装配图、检测报告。
嗯,这里要注意:流程不是线性的。你经常要回到第二步,换个结构重新来。我在项目中遇到过,一个镜头优化了两周,结果公差分析一跑,良率只有5%。最后只能换结构重来。
核心观点:光学设计80%的时间花在“试错”上,剩下的20%才是真正的设计。别怕重来,这是常态。
核心概念:孔径、视场、像差
这三个词,你会在光学设计里天天见到。说白了,它们就是光学系统的“三围”。
孔径(Aperture)
孔径决定了系统能收集多少光。它通常用F数(F/#)来表示。F数越小,光圈越大,进光量越多,但像差也越难控制。
我记得刚入行时,带我的老师傅说:“F数做到2.8以下,你就准备跟像差死磕吧。”后来我自己做项目,确实如此。一个F1.4的镜头,球差和色差会大到让你怀疑人生。
- 入瞳直径:光线进入系统的有效口径。
- F数 = 焦距 / 入瞳直径。F数越小,系统越“快”。
- 数值孔径(NA):显微镜和光纤里常用,NA = n * sin(θ)。
我的经验:做安防镜头,F1.6是个甜点。再小,成本翻倍;再大,低照度性能不够。
视场(Field of View)
视场就是系统能看多宽。它通常用半视场角(HFOV)或像高来表示。
你想想看,一个监控镜头,视场角120°和60°,完全是两种设计思路。大视场意味着边缘光线入射角大,畸变和场曲会特别明显。
- 全视场角(FOV):对角线方向能看到的范围。
- 像高:视场边缘在像面上的高度。像高 = 焦距 * tan(视场角)。
- 畸变:视场越大,畸变越难压。我做过一个广角镜头,边缘畸变到了15%,客户说“画面像鱼缸”,最后只能加非球面。
避坑指南:我曾经在视场定义上吃过亏。客户说“我要120°视场”,我按全视场算的,结果他指的是半视场。嗯,从那以后,我每次都会确认:你说的是半视场还是全视场?
像差(Aberrations)
像差就是“理想成像”和“实际成像”之间的差距。没有完美的镜头,只有“像差被控制到可接受范围”的镜头。
常见的像差有七种,但实际设计中,我们主要盯这几个:
| 像差类型 | 表现 | 怎么压 |
|---|---|---|
| 球差 | 边缘光线和中心光线焦点不重合 | 用非球面或双胶合透镜 |
| 色差 | 不同颜色光焦点不重合 | 用不同阿贝数的玻璃配对 |
| 彗差 | 离轴点光源成像像彗星尾巴 | 对称结构(如双高斯) |
| 像散 | 水平和垂直方向焦点不同 | 控制场曲,用厚透镜 |
| 畸变 | 直线变弯 | 对称结构或软件校正 |
说实话,新手最容易忽略的是色差。你优化了半天,MTF看着挺好,结果一跑多波长,全崩了。我建议一开始就把色差权重拉高,不然后面改起来很痛苦。
设计软件简介:Zemax / Code V
现在主流的软件就两家:Zemax(现在叫OpticStudio)和Code V。我两个都用过,说说我的感受。
Zemax(OpticStudio)
Zemax的优点是上手快。界面直观,序列模式和非序列模式切换方便。我个人习惯用Zemax做初始设计和优化,尤其是非球面和多重组态。
举个例子,你写一个简单的Zemax宏,用来计算某个面的球差:
! Zemax 宏:计算球差
LENS
SURFACE 1
RADIUS 50
THICKNESS 5
GLASS "BK7"
SURFACE 2
RADIUS -100
THICKNESS 10
SURFACE 3
STOP
RADIUS INFINITY
THICKNESS 0
SURFACE 4
RADIUS -50
THICKNESS 5
GLASS "F2"
SURFACE 5
RADIUS -200
THICKNESS 20
SURFACE 6
IMAGE
RADIUS INFINITY
THICKNESS 0
RAYTRACE
FIELD 0, 0
WAVELENGTH 0.587
APERTURE 10
OUTPUT "SPHERICAL_ABERRATION.TXT"
END
嗯,这个宏很简单,但能帮你快速看到球差的大小。我在项目中经常用它做初步评估。
小技巧:Zemax的Hammer优化很好用,但别让它跑太久。我一般设个500次迭代,不行就换结构。
Code V
Code V的优势在于优化速度和全局优化能力。它的“Global Synthesis”算法,说实话,比Zemax的Hammer要强一些。尤其是做复杂系统,比如变焦镜头或投影镜头,Code V的收敛速度明显更快。
但Code V的界面比较老,学习曲线陡。我记得第一次用Code V,光找“设置视场”的菜单就找了十分钟。不过一旦上手,你会爱上它的命令行操作。
举个例子,在Code V里定义一个简单的镜头:
! Code V 输入:定义镜头
RDM
S1 50.0 5.0 BK7
S2 -100.0 10.0
S3 INFINITY 0.0 STOP
S4 -50.0 5.0 F2
S5 -200.0 20.0
S6 INFINITY 0.0 IMAGE
END
GO
你看,Code V的语法更紧凑,适合批量处理。我习惯用Code V做公差分析和最终优化,用Zemax做前期验证。
我的建议:别纠结哪个软件更好。两个都学,Zemax用来快速验证想法,Code V用来做深度优化。就像工具箱里,你既要有螺丝刀,也要有扳手。
知识体系框架
下面这张图,是我自己总结的光学设计知识体系。你可以把它当成一张“地图”,知道每个知识点在哪个位置。
这张图里,从需求分析到交付,每一步都离不开核心概念和软件工具。你把它记在脑子里,做设计时就不会迷路。
最后说一句:光学设计是个“越做越怕”的活。刚开始觉得什么都能做,做多了反而越来越谨慎。嗯,这是好事。保持敬畏心,多试错,多总结,你也能成为老手。