光学设计CAD软件应用基础
第9章光学CAD软件应用基础
9.1国内外光学CAD软件概述
9.1.1光学CAD软件的发展历史
9.1.2几种代表性光学CAD软件简介
9.2OSLO简介
9.2.1OSLO的版本
9.2.3OSLO的基本概念
9.3OSLOLT6.1用户界面
9.3.1主窗口
9.3.2工具条
9.3.3面数据编辑表
9.3.4图形窗口
9.3.5文本窗口
9.3.6文件菜单
9.3.7透镜菜单
9.3.8评价菜单
9.3.9优化菜单
9.3.10公差菜单
9.3.11光源菜单
9.3.12工具菜单
9.3.13窗口菜单
9.3.14帮助菜单
9.4OSLOLT6.1基本操作
9.4.1OSLO的镜面操作规定
9.4.2建立无限远像距镜头文件
9.4.3建立有限远像距透镜文件
9.4.4像质评价
9.4.5优化
9.5OSLOLT6.1应用实例
9.5.115x广角目镜设计
9.5.25x激光扩束准直镜设计
9.1国内外光学CAD软件概述
9.1.1光学CAD软件的发展历史
光学系统像差的自动校正,也称计算机辅助光学设计,其历史可以追溯到半个世纪之前。20世纪50年代美国国家标准局首先使用电子计算机进行模拟光线追迹,经过了几年的研究开发,积累了一些使用电子计算机进行自动光学设计的经验,这为后来转入自动光学设计软件开发阶段奠定了基础。半个世纪以来,很多科技工作者在光学计算机辅助设计这一领域里不断探索创新,辛勤耕耘,取得了许多优秀成果,惠及工程光学乃至整个光学学科,并逐步形成了光学计算机辅助设计即光学CAD这一光学分支。
在光学CAD领域中国际知名的学者有:美国哈佛大学的贝克,英国曼彻斯特大学的布莱克、霍普金斯,美国柯达公司的梅隆以及格雷、齐哈德、格拉采尔等。国内的长春光机所、上海光机所、西安光机所、上海光学仪器研究所、北京大学、清华大学和南京大学等单位和个人,从20世纪60年代初开始先后将电子计算机应用于光学设计。70年代初,北京理工大学等单位也加入此行列。随着像差分布计算程序、空间光线计算程序、点列图计算程序、传递函数、光学系统公差计算程序和变焦系统的像差自动校正程序的相继投入使用,初步形成了一套比较完整的光学设计软件包。到了20世纪80年代,北京理工大学袁旭沧教授等在原先的微机用光学设计软件包的基础上,研发了“SOD88微机用光学设计软件包”,这是目前国内研发的应用最广的具有自主知识产权的光学CAD软件。
2004年北京理工大学李林、安连生教授所著的《计算机辅助光学设计的理论与应用》一书是一本关于光学CAD软件的数学模型及编程特点的专著,填补了我国在此领域的空白。
9.1.2几种代表性光学CAD软件简介
对于光学CAD的研究半个世纪以来一直在持续发展着,高质量的光学设计软件产品已被世界各地的光学工程师和科研人员广泛使用。在这里选择几个有影响的光学设计软件做一简介。
•OSLO(美国)
OSLO软件由美国LambdaResearchCorporation出品。OSLO程序由透镜数据输入、优化、像差分析、MTF分析、点列图分析、公差计算等多个功能强大的子程序构成。本章后续部分将对OSLO软件作详细的介绍。
•SIGMA(英国)
由英国KidgerOptics公司出品。SIGMA软件是具有20世纪90年代世界先进水平的、成熟可靠、在欧洲应用很广的光学自动设计软件。除了能进行常规光学设计外,还具有以下功能:自动优化数据、计算光学传递函数、计算倾斜和非共轴系
统、光栅和光全息计算等等。
•ZEMAX(美国)
ZEMAX是由FocusSoftware公司出品的光学设计软件。它有SE(标准版)、XE(完整版)和EE(专业版)三个版本。ZEMAX软件可模拟并建立反射、折射、衍射、分光、镀膜等光学系统模型,可以进行几何像差、点列图、光学传递函数(MTF)、干涉和镀膜等分析。此外ZEMAX还提供优化的功能来帮助设计者改善其设计,而公差容限分析功能可以帮助设计者来分析其设计在装配时所造成的光学特性误差。
•CODE-V(美国)
CODE-V是由OpticalResearchAssociates出品的大型光学设计软件。它具有光学设计、分析、照度计算等功能,提供了超过2400种以上的光学设计实例。CODE-V的功能非常强大,但价格也相当昂贵。
•SOD88(中国)
SOD88光学设计软件包是由北京理工大学光电工程系技术光学教研室研制的,是我国在光学仪器行业和高校、科研院所应用最广的具有自主知识产权的光学设计软件。它具有像质评价(几何像差、点列图、光学传递函数等)、变焦距系统像差计算与像差自动校正、公差计算等功能。尽管国产软件在功能和迭代收敛速度方面不如国外产品,但由于其价格性能比低,还是值得推介的。
此外,国外比较流行的光学设计软件还有BEAMFOUR、OPTICA等,中科院长春光机所开发的光学设计软件CIOES虽不及SOD88应用面广,但其功能亦是相当优秀。
光学CAD软件的出现并不断完善,为光学科技工作者提供了更广阔的施展空间。它能使光学设计者的工作环境更具智能色彩,能改变设计人员的思考方法和工作方式,大大减轻了设计人员的劳动强度,更充分地利用前人的设计成果,快速、高效地设计出性能更加优良的光学系统。利用光学CAD软件不仅能节约大量的人力资源,缩短设计周期,还可以开发出更多质量更高、结构更简单的光学仪器与产品。
9.2OSLO简介
OSLO是OpticsSoftwareforLayoutandOptimization的缩写。七十年代在Rochester大学开发了最初的OSLO,1976年开发出了第一个商业化的版本,后来LambdaResearch公司购买下了OSLO程序,并不断推出新的版本。目前的最高版本已经到了OSLO6.4。本书中将介绍OSLO6.1版本的功能特点和应用。
9.2.1OSLO的版本
早期的OSLO5.0系列有三个版本:OSLOLight、OSLOPRO、OSLOSIX。OSLOLight是SinclairOptics公司提供的一套免费教育软件,通过学习使用OSLO程序,可以使读者对光学系统设计的操作有初步的了解,进而使用功能更强的高级软件OSLOPRO和OSLOSIX。现在的OSLO6.0系列有四个版本:教学版(Education)、初级版
(Light)、标准版(Standard)和高级版(Premium),每个版本的功能依次递增。其中教学版相当于OSLOLT54,提供免费下载,下载网址www.sinopt.com。OSLOLT54只能进行不超过11个面的光学系统设计,OSLOEDU6和OSLOLT6都只能进行不超过9个面的光学系统设计,而OSLOSTD6和OSLOPRE6则没有面数限制。
9.2.2OSLO的基本概念
在学习用OSLO进行光学系统设计之前,必须建立起这样一个概念:“镜头亦文件”。因为设计镜头就是用结构参数、光学参数、公差、图形等信息把镜头模拟出来,所有的这些信息都包含在一个文件中。OSLO文件的扩展名为.len或.osl。OSLO的数据主要分为4种类型:面数据、操作条件、程序环境设定和编辑表数据缓存。
1、面数据(Surfacedata)
面数据包括透镜的所有结构参数,如曲率半径、厚度、孔径半径、玻璃种类、非球面类型等等。在OSLO中用4种方式输入或修改面数据:
(1)在面数据编辑表(Surfacedataspreadsheet)中输入。
(2)各项数据直接由命令行(Commandline)输入。
(3)打开内部透镜编辑器(Internallenseditor)输入面数据。
(4)离线输入。可以脱离OSLO用任何文本编辑器来编辑面数据。
2、透镜操作条件(Operatingconditions)
透镜操作条件是指对整个透镜组的相关参数进行设定,如孔径、视场、波长、误差函数、绘图等设定。透镜操作设定数据是附在透镜数据之中,与面数据一起存储在透镜文件中。透镜操作条件只针对某一个透镜,当打开这个透镜文件时自动导入相关数据,如果新建一个透镜文件则要重新设定该透镜的操作条件。
3、程序环境设定(Preferences)
程序环境设定与透镜操作条件设定不同,它是设定整个OSLO程序的操作环境,对所有透镜都起作用。如图形窗口颜色、文本字体、工具栏和状态栏设置等等。大多数选项一旦被设定好后就立即生效,但有一部分设定必须重新启动OSLO才能生效。一旦程序设定确定了,其内容就会被存入配置设定文档(configurationfile)(*.ini),在程序启动时就会被读取。
4、编辑表数据缓存(SpreadsheetBuffer)
编辑表数据缓存是OSLO数据结构中一个重要部分,它是连接程序与用户之间的主要通道。编辑表数据缓存附在每个文本窗口之中,OSLO将浮点数字输出到文本窗口时,将备份暂存于编辑表数据缓存内,并保留全部数据精确度。编辑表数据缓存是以矩阵形式保存数据,矩阵的列数规定为10列,行数没有限制。10列名称分别用a、b、c、d、e、f、g、h、i和j来表示,行名称以行数来表示。在文本窗口中点击输出数据,在命令行下面的信息输出区就会显示该数据所处的行列及其数值。如c2=0.012,表示在第二行第三列存储的数据是0.012。
9.3OSLOLT6.1用户界面
本节将介绍OSLOLT6.1版本的用户界面和使用方法。为方便起见,如无特殊说明,后面都将OSLOLT6.1简称为OSLO。
9.3.1主窗口
和大多数基于Windows的应用程序一样,OSLO的主窗口也是由标题栏、菜单栏、工具栏和状态栏等组成。除此之外OSLO中还有命令输入行,因为OSLO支持命令输入操作方式。比如说在命令输入行输入file_open,再按回车键,就会出现打开文件窗口,其结果与点击File->Open菜单项完全相同。点击命令输入行最右边的下拉按钮会看到前面各操作命令的历史纪录。
面数据编辑表、文本窗口和图形窗口是OSLO最常用的三种用户界面,光学系统设计的主要操作都是在这三个界面中进行;工具栏提供了一些常用命令的快捷方式;菜单里包括了所有的操作命令,后面将对这几部分分别作详细的介绍。
具栏
命令输
入行菜单
栏标
题栏图形
口
面数据
编辑表
文本
窗口
态
栏
图9.1OSLOLT6.1主窗口
9.3.2工具条
工具条提供快速的方法来执行常用命令。如图9-2所示,OSLO的工具条分为5组,每一组中的工具执行相关的命令,若某工具颜色变为灰色即表示当前不能使用该工具。如果想要看某工具的简要注释,将鼠标移到此工具上就会立刻显示。
图9-2工具条
1、工具条菜单。点击第一个工具弹出工具条菜单,如图9-3
所示。
图9-3工具条菜单
该菜单分为两栏,上栏是对窗口和工具条的一些设置,具体功能如下:
·排列窗口(Tilewindows):把打开的不规则放置的多个窗口自动整齐排列。·新建图形窗口(Newgraphicswindow):打开一个空白图形窗口。
·切换文本窗口(Switchtextwindow):在两个文本窗口之间切换,OSLO允许最多同时打开两个文本窗口。
·右击动作(SSright-clickacitons):在面数据编辑表中点击右键,弹出菜单,这和直接在面数据编辑表中点击右键功能一样。
·设置工具条/行(SetToolbars/Row):弹出对话框,输入在工具条第一行允许的最多工作条数。
下栏是5组工具条,分别为标准工具(StandardTools)、优化工具(OptimizationTools)、公差(Tolerancing)、高斯光束(GaussianBeams)、扩展光源(ExtendedSources)。下面详细说明各工具功能及其对应的菜单项。2、标准工具:打开面数据编辑表。
(File->NewLens):新建镜头文件。
(File->OpenLens):打开镜头文件。
(File->SaveLens):保存文件。(Window->Editor->Open):打开文本编辑器。
(File->LensLibrary->EditFoldersList):打开数据库编辑表。
(Optimize->Slider-wheelDesigner):打开滚动条编辑表。
3、优化工具
(Evaluate->Autofocus->Paraxialfocus):为得到轴上点最佳成像位置而
自动聚焦。
(Optimize->GenerateErrorFunction->GENIIRayAberration):生成误差函数。
(Optimize->Iterate):执行优化操作。(Optimize->Operands):打开优化操作数编辑表。
(Optimize->OptimizationConditions):打开优化条件编辑表。
4、公差
(Tolerance->UpdateTolerance
Data->Surface):打开面公差编辑表。
(Tolerance->UpdateToleranceData->Component):打开组件公差编辑表。:打开公差操作数编辑表。
(User-definedTolerancing):用户自定义公差。5、高斯光束
(Source->ParaxialGaussianBeam(ABCD)):打开高斯光束编辑表。
(Source->SkewGaussian
Beam):打开高斯光束追迹对话框。
(Source->FiberCoupling):打开单模光纤耦合编辑对话框。6、扩展光源
(Source->EditExtendedSources):编辑扩展光源。
(Source->ViewExtendedSource
Image):分析扩展光源的像。
(Source->PixelatedObject):像素化光源分析。
除了主窗口的工具条以外,在图形窗口和文本窗口也有多个功能丰富的工具条,能够非常方便地执行各种命令,在后面的小节中将具体介绍各工具。
9.3.3
面数据编辑表
控制区
数据编辑表
按钮
区工具条按钮系统参数区
面数据
输入
区
图9-4面数据编辑表
面数据编辑表是OSLO中最重要的一个数据表格,我们对镜头的大部分操作都是在这个表中进行。如图9-4所示,面数据编辑表主要由窗口控制区、系统参数区、面数据输入区、数据编辑按钮区和工具栏图标区等五个部分组成。
1、窗口控制区
窗口控制区可以控制面数据表的打开和关闭,当操作界面切换到其他的编辑表格或关闭所有编辑表时这个区域也始终存在。
:确定按钮。点击该按钮表示接受当前的数据输入并关闭当前面数据编辑表。注意这个按钮并不等于保存数据,如果要保存当前数据必须要点击主窗口工具栏上的按钮。
:取消按钮。点击该按钮表示拒绝当前的数据输入并关闭当前面数据编辑表。:帮助按钮。根据面数据编辑表和命令行的不同状态,帮助系统将打开不同的页面。
命令输入行:输入命令,按回车键执行该命令。OSLO有上千条用SCP和CCL语言编写的宏命令,关于这两种语言在9.4.6节中有简要介绍。
2、系统参数区
系统参数区显示的是光学系统主要的几个系统参数值,包括透镜名称(Lens)、有效焦距(Ef1)、入射光束半径(Entbeamradius)、视场角(Fieldangle)和主波长(Primarywavln)等。如果是有限物距系统入射光束半径和视场角会由物高和物方数值孔径替代。有效焦距值是由所输入的面数据值自动计算得到,不能人工修改。
3、面数据输入区
面数据输入区显示透镜各面的光学参数。表的纵列从左到右依次为面序号(SRF)、曲率半径(RADIUS)、厚度(THICKNESS)、孔径半径(APERTURERADIUS)、玻璃(GLASS)和特殊设置(SPECIAL);横行表示光学系统的每个面,其中第零面为物面,用OBJ表示,最后一面为像面,用IMS表示,中间各面用1到n的序号表示。
点击面序号可以选中整个行,再点击右键弹出快捷菜单,可以对该行进行剪切、复制、删除、插入、反转等操作。点住行序号然后向下拖动鼠标就可以选择多行,再点击右键弹出快捷菜单,可以对选中的多个行进行操作,例如元件分组(ElementGroup)命令可以将选中的面编为一组,这些面将作为一个整体,其内部的面对外是屏蔽的。如果想打散组可以选中该组序号,点击右键选择打散组(Ungroup)命令。
面数据有两种输入方式:直接输入数据和由目录透镜数据库调入镜头。半径、厚度和孔径半径值可以直接输入。点击每个数据格右边的灰色按钮会弹出一个菜单,里面有关于该数据值的一些特殊计算方式。玻璃可以从点击灰色按钮弹出的菜单中选择玻璃目录中的牌号,也可以自建玻璃名称和折射率。特殊设置菜单中包括坐标变换(Coordinates)、非球面(PolynomialAsphere)、样条轮廓(SplineProfile)、衍射面(DiffractiveSurface)和梯度折射率(GradientIndex)等对该面的特殊功能设置。
在行序号上点击右键,在弹出菜单中选择插入目录透镜(InsertCatalogLens),打开OSLO自带的目录透镜数据库对话框,如图9-5所示。
图9-5目录透镜数据库
点击对话框最下面的目录(Catalog)按钮,弹出目录数据库菜单,有十几个数据库可供选择,右边显示出所选数据库包括的透镜列表。每个数据库中有若干已设计好的透镜,大部分是单透镜和双胶合结构,因为这两种结构是构成复杂光学结构的基础。透镜类型(LensTypes)有三个选项:单透镜(Singlets)、双透镜(Doublets)和其他(Others),分类根据(Sortby)有三个选项:有效焦距(Ef1)、直径(Thickness)和零件名称(Part)。下面两项是选择中心焦距(CentralEf1)和中心直径(CentralDia)值,及其正负范围,用这两项可以缩小选择范围。比如中心焦距设为50mm,范围为正负10mm,那么表中就会列出焦距从40mm到60mm之间的透镜,这样查找所需要的透镜更为方便。
选择一个透镜就会在图中画出它的结构,在结构图下面显示该透镜的名称、焦距、直径、厚度等参数值,然后点击
表中。
4、数据编辑表按钮区
这个区是OSLO6.1版本与OSLO54版本相比在界面上增加的部分,它可以更方便的帮助我们进行各种系统参数的设置。该区中按钮包括常规设置(Gen)、近轴设置(Setup)、波长设置(Wavelength)、变量设置(Variable)、自动绘图打开/关闭(DrawOn/DrawOff)、组/面显示切换(Group/Sur)和系统注释(Notes)。
(1)点击常规设置按钮会打开常规设置编辑表,如图9-6所示。表中包括控制透镜特性或者操作环境的各种常规选项,如评价模式(Evaluationmode)、单位(Units)、光线瞄准模式(Rayraimmode)、波前参考球面位置(Wavefrontrefsphpos)、按钮返回面数据编辑表,所选透镜就输入了
孔径检查(Aperturechecking)、像差模式(Aberrationmode)等等。一般使用系
统默认的设置就可以,没有特殊需要不用修改这些设置。
图9-6常规条件编辑表
(2)点击近轴设置编辑按钮打开近轴设置编辑表,如图9-7
所示。
图9-7近轴设置编辑表
表中分孔径(Aperture)、视场(Field)和共轭(Conjugates)三个纵栏,每个纵栏中又有一条横线将其分成物方和像方两部分。孔径栏物方参数有入射光束半径(Entrbeamrad)、物方数值孔径(ObjectNA),像方参数有出射光线斜率(Ax.Rayslope)、像方数值孔径(ImageNA)、工作f(workingf-nbr)数等;视场栏物方参数有视场角(Fieldangle)、物高(Objectheight),像方参数有高斯像高(Gausimageht);共轭栏物方参数有物距(Objectdist)、物面距物方主面距离(ObjecttoPP1),像方参数有高斯像距(Gausimgdist)、像方主面到像面距离(PP2toimage)、放大率(Magnification)等。下面两项是对光学系统孔径的设置和对高斯光束孔径的设置。最下面是系统自动计算的光学系统外形尺寸,包括光学系统总长度(Overalllenslength)、入瞳半径/位置(Entrpuprad/pos)、拉格朗日不变量(Lagrangeinvariant)、有效焦距(Effectivefocallength)、总光路长度(Totaltracklength)、出瞳半径/位置(Extpuprad/pos)、匹兹万半径(Petzvalradius)等。
(3)点击波长设置按钮会打开波长编辑表,如图9-8所示。系统默认的当前主波长为0.58756μm,对0.48613μm和0.65627μm两种波长的光线校正初级色差,对这三种光线校正二级色差。点击每个波长值会弹出一个波长列表,列表中有从0.3650μm到1.1523μm之间的典型的23种波长,可以从其中任选你所需要的波长。选中了某个波长行,点击右键弹出的菜单中有对该行剪切、复制、粘贴、插入、删除等各种操作。Weight是该波长在计算色差时的权重,默认都为
1。
图9-8波长编辑表
(4)点击变量按钮打开变量设置编辑表,如图9-9所示。变量是在优化过程中可以任意改变值以使误差函数最小化的镜面参数,如镜面曲率半径、厚度等。表中前两行是设置默认的空气层厚度范围和玻璃厚度范围。中间三个按钮分别可以将所有的曲率半径(allcurvatures)、所有的厚度(allthickness)和所有的空气层(allair
spaces)设为变量。
图9-9变量编辑表
(5)点击自动绘图打开/关闭按钮可以在自动绘图和非自动绘图之间切换。自动绘图可以实时跟踪我们对镜面数据的修改,当改变某个半径值或者厚度值时,在绘图窗口中就会立刻改变镜片的外形,这样有利于我们及时发现设计过程中镜片结构可能会出现的问题。
(6)点击组/面显示切换按钮设置面数据编辑表中显示的光学系统是以组的形式还是以各面单独列出的形式来显示。通常在使用OSLO自带的目录数据库中的镜头时数据是以组的形式存储的,如果选择面显示方式就会自动把组打开,组里面的各面的参数值也会显示出来。
(7)点击注释按钮打开注释输入表。注释的长度不能超过5行,每行不超过80个字符。
5、工具条按钮区
工具条按钮区在面数据编辑表的右上角,有对面数据进行剪切、复制、粘贴等操作按钮。为快速方便起见,建议不用使用工具条按钮区中的按钮,直接在选种行
后点击右键,用弹出菜单操作更为方便。
9.3.4图形窗口
OSLO有非常丰富的图形显示分析功能,如对光学系统的二维、三维显示和各种像质分析图形等等。OSLO支持最多同时打开32
个图形窗口。
图9-10像差分析图形窗口
一个典型的图形窗口如图9-10所示。最上面是标题栏,显示该窗口的序号和名称,最右边是最小化、最大化和关闭按钮。注意当整个主窗口中只剩下一个图形窗口时,关闭按钮为灰色,也就是不能关闭最后一个图形窗口。标题栏下面一行是工具栏,所有关于图形分析和显示的命令都可以在标题栏中找到相应的按钮。在窗口中点击右键会弹出快捷菜单,有对窗口的更新(UpdateWindow)、缩放(Zoom)、打印(Print)、锁定(Lock)、清空(ClearWindow)和移除工具条(RemoveToolbar)等操作。点击按钮会弹出一个菜单,该菜单分为两栏,上栏是对窗口性质的一些设置,每个选项功能如下:
·新建一个图形窗口(Newgraphicswindow)可以打开一个空白图形窗口。
·排列窗口(Tilewindows)可以把打开的不规则放置的多个窗口自动整齐排列。·设置窗口名称(Setwindowtitle)可以修改当前的窗口名称。
·反转背景颜色(Invertbackground)把窗口背景颜色反转。
·点击右键动作(Right-clickactions)会在窗口中弹出右键快捷菜单,这和直接在窗口中点击右键的效果一样。
下栏可以打开一系列图形操作工具条,其中有标准工具(StandardTools)、透镜绘图(LensDrawing)、光线分析(RayAnalysis)、波前分析(Wavefront)、点列图(SpotDiagram)、点扩散函数(PSF)、振幅传递函数(MTF)、能量分析(EnergyAnalysis)等工具条,每个工具条都有多个分析工具按钮。标准工具条包含了大部分我们最常用的图形分析工具,功能如下::绘制二维光学系统图形。:绘制三维光学系统图形。
:绘制光线分析图。图中包括多个像质分析图,包括像差、像散、焦移、畸变、轴向色差和垂轴视场分析等。:绘制波前分析图。:绘制点列图。
:绘制点扩散函数(PSF)分析图。:绘制频域振幅传递函数(MTF)分析图。
:绘制焦面振幅传递函数分析图。
9.3.5文本窗口
OSLO中的文本窗口用来输出光学系统的各种数据,如镜头数据、像差数据、光线追迹数据等等,如图9-11所示。OSLO允许同时打开两个文本窗口。和图形窗口一样,文本窗口最上面是标题栏,标题栏下面是工具条,再下面是文本输出区。在文本窗口中点击右键弹出菜单,有对文本窗口的打印(Print)、拷贝(Copy)、保存(Save)、背景颜色设置(Backgroundcolor)等命令。清除窗口和数据编辑表缓存(ClearWindowandSSbuffer)
命令是清除窗口中所有数据并将数据编辑表缓存清空。
图9-11文本窗口点击按钮弹出工具条菜单。菜单的上栏和图形窗口一样,下栏是文本输出工具条选项。文本窗口的工具条有标准工具(StandardTools)、透镜数据工具(LensDataTools)、像差(Aberrations)、光线追迹(RayTrace)、像分析(ImageAnalysis)、公差数据(TolerancingData)等。文本窗口的工具条可以多选,即可以同时选择几个工具条,这些工具条的按钮都会在工具条上显示。
工具栏上默认的是标准工具,共17个按钮。这17项功能包含了绝大部分我们常用的数据输出。各工具按钮功能如下:
·Len:显示透镜数据,和当前面数据表中的面数据完全相同。
·Special:显示面的特殊参数,如果没有则告知无特殊数据输出。
·Rin:显示各面的折射率数据。
·Ape:显示各面的孔径类型和孔径半径值。
·Wav:显示当前使用的波长值。
·Pxc:显示光学系统的近轴常数值。
·Abr:显示系统的各种像差值,分别为近轴光线追迹值、色差值、初级单色像差值和五阶高级像差值。
·Mrg:显示各面的边缘光线追迹值。
·Chf:显示各面上主光线的追迹值。
·Tra:弹出一个对话框,要求设置想要追迹的任意一条光线的参数,然后可以在文本窗口输出这条光线的追迹值。
·Ref:显示当前的参考光线数据。
·Fan:弹出一个对话框,要求设置想要追迹的一束光线组的参数,然后再文本窗口种显示这一束指定光束的追迹值。
·Spd:显示主要的点列图和波长数据。
·Auf:正确的计算当前的虚像平面和调整正确的虚像成像值。
·Var:显示当前的变量值。
·Opt:显示当前的使用误差函数优化的数据。
·Ite:根据当前的优化函数进行优化迭带计算,改变变量的值使误差函数最小。
9.3.6文件(File)菜单
文件菜单主要是对OSLO文件的操作,分为7个横栏,功能如下:
1、透镜文件操作。这个栏包括新建透镜(NewLens)、打开透镜(OpenLens)、保存透镜(SaveLens)和另存透镜(SaveLensas)等。
2、数据库文件操作。OSLO的数据库文件是多个透镜文件的集合。透镜数据库(LensDatabase)下面的子菜单中有四个选项:公有数据库(Public)、私有数据库(Private)编辑文件夹列表(EditFoldersList)和打开数据库(OpenDatabase)。
3、打印文本操作。这个栏包括打印文本窗口(PrintTextWindow)、页面设置(PageSetup)和另存文本为(SaveTextas)三个选项。如果文本窗口内没有内容,那么打印文本窗口和另存文本为两项为灰色,不能操作。
4、打印图形操作。这个栏包括打印图形窗口(PrintGraphicsWindow)、页面设置(PageSetup)和另存图形为(SaveTextas)三个选项。如果图形窗口内没有内容,那么打印图形窗口和另存图形为两项为灰色,不能操作。
5、参考。参考(References)选项的子菜单是对参考的设置,一般使用默认设置。
6、打开文件。从列表中迅速打开曾打开过的文件。
7、退出。关闭OSLO并询问是否保存修改的文件。
9.3.7透镜(Lens)菜单
透镜菜单分为4栏,各选项功能如下:
1、更新透镜数据(Updatelensdata)。
2、显示数据,该栏分别有显示面数据(ShowSurfaceData)、显示公差数据(ShowToleranceData)、显示优化数据(ShowOptimizationData)、显示操作条件(ShowOperatingConditions)和显示辅助数据(ShowAuxiliaryData)等等。这些选项都是在文本窗口中显示所需要的数据信息,有些选项还有次级菜单进行进一步的选择。
3、透镜绘图,该栏有透镜绘图(LensDrawing)和透镜绘图条件(LensDrawingConditions)两个选项,分别打开透镜绘图设置和透镜绘图条件设置对话框,可以设置在图形窗口输出透镜结构的一些环境参数,通常使用默认设置。
4、元件绘图。该栏有元件绘图(ElementsDrawing)和元件绘图条件(ElementsDrawingConditions)两个选项。元件绘图是绘制某个镜片的工程图,点击元件绘图弹出对话框,要求输入该元件左表面的面序号,然后打开元件绘图编辑表,如图9-12
所示。
图9-12元件绘图编辑表
表中包括元件厚度公差(Thickness)、玻璃材料折射率公差(Material)、直径公差(Diameter)、表面粗糙度(RmsSurfaceRoughnessforGroundEdges)、泡沫和杂质等级(BubblesandInclusions)、均匀性与划痕(InhomogeneityandStriaae)等设置。按照上图中的设置绘出的元件工程图如图9-13所示,该图符合ISO10110绘图标准。
9.3.8评价(Evaluate)菜单
评价菜单包括对光学系统性能的各种评价功能,包括5个栏,具体功能如下:
1、近轴光线评价。近轴设置(ParaxialSetup)选项在文本窗口中输出光学系统的近轴光学特性,所有数据都与在面数据编辑表中近轴光线设置编辑表的数据相同。
图9-13元件工程图
近轴光线分析(ParaxialRayAnalysis)打开计算透镜近轴量对话框,如果选择计算近轴常数(Paraxialconstants),则在文本窗口中输出近轴常数值,这与直接在文本窗口工具条中点击Pxc按钮输出的内容完全相同;如果选择计算近轴光线追迹(Paraxialraytrace),则在文本窗口中输出近轴光线追迹列表。
2、像差评价。像差系数(AberrationCoefficients)选项打开像差系数选择对话框,可以选择近轴色差(Paraxialchromatic)、塞德尔像差(Seidelimage)、五阶像差(Fifthorder)、塞德尔光瞳像差(Seidelpupil)等多种像差,然后在文本窗口中输出各面的相应像差值。其它像差(OtherAberrations)的次级菜单中有一些特殊像差的选项。
3、光线评价。单光线追迹(SingleRayTrace)打开追迹单条光线设置对话框,这与直接在文本窗口的工具条中点击Tra按钮的功能相同,然后设置所需的条件,就可以在文本窗口中输出该光线在各面的追迹值。发散光线(Rayfans)和其它光线分析(Otherraysanalysis)是对一些特殊类型光线的追迹分析。
4、图形分析设置。该栏中分别对点列图(SpotDiagram)、波前(Wavefront)、传递函数(TransferFunction)、扩散函数(SpreadFunction)和能量分布(EnergyDistribution)分析进行设置,然后在图形窗口中显示各种像质分析图,这与在图形窗口中直接点击各种像质分析按钮的显示相同。
5、自动聚焦(Autofocus)设置系统在计算像面时的焦点位置,默认选择近轴聚
焦(Paraxialfocus)。
9.3.9优化(Optimize)菜单
优化是通过改变光学系统中一些透镜的参数值以改进系统光学性能的执行过程,优化的目标是使光学系统的误差函数值极小化。我们可以自己设置误差函数,但通常使用OSLO默认的优化函数。OSLO的优化函数具有优化速度快、适应性强、操作简单等特点,能够满足大多数成像光学系统的优化要求。
在OSLO主窗口的工具栏上点击按钮,在弹出菜单中选择优化工具(OptimizingTools),在工具栏中就会出现优化工具条,其中有五个按钮,有些和优化菜单里的选项功能相同,下面在介绍菜单项的时候再对应说明。优化菜单分为四栏,具体功能如下:
1、优化函数设置。生成优化函数(GenerateErrorFunction)的次级菜单中可以选择优化函数种类,通常选择GENII误差函数(GENIIErrorFunction),这是OSLO默
认的优化函数,点击优化工具条上的
使用默认值。点击优化工具条上的同样可以选择这个函数。操作数(Operands)也可以打开操作数编辑表,点击文本窗口的选项打开操作数编辑表,表中列举了50项操作数,我们可以根据需要修改,但通常
Ope按钮可以在文本窗口中显示当前操作数。
2、优化变量设置。变量(Variables)选项打开变量设置编辑表,这与在面数据编辑表中点击变量(Variables)按钮的操作相同。滚动条设置(Slider-wheelDesigner)选项打开滚动条设置表。OSLO允许把某个变量的值设置为滚动条,移动滚动条就是改变该变量的值,可以同时在像质分析窗口中看到改变该变量时像差的变化情况,用起来很方便。
3、优化过程。在设置好了优化函数和选择了优化变量后,迭代(Iterate)和高级优化(AdvancedOptimization)选项由灰色变为黑色,同时文本窗口工具条上的Var、Ope、Ite三个按钮也由灰色变为黑色,这时就可以进行优化操作了。点击迭代命令就在文本窗口中输出系统误差函数最小值的变化,这与在主窗口工具条中点击钮和在文本窗口中点击Ite按钮功能相同。
4、优化条件设定。优化条件(OptimizationConditions)选项打开优化条件设置对
话框,这与在主窗口优化工具条上点击
Routine)是对优化条件的进一步设置。图标的操作一样。支持常规(Support按
9.3.10公差(Tolerance)菜单
在实际加工透镜过程中镜面曲率半径和厚度等尺寸一定会有加工误差,类似于机械加工,透镜加工也要指定加工公差,在公差容限范围内的加工尺寸都认为满足像差要求。OSLO可以自动计算透镜公差,方便了设计加工。
更新公差数据(UpdateToleranceData)的次级菜单可以打开对各个面和各个组件(胶合组)的公差编辑表,通常使用ISO10110默认的设置,也可以直接输入公差
值。用户自定义公差(User-definedTolerancing)可以由用户设定公差函数来计算公差。
9.3.11光源(Source)菜单
光源菜单可以编辑特殊光源,如LED、激光、光纤耦合等。这里着重介绍近轴高斯光束(ParaxialGaussianBeam)编辑表,如图9-14
所示。
图9-14高斯光束编辑表
表的左半边为入射参考面上高斯光束的参数,默认的入射参考面为第0面,下面参数包括入射光斑直径(Spotsize(ω))、束腰直径(Waistss(ω0))、束腰距入射面距离(Waistdist(z))、波面曲率半径(Wvfradius(R))、发散角(Diverg(rad))和瑞利长度(Rayleighrange)等。表的右半边表示要评估的面上激光束的参数,各项与左半边相对应。点击最下面的绘制光束截面斑点尺寸(Plotbeamspotsize)按钮,打开高斯光束传播光路图和滚动条,移动滚动条可以看到高斯光束横截面尺寸的变化,如图9-15
所示。这个工具对设计激光扩束、准直、聚焦等光学系统很有帮助。
图9-15高斯光路传播图
9.3.12工具(Tools)菜单
编译CCL(CompileCCL)命令用来编译用户所创建的CCL程序。CCL语言是一种基于C语言的OSLO专用光学设计程序语言。OSLO允许用户用CCL语言编写应用程序来设计光学系统,这是一种高级应用,本书不再详细介绍。查找CCL库(SearchCCLLiberary)用来查找保存的CCL库。玻璃目录(GlassCatalogs)可以设置玻璃目录数据库和更新数据库。样例(Demos)次级菜单中有一些OSLO提供的一些透镜样例,初学者可以通过这些样例来学习OSLO的使用。
9.3.13窗口(Window)菜单
窗口菜单分为两栏,上栏分别是对文本窗口、图形窗口和文本编辑器的操作。文本编辑器是OSLO自带的文本输入窗口,一般用来创建CCL程序。下栏有选择字体(ChooseFonts)、排列图标(ArrangeIcons)、设置状态栏(ConfigureStatusBar)和排列窗口(TileWindow)等命令。设置状态栏选项可以选择在主窗口最下方的状态栏里显示的内容。排列窗口命令与图形窗口和文本窗口工具条菜单中的排列窗口命令功能相同。
9.3.14帮助(Help)菜单
OSLO有完善的帮助系统,通过帮助系统来学习OSLO是一个快捷方便的方法。
9.4OSLO6.1LT基本操作
用OSLO进行光学系统设计一般经过初始条件设定、面数据输入、光路计算、像质评价、优化等几个阶段,其工作流程图如图9-16所示。
图9-16光学系统设计工作流程图
光学CAD自动校正的前提是假定可以定义一个评价函数,它唯一地表征了一个光学系统的成像质量。该评价函数的值越小,光学系统的成像质量就越好,评价函数的值越大,挂果农学系统的成像质量就越差。在OSLO中,该评价函数就是误差函数。误差函数定义得越合理,就越能真实地表征光学系统的成像质量。本节将结合实例详细介绍用OSLO进行光学系统设计的基本操作。
9.4.1OSLO的镜面操作规定
在OSLO中对镜头参数输入有如下常用规定:
(1)透镜面数的规定。在OSLO中,光学系统的一束光线要连续地通过该系统的一组镜面。光线从左到右在系统中传播,其中物平面被指定为第0面,用OBJ表示。在顺序系统中,镜面按光线或其延长线穿过的次序依次计数,面数值最大者称为像面,用IMG表示,而不管该面上是否成像。
理论上认为,没有折射率变化的折射表面对光路的轨迹没有影响,称之为虚面(dummysurface)。虚面用来保存光路信息或者是为其他光学表面建立基坐标。
(2)符号规则。在共轴系统中,OSLO规定了曲率、厚度和折射率的正负号,规则如下:
曲率半径r:如果曲率中心位于镜面右侧,则曲率半径为正;反之为负。
厚度d;如下一表面位于当前表面的右侧,则两表面之间的厚度为正;反之为负。
折射率:所有的折射率为正;反射面用“rf1”指名。
孔径:所有孔径值都为正;如果输入负值则系统自动将其改为其绝对值。
9.4.2建立无限远像距镜头文件
要建立合格的镜头文件,关键的第一步就是要懂得如何正确输入透镜的结构参数,只要按部就班地输入合理、准确、完整的数据,OSLO程序立刻就能把计算结果在相应的编辑表中显示出来。在OSLO中,输入无限远像距和有限像距的镜头有一定的差异,因此将分别予以阐述。
本例中我们设计一个最简单的双胶合望远物镜,其光学参数为:焦距f'=200mm,通光孔径D=40mm,视场角2ω=5�。入瞳位于第一面上,前片玻璃为K9,后片玻璃为ZF1。
1、新建镜头文件
点击File->New
菜单项或者主窗口工具栏上的图标,打开新建文件对话框,如图9-17所示。在新文件名(Newfilename)中填入YZ00,文件类型(Filetype)选择第一项自定义透镜(Customlens),面数(Numberofsurfaces)中填3。然后点击OK,打开一个新的面数据编辑表,如图9-18所示。
图9-17
新建文件对话框
图9-18新建面数据编辑表
2、输入透镜光学特性参数。在面数据表中填入透镜名称YZ00,入射光束半径(Entbeamradius)为20mm,视场角(Fieldangle)为2.5º,主波长(Primarywavln)就选用默认的0.58756μm。DrawOn/Off按钮切换到DrawOn状态,Group/Surfs按钮切换到Surfs状态。如图9-19
所示。
图9-19输入光学特性参数
3、输入镜面数据。经面数据包括曲率半径、厚度、孔径、玻璃等项。
(1)曲率半径(RADIUS)。曲率半径可以直接输入,注意光阑面默认为第一个面,在面序号上显示为,在该面的孔径半径灰色按钮上显示。如果要改变光阑面,可以点击所要设的光阑面的孔径半径灰色按钮,在弹出菜单中选择孔径光阑(ApertureStop)选项即可。
(2)厚度(THICKNESS)。按初始结构的面厚度输入,因物面为无限远,第一面的厚度为默认的无限远值。
(3)孔径半径(APERTURERADIUS)可以不必输入,OSLO默认自动计算孔径值,孔径半径灰色按钮表示该值是自动计算(Solve)所得。
(4)玻璃(GLASS)。前面所说的玻璃牌号K9和ZF1是中国的玻璃牌号,而OSLO中可识别的是国外牌号,通常我们使用德国肖特玻璃厂的玻璃牌号。从光学设计手册中的中德牌号对照表中找到上述两种中国牌号对应的德国牌号为BK7和SF2。可以在两个玻璃输入区直接输入牌号名称,也可以点击右边的灰色按钮,在弹出菜单中选择Catalog->Schott,打开肖特厂玻璃牌号列表,如图9-20所示,然后分别选中BK7和SF2。表中牌号的排列可以按照名称(Name)、折射率(Index)、阿贝数(V-number)来选择。表上方的信息区就会显示该牌号玻璃的折射率、阿贝数等信息,如图9-21所示。从目录中选择的玻璃在灰色按钮上会显示字母C,表示Catalog,如果是直接输入牌号名称则不会显示字母
C。
图9-20
选择国外玻璃厂目录
图9-21肖特厂玻璃牌号目录表
点击打开近轴特性编辑表(Setup),将表中的高斯像距(Gausimgdst)内的数值
填入第三面的厚度栏里,这是系统自动计算的最后一面到像面的距离。最后得到的输入完整的面数据编辑表如图9-22
所示。
图9-22输入完整的面数据编辑表
3、显示透镜结构。因为切换到了DrawOn按钮,在我们输入镜面数据的时候在自动绘图窗口会实时显示每一步操作后透镜的二位结构图形。最后输入完的结构如图9-23
所示,(a)为二维平面结构,点击绘图窗口工具栏上的
维结构。显示如图(b)的三
(a)
图9-23光学系统结构图(b)
4、保存透镜数据。OSLO规定在第一次保存透镜文件时必须用File->SaveFileAs命令,打开另存透镜对话框,然后点击保存,返回面数据编辑表。以后每次修改面参数后,只要点击工具条上的就可以了。
9.4.3建立有限远像距透镜文件
设计一个生物显微镜用10×消色差物镜,光学特性为:β=−10×,f'=17mm,NA=0.25,2Y=1.8mm,L=195mm。为简单直观,取消盖玻片。有限物距镜头的输入具体操作步骤与无限远物距镜头大体相同,不同之处在于,有限物距镜头的物面的厚度不是无穷大,而是一个有限值,本例中为160mm。这时光
学特性区的入射光束半径和视场角自动被物方数值孔径和物半高值所取代,然后输入物方数值孔径的值和物半高值。注意由于我们采用反向光路输入法,实际的物方就变为像方,实际的像方变为物方,所以输入的物方数值孔径应为0.025,物高为实际的像高9mm。输入完数据的10×消色差物镜面数据编辑表如图9-24
所示。
图9-2410×消色差物镜面数据编辑表
9.4.4像质评价
OSLO提供了多种像质分析工具,如像差分析图、MTF、PSF、点列图、波前分析等等,此外还可以精确地计算各种像差值。以上面的10×消色差物镜为例,它的像差分析图、MTF、PSF、点列图分别如图9-25、图9-26、图9-27、图9-28
所示。
图9-2510×消色差物镜像差分析图
图9-2610×消色差物镜MTF
分析
图9-2710×消色差物镜PSF分析
图9-2810×消色差物镜点列图
点击文本窗口工具条上的Abr按钮,在文本窗口输出了该物镜的像差值,如图9-30
所示。
图9-2910×消色差物镜像差值
9.4.5优化
优化是光学系统设计过程中最重要的一步,一般来说初始结构的像质并不是很理想,只有经过优化才能使光学系统的性能达到我们需要的状态。以上面的10×消色差物镜为例,从其MTF图中可以看到极限分辨率只有90cycles/mm,球差值为-0.010067,明显不满足10×消色差物镜应有的分辨率和像差要求,所以要对其进行优化。
优化之前要进行两个必要的步骤:确定优化变量和选用评价函数。理论上讲透镜组的全部结构参数都可以作为优化变量参与优化,但在大多数光学系统中主要影响像质的因素是曲率半径r,我们以上述10×消色差物镜为例,介绍如何以曲率半
径r为变量进行优化。
1、打开透镜文件并另存
点击File->open,打开10×消色差物镜文件“10×001”,然后点击File->Savelensas,将文件另存为“10×002”。如果不是另存为,而是在原来的文件内优化,在保存后就会将原来的镜头数据覆盖,就丢失了初始结构的数据,这样不利于对比初始结构与优化后结构的像质分析。注意在以后的每次优化前都要将文件另存为另一个文件,这样保存多次优化的结果,从而可以从多个优化结果中选择最合适的结果为最终方案。
2、设置优化变量
在面数据表中点击变量(Variable)按钮,打开如图9-8所示变量编辑表,点击所有曲率半径为变量(Varyallcurvatures)按钮,将所有曲率半径都设为变量。点击每个面的孔径按钮,在弹出菜单中选择核查(Checked),这时该面的按钮变为
,这表示将该面人为设置核查渐晕,如果该面出现渐晕,光线追迹将不能通过该面。
3、设置误差函数
点击Optimize->GenerateErrorFunction->GENIIRayAberration,打开GENII误差函数设置对话框,如图9-28
所示。
图9-30GENII误差函数设置对话框
使用默认设置,直接点击OK按钮就可以。这时文本窗口工具条上的Ope和Ite按钮处于激活状态。点击Ope按钮在文本窗口输出当前的操作数,如图9-32所示。
图9-31GENII误差函数的操作数
OSLOLT6.1共有50个操作数,图9-32中所示的操作数都是由两个其它操作数相除定义的操作数,图中没有列出来的操作数都是单操作数,直接由光学参数来定义。图中最后一行为系统自动计算的当前误差函数的最小值(MINRMSERROR):
1.568151,优化的目标就是使这个最小值尽量小,同时兼顾像差平衡。
4、进行优化
点击Ite按钮,自动进行10次迭代计算,在文本窗口输出每次迭代的计算结果,当有两次的误差函数最小值相同时,说明已达到最小解,则停止迭代,如图9-30
所示。
图9-32自动优化结果输出
到此就完成了一次优化过程,再在图形窗口输出MTF分析,和像差分析曲线,如图9-33、图9-34所示。结果表明优化后明显比优化前像质好了很多。点击该结果保存。将
图9-33优化后的MTF
分析曲线
图9-34优化后的像差分析曲线
应该指出,单纯使用OSLO自动优化不一定能够达到最优结果。因为光学系统优化是一个多变量、多输出的过程,误差函数在不同变量的不同范围内可能会有多个
极小值。一次的自动优化可能会在某个范围内找到一个极小值,但并不一定能够找到最小值,也不一定会达到像差平衡,也许会使某一种像差减小,而使另一种像差增大。这时就要自己手动修改某个变量的值,“跳出”某个波谷,再从其他的方向优化。总之,光学系统的优化要经过大量的练习和实践来摸索其中的规律,从中找到一些快速优化、高质优化的方法。
9.5OSLOLT6.1应用实例
9.5.115×广角目镜设计
15×广角目镜设计如图9-35、9-36、9-37
所示。
图9-35
15×广角目镜结构参数
图9-3615×广角目镜像差分析
图9-3615×广角目镜MTF曲线
9.5.25x激光扩束准直镜设计
5x激光扩束准直镜设计如图9-37、9-38、9-39
所示。
图9-375x
激光扩束准直镜结构参数
图9-38高斯光束编辑表
图9-39高斯光束传播图