引言

在成像光学系统设计中,主要指的是透镜系统设计,当然也有一些反射系统或棱镜系统。

在透镜系统设计中,最基础最简单的便是单透镜设计。但我们不要小看这样的单透镜系统,因为它也代表了一个光学系统设计的完整流程。麻雀虽小,五脏俱全!

本篇文章中,我们通过手把手的操作,为大家展示使用ZEMAX进行成像光学设计的完整流程。使初学者快速领略到ZEMAX光学设计的风采,在轻松的设计中感受到光学设计的乐趣。

通过单透镜设计,可以使大家学习到ZEMAX序列编辑器建模方法,光束大小设置方法,视场设置方法,变量的设置方法,评价函数设置方法,优化方法,像差分析方法和提高像质的像差平衡方法等。


 打开ZEMAX软件,默认情况下我们会看到一个简洁的界面,其中只看到一个透镜数据编辑窗口(Lens Data Editor)。这个便是我们所说的序列成像模式,相对于非序列照明模式。ZEMAX软件将这两种设计模式集成一体,这是它其中的一大优势: 


【热点推荐】CAXCAD 光学设计软件

CAXCAD 光学设计软件,包含真实光线追迹,多种面型,几何像差,波像差,衍射PSF MFT, 参数求解,坐标断点,多重结构,DLS 优化等.

CAXCAD 技术知识库正式上线 http://www.caxcad.com/cn/kb.html


 

那么序列和非序列的区别在哪?它们区别固然是很大的,在此我们只简要说两大区别:光线追迹与建模的区别。

首先,序列模式下是使用几何光线追迹,也就是比较规则而又有预见性的光线进行追迹。注意我们强调的是光线的预见性,也就是说光线传播所遇到的表面是我们事先排列好的,光线一定是按我们的表面排列序号依次向后传播。例如:光线只能沿表面1.2.3.4...传播,而不能跳过其中任何一个面或反向。

  

非序列模式下使用实际光源物理发光形式,光线随机生成并按其实际传播路径追迹,所以非序列光线是不确定性的,因此它适用于照明系统设计。

其次,序列模式下使用表面(Surface)来建模,因为光线传播的确定性可以确切知道光线遇到的每个表面。例如一个透镜需要两个表面及中间的材质构成,由于成像光路中不会用到透镜的边缘圆柱面。在序列模式下,必须存在的三个表面:物面,光阑面和像面,也就是当我们新建一个系统时的默认三个面。

非序列模式使用实际物体建模,直接生成实体类型且不存在物面或像面,但需定义光源才能发光。


 设计任何一个镜头,我们都必须有特定的要求,比如焦距,相对口径,视场,波长,材料,分辨率,渐晕,MTF等等,根据系统的简易程度客户给的要求也各不相同。由于单透镜最简单的系统,要求也就很少。本例中我们设计单透镜规格参数如下:

 EPD = 20mm

F/# = 10

FFOV = 10 degree

Wavelength 0.587um

Material BK7

Best RMS Spot Radius

 首先我们需要把知道的镜头的系统参数输入软件中,系统参数包括三部分:光束孔径大小,视场类型及大小,波长。

在这个单透镜的规格参数中,入瞳直径(EPD)为20mm,全视场(FFOV)为10度,波长0.587微米,分别如下说明。

1、点击System >> General或点快捷按扭Gen打开通用设置对话框:

入瞳直径即用来直接确定进入系统光束直径的大小,它适用于大多数无限共轭系统。上图中我们也可以看到还有其它几种光束孔径定义类型:

