光学设计——光学设计实例中国科学院上海光学精密机械研究所2008年10月通过设计实例,加深对已学几何光学、像差理论及光学设计基本知识、一般手段的理解,并能初步运用。介绍光学设计软件ZEMAX的基本使用方法,设计实例通过ZEMAX来演示。意图光学设计软件ZEMAX简介单透镜双胶合透镜非球面单透镜显微镜物镜双高斯照相物镜公差计算(具体的应用实例——视情况而定)主要内容美国ZEMAXDevelopmentCorporation研发ZEMAX是一套综合性的光学设计软件,集成了光学系统所有的概念、设计、优化、分析、公差分析和文件管理功能。ZEMAX所有的这些功能都有一个直观的接口,它们具有功能强大、灵活、快速、容易使用等优点。ZEMAX有两种不同的版本:ZEMAX-SE和ZEMAX-EE,有些功能只在EE版本中才具有。ZEMAX可以模拟序列性(Sequential)和非序列性(non-sequential)系统,分别针对成像系统和非成像系统。ZEMAX简介光学设计过程计算机的出现,极大地促进了光学设计进程;大多数光学设计程序的本质如下:每个变量发生少量改变或增减;计算每个变量对结果的影响;计算结果是一系列导数,əp/əv1,əp/əv2,əp/əv3,……,p:优化函数结果,v:变量;为了使残余结果的平方和最小,对每个变量联立方程求解;重复上述过程直至实现最优化。光学设计人员的任务1.获得并考虑技术要求2.选择具有代表性的切入点前期设计、专利、建立联系、原始推导3.建立变量和约束变量包括:曲率半径、厚度、空气隙、玻璃特性约束可能是相关结构,如长度、半径等,或者是光线角度、F数等具体的参量4.使用程序对结果进行优化5.评价设计结果6.重复步骤3和4直至满足设计要求如果结果不满足条件,通过添加或分离元件、变化玻璃种类等来修改设计,然后返回步骤4另一种方法是返回步骤27.进行公差分析,估计结果误差——透镜加工、机械结构与装校要求数据输入的一般过程输入孔径(有几种方式,如F#,NA,Aperture,…)•在屏上找到ButtonGen,按出dialogbox,选按Aperture,挑选Aperturetype,并输入数值。•可以从System内选按General,按出dialogbox。•可从File内选择按Preference(或Environment)出dialogbox,将常用项目的Button选放在屏上,如Gen,便于直接选用。将上述过程表示为:SystemGenAperture输入视场:SystemFie用ZEMAX进行光学系统设计输入光学系统结构数据输入波长SystemWav输入半径、厚度、玻璃EditorLensdata或从屏上已有的Lensdataeditor改数据。如屏上数据框内作doubleclick得有关dialogbox,可对现状作出修改,例如:•修改Surfacetype,Aperturetype,改此面为光阑,即“Makesurfacestop”;•修改Radius,由fix改为Variable(优化过程中作为变量),或由Solve给出;•修改最后一面到像面的Thickness由fix改为MarginalRayHeight,Pupilzone0.7为0。GenGlasscatalogs用ZEMAX进行光学系统设计所选玻璃表是在内选定,可同时挑多个表•对于Surfacetype和GlassCatalogs,在User’sGuide内都有一章叙述。当已输入足够的结构数据后,程序就可以计算出像差并分析成像质量,这基本上是项目下的各种功能。*系统结构和光路图:可以判断透镜厚度是否适当,或者光路内是否存在显著错误,使光路与预期完全不符,等。AnalysisFanOpticalPathRayaberration或即按ButtonLayL3dEle几何像差与波像差:AnalysisLayoutor3DLayoutElementdrawing2DLayout(零件图)或RMS各个视场的波像差均方值AnalysisRMSRMSvsField或即按ButtonRayOpd光学性能分析(Analysis)Analysis畸变和像散像面弯曲或FcdAnalysisMiscellaneousFieldCurv/DistSeidel像差系数或SeiAnalysisCalculationsSeidelcoefficients或PsfPSFAnalysisPSFFFTPointSpreadFunction或MtfMTFAnalysisMTFModulationTransferFunctionAnalysis点列图AnalysisSpotDiagramsStandard或SptAnalysis或Enc能量集中度AnalysisEncircledEnergyDiffraction此程序所选用积分程序不好,使要求取样网格点(Sampling)较多,计算时间很长,使大像差系统的衍射积分不易算好。所以这里没有算能量集中度及HuygensPointSpreadfunction,为能容易完成这类计算,波像差(OPD,不是RMS)宜小于一个波长,否则必须加大Sampling点数,增长时间。计算Seidel像差的作用和目的是了解像差是在什么地方产生出来的,这对于将来校正或优化常会有帮助。由于此程序不能直接计算和优化望远镜系统(如伽利略望远镜,不宜将物镜目镜分开设计),程序中在Surface内建立一个ParaxialSurface,即一个理想光学系统,把平行光束聚焦于一点,可以规定为一个任意的焦距值,从而计算望远系统的像差。EncAnalysis按Button,按出dialogbox,预定优化次数,即可进行优化,但之前须规定MeritFunction(优化目标函数)及变量。关于变量,将结构数据框作doubleclick,得有关dialogbox,就可以将此结构数据作为变量(variable)或改为Fixed不变。关于MeritFunction,最简单的做法是用程序内的DefaultMeritFunction,通过下列方法,即可调用适当的DefaultMeritFunction:OptEditorsMeritfunctionToolsDefaultMeritFunction按出dialogbox,后按LoadResetOk即可,实际上此dialogbox中还有许多选项可改,这也是改变优化过程的方法之一。光学系统结构优化可以按实际情况作其他选择,改变优化过程。还可以自行构造自己认为更好的MeritFunction或修改当前的MeritFunction,这就要在框内输入适当的“Operand”,在Optimization这一章内规定了一批Operand,所用符号如:•First-order:焦距EFFL,像高PIMH,…•Aberrations:初级球差SPHA,垂轴像差TRAC,…另外还有各种边界条件Operand。也可以将MTF值或Encircledenergy作为MeritFunction,原则上这与实际使用目标有更直接联系,应更好。但是实际上由于必须用更多时间去算,作为优化的开始是不可取的。Oper#光学系统结构优化初始结构变量优化目标函数程序(算法)结果整个优化过程可以表示为以下框图,即优化结果是由初始结构、变量及优化目标函数所决定,(已确定了算法程序)三者不变时,结果是唯一的。对此结果不满意时,就须作人工干预,人工改变结构初值,变量或改变优化函数。光学系统结构优化下面,通过一些具体的例子来看优化的做法和问题优化实例(1)f’=100,1:10,±30°取EntrancePupilDiameter=10,Fielddata:Y-field=0°,30°,用同一Meritfunction,可以得校正彗差和子午弯曲的两种解(光阑位置作为变量),当入瞳直径由10减到5时,所得解与Kinslake书中的Landscapelens解一致,即:单透镜②采用Defaultmeritfunction,加一行EFFL=100,Weight=1。也并不是用任意的初始结构都能得实用的解,例如取r1=-60,r2=∞,玻璃为BK7,此时所得“局部极小解”,焦距、像差都与预期差很远。初始结构取r1=r2=∞就已可得到好的解:r1=61.2,r2=-350(d=5),这是处于球差极小位置,彗差近于零的解,光阑最佳位置在透镜前数毫米。透镜到像面的距离(Backfocallength)可以作为优化变量,也可以取Solve,Marginalrayheight=0而计算出;也可以由Tools,QuickFocus定。f’=100、D/f’=1:4、2W=±3,平行光入射,取EntrancePupilDiameter=25,Fielddate:Y-field=0°、3,=0.55um1005.215.17.35147kdrB856.87.165.1137kdrB①优化实例(1)两种结构的比较:这二个解的透镜弯曲方向相反(都朝向光阑),前者略优,但要程序将后者自动变为前者,则几乎是不可能的,必须人工强烈修改(倾向)才行。这三组解都可以从像差理论算出来,但优化的结果则略好于初级像差理论的解,这里都没有把透镜厚度作为变量。优化程序可以使焦距与预定相符,在大像差系统中,为使像差变小,程序倾向于使焦距变长,不能完全保证预定焦距。为保证焦距相符,还可以采用“Solves”定半径从而使焦距与预期一致,在Radius的dialogbox中取Solvetype为Elementpower即透镜焦距倒数1/f(可在保持单透镜焦距的条件下弯曲透镜),也可以用MarginalRayangle使本组的组合焦距保持不变,“Solve”这个工具,时常有利于设计方便,如Edgethickness有利于优化过程中保持透镜厚度合理。优化实例(2)3取取各种玻璃组合(可以查“光学设计手册”)如:都可以用程序得到对0°校正良好的能(取波长为F,d,c),但3°视场一般有较大彗差,不能校正。将光阑位置作为变量时,一般仍然如此。(初始半径可取(60,-60,∞)。将MeritFunction中视场0°的Operand完全除去,即仅考虑3°视场的像差,可以得到校正子午彗差的解(理论上看3°视场的像质与球差、彗差都有关,而0°仅与球差有关,原则上可以随3°视场的校正而同时校正),此时再回复原来二个视场的MeritFunction,此解所保持最优,如所附。这里玻璃组合为BK7/SF5,本可取Glass,Model,Vary,将玻璃作为变数优化,但得不到真正好的解,不如一一改玻璃,反而容易得到优化的解。035:1100f.,,,,/4101527SFSFSFSFSFB双胶合物镜优化实例(2):优化结果f’=60,1:1,±1°用非球面可以准确校正球差,透镜弯曲可校正彗差,形成大孔径小视场光学系统。简单采用DefaultmeritFunction做优化,一般得不到结果,为此先通过初级像差计算得到适当的校正S2的半径初值为出发点,另外MeritFunction中取带(Ring)改为15-20,自动优化可以得到好的结果(文件Asph6)。实际上,非球面高次项并非必须,如文件Asph3,只取6次项和8次项,残余像差也小些,这个结果是采用下列逐步接近的过程作出,①校正S1,S2决定半径和Conic系数,仍用Defaultmeritfunction(Ring=3)但将孔径取很小值;②半径和Conic系数固定不变,孔径增大,用6次方系数校正;③孔径增至1:1,优化6次、8次系数,所得结果存在高级彗差,再改初值(半径和Conic)产生反向初级彗差与之平衡,再重复上述过程。非球面单透镜优化实例(3)sei优化实例(3):优化结果优化实例(3)优化实例(3)优化实例(3)光学设计——光学设计实例中国科学院上海光学精密机械研究所2008