如何使用Zernike多项式模拟黑盒光学系统
概要
我们经常需要在没有曲率、材料等具体数据的前提下来进行光学系统建模。这篇文章讲述了如何在OpticStudio黑盒文件无法使用的时候,使用泽尼克(Zernike)多项式作为替换方式,描述光学系统的波前像差并精确给出光学系统的成像结果。本文使用的附件请在以下链接下载:
http://customers.zemax.com/support/knowledgebase/Knowledgebase-Attachments/How-To-Model-a-Black-Box-Optical-System-Using-Zern/zernike.aspx
介绍
有时我们需要在不清楚光学系统细节参数的情况下进行建模。这种情况下我们通常使用近轴透镜进行一阶参数计算。但当需要考虑波前像差时,可以使用泽尼克多项式对系统波前进行精确建模。
针对这一应用,OpticStudio内置有强大的黑盒功能。但是当黑盒文件不可用时(例如进行物理光学传播分析),我们可以尝试如下方法。
如果您想在不提供设计文件的情况下将像差数据发送给您的客户,或使用干涉仪测量没有结构参数的透镜,您都可以使用OpticStudio中的泽尼克相位参数。根据干涉仪软件的不同,测量数据可能为.INT文件以及网格相位数据等,OpticStudio支持全部这些数据格式,但在本文中我们只讨论Zernike数据类型。
泽尼克相位数据可以表示光学系统在特定波长、特定视场下的成像质量。由于光学材料、曲率半径、非球面系数等并不包含在泽尼克数据中。因此无法通过对当前视场和波长下对数据进行缩放得到其他视场或波长的数据。因此,采用这种方法需要对光学系统的每个视场和波长都生成对应的泽尼克相位数据。这些数据文件可以单独或统一输入到OpticStudio中。
有一个很重要的特殊情况:当系统全部使用反射面进行建模时,则可以使用泽尼克标准面对特定视场下所有波长的成像结果进行建模。详情请参考官网知识库文章:
http://customers.zemax.com/os/resources/learn/knowledgebase/how-to-use-the-zernike-sag-surface-to-model-an-all
初始结构
首先我们以示例文件“Cooke one field, one wavelength.zmx”为例,该系统为库克三片镜结构。如文件名所述,该文件只包含一个视场和一个波长。
该系统波前图如下所示:
点列图如下所示:
泽尼克系数是一种非常方便的描述光学系统波前像差的方法。为了生成“黑盒”文件,我们首先要建立一个一阶系统参数相同的近轴光学系统,然后使用泽尼克数据在近轴系统中引入波前像差。
近轴数据的关键参数主要有出瞳位置和出瞳直径。所有的波前像差数据都是在出瞳上测量的,因此我们的黑盒系统必须拥有相同的光瞳数据。对于这个文件,光瞳数据如下:
出瞳直径 = 10.2337 mm
出瞳位置 = -50.9613 mm
近轴等效系统
打开文件“Paraxial Equivalent.zmx”。它使用近轴透镜面型模拟了相同参数的系统:
需要注意以下几点:
近轴系统使用原系统相同的视场和波长
近轴系统的入瞳直径与原系统的出瞳直径数值相同。在近轴系统中,入瞳、光阑和出瞳位于同一面上。
近轴透镜的焦距和到像面的距离设为原系统出瞳位置的-1倍。-1倍是因为出瞳位置是从像面到光瞳来计算的,但是表面厚度是从光瞳到像面计算的,因此我们需要变换符号。
近轴系统一阶光学参数和原系统相同。
近轴系统的出瞳和原系统出瞳的位置和尺寸完全相同。为了将原系统的像差加载到近轴系统上,我们在近轴面后紧贴着插入泽尼克标准相位(Zernike Standard Phase)面。这样做的目的在于我们可以提取原系统的泽尼克系数并加载在近轴系统的泽尼克标准相位面上。
复制泽尼克数据
回到”Cooke One Field One Wavelength.zmx”文件。点击分析选项卡(Analysis)->波前图(Wavefront)->泽尼克标准系数(Zernike Standard Coefficients)。OpticStudio将计算系统的波前,并匹配对应的泽尼克多项式。
波前的采样率和泽尼克多项式的项数可以在参数设置菜单中设置。波前采样和多项式系数的关键参数是RMS拟合误差(RMS fit error)和最大拟合误差(Maxium fit error)。在本例中使用默认采样和多项式项数参数得到如下结果:
这表示当我们在泽尼克系数表示的波前上减去实际波前时,其残留的误差在百万分之一个波前量级。这已经非常接近了!然而在实际应用时您需要对波前采样率和多项式系数进行调整以保证多项式较高的匹配度。
我们现在需要将泽尼克多项式系数转移到近轴等效系统中。我们可以输出泽尼克数据并将其输入到近轴系统中,但这一过程非常繁琐。我们可以使用宏来完成这一操作。
下面这个宏(包含于示例文件中)名为Zernike Readout.zpl,它可以提取系统的泽尼克数据并保存成.DAT格式的文件,该格式文件可以在近轴等效系统中的表面属性(Surface Properties)->导入(Import)->导入数据文件(Import Data File)中导入。宏执行该操作的过程如下所示:
首先定义所有需要的变量。
(需要注意的是,ZPL中设置的采样率和最大泽尼克项数应该与您在泽尼克分析中设置的数据相同)随后,宏会提取出瞳直径和泽尼克数据:
注意泽尼克表面的归一化半径表示出瞳直径的一半。宏随后将数据输出为一个.DAT格式的文件以便泽尼克标准相位面读取:
泽尼克数据将按如下定义方式,输入到泽尼克标准相位面的附加数据栏中:
将这个宏文件保存在Zemax根目录下的Macro文件夹中,点击编程(Programming)选项卡->更新列表(Refresh list),这样这个宏文件将出现在宏列表中。运行宏文件,它将在原Zemax文件的文件夹生成一个名为”Zernike.DAT”的.DAT格式文件。如果您使用记事本打开该文件,将显示如下数据:
这个文件包含了泽尼克标准相位面所需要的所有数据。第一行为泽尼克多项式的项数,第二行为归一化半径,之后的数据为泽尼克系数。在泽尼克标准相位面的表面属性中可以直接导入这个文件。
回到近轴近似系统中,打开泽尼克标准相位面的表面属性,在导入栏的导入数据文件处选择泽尼克数据文件:
导入后泽尼克标准相位面的附加数据应如下所示:
完成泽尼克数据输入后,近轴系统的波前差应如下图所示:
点列图如下所示:
近轴系统的光线追迹结果与原系统的相同!
在示例文件中“Zernike Equivalent.zmx”展示了最终系统。在文件“Direct Comparison.zmx”中的不同结构下展示了原系统和近轴系统的对比,这帮助我们更方便的对比两个系统。
总结
如果您想要建立光学系统的“黑盒”文件,将近轴透镜面和泽尼克标准相位面结合在一起是一个非常准确的模拟方法。近轴透镜定义了原系统的一阶光学参数,泽尼克面在近轴系统的基础上添加了波前像差。
一个简单的宏程序可以将原系统的泽尼克数据输入到黑盒系统中。