像空间F数(Image Space F/#),用于直接确定像空间的F数值,当系统焦距已知的情况下,可同入瞳直径相互转换。

物空间数值孔径(Object Space NA),常用于有限共轭系统,如显微系统,投影系统,测量镜头等等,它通过直接定义物点发光角度来约束进入系统的光束大小。

随光阑尺寸漂移(Float By Stop Size),用于系统中光阑孔径固定的情况,如有的系统光阑大小为定值,可使用这种类型来计算入瞳的大小。

本例中,我们只需选择Aperture Type为EPD,大小20mm输入即可。

2、点击打开视场对话框:System >> Fields...,或点击快捷按扭Fie:

上图中视场分为四种类型:角度、物高、近轴像高和实际像高。根据不同系统提供的规格要求,可灵活选择适当的视场类型。

角度,直接设定物方视场光束主光线与光轴的角度,多用于无限共轭平行光条件下(物处于无限远处)。

物高,设定被成像物体的尺寸大小,此时系统必须为有限共轭时才可用(物距非无限远)。大多有限远物体成像系统常用这种视场类型。

近轴像高,使用近轴光束定义系统成像的像面大小,当设计的系统有固定的像面尺寸时使用此类型,如常见的CCD或COMS成像,由于接收面尺寸固定,可直接使用近轴像高来确定像面大小,软件会自动计算视场角度。近轴像高使用近轴方法计算,忽略系统畸变影响。适用于视场角度较小的系统。

实际像高,同近轴像高类似,区别在于实际像高使用实际光线计算像面尺寸,考虑畸变大小。适用于大视场广角系统。

了解了这几种视场类型,可能有人还不太明白,视场究竟是什么?视场就是我们所说的成像系统所能观察到的区域范围,也就是从像面上能看到的物面范围,如果物在无限远处就是所观察的锥形角度区域大小。每个视场代表一个物点,每个物点发出的是一束锥形光束且充满整个光瞳,如下面画的草图所示:

物面上有无数个物点发出锥形光束,为了几何光线追迹,通常将物面看作圆形面并将它分为X和Y两个剖面,由于视场区域的旋转对称性,我们只需对一个截面上的视场进行采样。采用视场区域面积相等的原则,球面系统一般选3个视场就可以,非球面或复杂系统视场将适当增加:

 本例中单透镜要求10度全视场,我们只需使用5度半视场,采样三个视场点即:0,3.5,5。

3、打开波长对话框设置波长:System >> Wavelengths或快捷按扭Wav,输入d光波长0.587即可:

至此,我们单透镜的系统参数设置就完成了。


 接下来我们创建透镜的初始结构,单透镜由两个面组成,我们需要在透镜数据编辑器(LDE)中再插入一个表面。将光标放在像面上,点击键盘上的Insert键在像面前插入一个表面。在第一个面的Glass栏输入透镜材料BK7,它表示这个面和下个面之间的材料为BK7。ZEMAX中有材料的表面会默认变为淡蓝色,如下图: 

 我们要求的透镜F/# = 10,它表示焦距与入瞳直径的比值为10,这也是间接控制焦距的方法。我们通常直接在最后一个光学面的曲率半径上设置F/#的求解类型,在透镜后表面曲率半径上点右键,选择F/# =10:

  

此时我们看到软件自动计算曲率半径为-103.36,使系统焦距为200mm。注意软件最底下的状态栏四个参数:EFFL(有效焦距),WFNO(工作F数),ENPD(入瞳直径),TOTR(系统总长)

在初始结构中,我们不知道透镜的曲率半径,透镜厚度,这些参数需要让软件自动优化帮我们找到。但我们可以使用最后面上边缘厚度解得到近轴焦平面的位置。在最后表面的厚度上点右键,选择边缘光线高度求解类型,它表示近轴边缘光线会自动在下个面上聚焦并找到这段距离值:

 可得到以下初始系统,虽然看不到透镜形状,却能看到系统目前的聚焦状态:

 


 初始结构设置完成,我们想让软件帮我们找到最佳曲率半径值。这时就需告诉软件,透镜的哪些参数是需要优化的?就这是设置透镜的优化变量过程。我们在需要优化的参数栏上点击键盘上的Ctrl+Z组合键,便可将这个参数设置为变量,参数右边会出现一个“v”字符。如下图我们将单透镜的前表面曲率半径与透镜厚度设置为变量:

 知道了变量的设置方法,那么我们想让这些变量变化以后得到什么样的结果呢?此时又要告诉软件我们想得到什么样的目标,这就是评价函数。用来评价系统优化目标的好坏,在这个单透镜中我们只需要优化到最小的光斑就可以。按下键盘上的F6快捷键打开评价函数编辑器。通常我们使用默认评价函数作为开始:

上图中所示评价函数分三部分:优化目标、光瞳采样、边界条件控制

优化目标部分是我们设计的核心,它是让我们直接告诉软件我们需要得到的结果。可以是光程差、光斑或发散角为目标。通常我们优化镜头的分辨率是以光斑最小为标准,即最小的RMS Spot Radius。在以后的无焦模式优化中我们会提到发散角为目标。

光瞳采样即优化时的光线采样,分两种方法:高斯环形积分采样和矩形阵列采样。当系统为旋转对称结构且没有渐晕存在的情况下,使用高斯环形积分,追迹最少的光线数得到较高的优化效率。当系统存在渐晕时,只能使用矩形阵列采样,需要追迹大量光线才能得到精确结果。

边界条件控制是用来控制优化过程中镜片与空间间隔大小的,保证得到的镜片不会太厚或太薄,空气厚度不至于优化为负值等。

如上图设置我们直接点击OK便自动插入系统的评价目标操作数:

到此时,我们的单透镜就可以优化了,点击:Tools >> Optimization >> Optimization...或点击快捷按扭Opt打开优化对话框:

注意红框内所列出的:优化目标操作数21个,优化变量2个,初始评价函数值0.1036205...这个优化称为局部优化,使用DLS(阻尼最小二乘法)优化到评价函数值最小,它依赖于系统的初始结构。我们点击Automatic开始自动优化,几乎不到一秒优化就完成了。


 首先我们看优化好的透镜结构是否合理,打开3D Layout图:

 

从上图中可以明显看出,优化出来的透镜变的非常厚,已经成为了一个圆柱形,这对实际加工来说是不合理的。这也说明我们在设置优化目标时没有对透镜的厚度进行限制,导致很厚或很薄的镜片产生。那们我们先来修正评价目标,将透镜厚度边界条件加入到评价函数中。设置透镜最小中心和边缘厚度为2mm,最大中心厚度为10mm:

重新优化后:

在透镜结构合理后,我们来看单透镜的成像效果,打开光斑图,快捷键Spt:

可以看到三个视场的RMS光斑分别为:14um,52um,92um,从光斑逐渐变大的趋势来看,可以想像到我们的像面位置应该处于第一个视场聚焦点,由于场曲存在,使第二,第三视场的光斑越来越大。为了改善这种情况,我们来分析我们的系统,在一开始初始结构设置时,我们使用了一个边缘光线高度求解类型,这就限制了像面位置只能在近轴焦平面处,所以极大地限制了光斑的优化。

我们将光标置于第二表面的厚度栏上,按下键盘上的Ctrl+Z键,将求解类型改为变量,再重新优化后光斑变为35um,14um,47um,有了稍微的提高:

在前面的技术文章中我们讲过光学设计基础像差的表示形式及解决办法。从上面光斑图中可以明显看出这个单透镜系统具有的两种主导性像差:像散和场曲。(提示:第三视场光斑椭圆形状,三个视场光斑大小差距)

这种情况下系统像质能不能提高?这时我们应针对占主导的像差来分析。想继续提高单透镜的成像光斑效果,需减小系统的像散和场曲。像散和场曲是与什么因素相关呢?视场!在这个单透镜的初始结构中默认的光阑位于透镜的前表面。我们可以通过改变视场来改变外视场的像差,当然系统设定的视场角度是不能改变的,但我们可以改变光阑的位置来改变不同视场的光线与透镜的高度。

在第一个表面前面插入一个新的表面,在新的表面最左边一栏中点右键打开表面属性对话框,将这个表面设置为新的光阑面,将这个表面的厚度设置为变量:

这样就把视场光阑移到了镜片的外部,通过再次优化,不同视场在透镜上的高度被重新分配,从而可以较好的校正轴外视场的像差:

优化后三个视场的光斑大小变为:16um,13um,21um,相比之前的35um,14um,47um有了较大的提高。但此时透镜比之前的口径变大了。另外,光阑远离透镜还会引入较大的畸变,目前的系统变化前后畸变相差10倍左右。

我们使用像模拟功能给大家展示光阑在透镜面上与光阑在透镜外的两种成像效果,请大家仔细分辨两幅图的区别:

由于单透镜可优化的变量有限,仅有一个有效的曲率半径和一个光阑位置变量是难以达到更高的成像效果。透镜厚度变量是一个弱变量,它在优化时不能有效改变评价函数结果。所以单透镜的设计到目前为止就结束了。想进一步提高像质,可增加镜片或使用非球面,这些我们将在以后的技术文章中逐渐讲解。


 本篇文章通过单透镜设计实例,详细讲解了光学设计的完整流程包括:

 系统参数设置,初始结构选择,优化变量设置,评价函数设置,局部优化。

 详细的设计步骤及图文解释,让初学者快速上手,使用ZEMAX进行完整的系统设计。

 另外在设计优化完成后,如何分析设计结果,如何改善和提高系统也进行了详细讲解。

 更多问题,欢迎和我们联系.

[pagewrap=Footer_Knowledge_ZEMAX_CN.html]