第一章:光学设计导论

光学系统设计流程概述

做光学设计这么多年,我经常被问到同一个问题:“一套光学系统到底是怎么从零做出来的?”

其实,光学设计不是一上来就开软件、拉镜头。它更像一个“倒推”的过程。你想想看,客户给你一个需求,比如“我要一个能在3米外看清车牌号的镜头”。那你的第一步是什么?不是画图,而是把这句话翻译成工程语言。

我个人习惯把流程分成五步:

  1. 需求分析——把“看清车牌”变成焦距、视场角、分辨率这些硬指标。
  2. 初始结构选型——从专利库或经验库里找一个差不多的结构,比如双高斯、库克三片式。
  3. 优化迭代——在Zemax或Code V里跑优化,盯着像差曲线看。
  4. 公差分析——这一步很多人会跳,但我吃过亏。不做公差分析,生产出来就是一堆废品。
  5. 出图与交付——给加工厂出镜片图纸、装配图、检测报告。

嗯,这里要注意:流程不是线性的。你经常要回到第二步,换个结构重新来。我在项目中遇到过,一个镜头优化了两周,结果公差分析一跑,良率只有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用来做深度优化。就像工具箱里,你既要有螺丝刀,也要有扳手。

知识体系框架

下面这张图,是我自己总结的光学设计知识体系。你可以把它当成一张“地图”,知道每个知识点在哪个位置。

光学系统设计 需求分析 初始结构选型 优化与像差校正 焦距/视场/孔径 双高斯/库克三片 球差/色差/彗差 MTF/点列图 公差 Zemax Code V LightTools 出图 → 加工 → 检测 → 交付

这张图里,从需求分析到交付,每一步都离不开核心概念和软件工具。你把它记在脑子里,做设计时就不会迷路。

最后说一句:光学设计是个“越做越怕”的活。刚开始觉得什么都能做,做多了反而越来越谨慎。嗯,这是好事。保持敬畏心,多试错,多总结,你也能成为老手。

专注资料整理