Ansys Zemax | 如何设计光谱仪——理论依据

news2024/10/6 1:51:43

光谱学是一种无创性技术,是研究组织、等离子体和材料的最强大工具之一。本文介绍了如何利用近轴元件建立透镜—光栅—透镜(LGL)光谱仪模型,使用OpticStudio的多重结构( Multiple Configurations )、评价函数 ( Merit Functions )和ZPL宏等先进功能完成了从所需指标参数到性能评估的设计过程。(联系我们获取文章附件)

简介

光谱仪是测量光强与波长的函数关系的仪器。光谱仪有各种各样的通用设置。本文介绍了透镜—光栅—透镜(LGL)光谱仪。在OpticStudio中完成对光谱仪的设置后,对其关键设计参数进行确定和讨论。

LGL光谱仪的基本设置

LGL光谱仪的基本设置如下:

图片

多色光通过入射针孔进入光谱仪,从而产生发散光束。然后,使用准直透镜生成平行光线。后面的透射式衍射光栅是光谱仪的核心元件,它可以根据光束的波长(即颜色)改变光束的方向。最后,聚焦透镜将光束会聚在探测器上。每种波长的光线会聚在探测器上不同的位置,通过将测量到的强度作为探测器上位置的函数,可以得到光线的光谱。

第一种方法,在OpticStudio中使用近轴元件对该设置进行建模。这样做可以忽略像差和优化问题,这些问题在文章 "如何构建光谱仪——实际应用"中讨论。另一方面,LGL光谱仪适用于理解光谱仪的基本物理概念及其分辨率。

在OpticStudio中建立近轴LGL光谱仪模型

系统设置

首先,在系统选项 ( System Explorer ) 中设置系统的基本参数。按照下图设置入瞳直径 ( Entrance Pupil Diameter ) (稍后将看到孔径如何影响光谱仪的性能):

图片

在此光谱仪中,要分析波长范围为:λmin=400 nm到 λmax = 700  nm的可见光,波长带宽为:Δλ= 300 nm。因此,设置三个波长,其中两个波长处于光谱的边缘,中心波长为:λ0 =550 nm,后者为主波长:

图片

准直透镜

完成以上操作后,可以继续使用光谱仪中的第一个元件,并在镜头文件中添加第一行。假设光来自点光源(对应于针孔)。使用焦距为30 mm的近轴透镜,将其置于针孔后30 mm处,将产生准直光束。插入另一个厚度为30 mm的表面,以表明准直透镜和衍射光栅之间的距离:

图片

所设计系统的三维布局图(3D Layout)如下所示:

图片

衍射光栅

光谱仪中的下一个元件是透射式衍射光栅。在OpticStudio中使用光栅之前,先仔细了解一下它,因为它是光谱仪的关键元件。

光栅本质上是带有平行排列的若干等距狭缝的光阑。为了进行简化,先来看看只有两个狭缝的光栅(俯视图):

图片

已经对入射光束进行了准直,所以光束中的所有光线彼此平行。如果考虑穿过两个狭缝(红色箭头)的两条光线,我们可以计算这两条光线(蓝色部分)之间路径差Δs ,它是两个狭缝之间的距离 d ,入射角 α 和衍射角 β 的函数:

图片

我们希望这个路径差的大小相当于一个波长,以便在两条光线之间产生相长干涉:

图片

可以通过前两个方程计算出衍射角:

图片

该公式描述了多色光在光谱仪中是如何分解为不同波长的。可以看到,衍射角只取决于波长( 对于给定的 α 和d )。

将双狭缝的概念推广到具有多个狭缝的栅格中,使更多特定波长的光线聚集在衍射角的方向上,从而提高衍射效率。

关于衍射光栅及其效率、闪耀角等特性的更多讨论可以在知识库文章 "ZEMAX | 利用RCWA方法模拟表面浮雕光栅的衍射效率"中找到。我们只需要记住,衍射光栅的特性是由两个相邻狭缝之间的距离决定的,并且将准直光束转化为其波长的函数。

在光谱仪中使用折射式光栅时,一般使其入射角等于中心波长的衍射角,即:

图片

使用公式(1)可得:

图片

本文示例中假设d = 0.5µm ,可得:α= 33.367°。考虑到这一点,我们在OpticStudio中设置了衍射光栅。首先,在镜头文件中引入坐标断点,并将倾斜X ( Tilt About X )设置为33.367°,以使光线倾斜度与入射角大小相同。在下一行添加衍射光栅 ( Diffraction Grating ),设置刻线/µm(Line/µm) (d的倒数)为2,并将衍射级次设为 -1。需要另一个坐标断点来达到衍射角的参数需求。此处,在倾斜X上设置主光线 ( Chief Ray ) 求解,使坐标自动跟随主波长:

图片

聚焦透镜和探测器

光谱仪的最后一组元件是聚焦透镜和探测器。我们在镜头文件中添加了四行,分别为:光栅和聚焦透镜之间的距离(30 mm),近轴聚焦透镜(焦距ff = 30 mm ),用来满足焦距的空间和探测器平面:

图片

一旦调整了设置,三维布局图如下图所示:

图片

最后一个设置是关于三维布局图中的光线,在上一张图像中用红色圆圈标记出了OpticStudio绘制太多光线的部分。可以通过在镜头文件中设置表面 6的属性来消除它们:

图片

现在已经完成了近轴LGL光谱仪的设计,打开标准点列图 ( Standard Spot Diagram ) 来查看最初选择的三个波长在像面上 (即探测器上)的光斑大小:

图片

可以看出光斑尺寸非常小,这仅仅是因为我们选择了近轴透镜并使用了几何光线追迹才有可能实现。在真实情况中,由于衍射效应,会使光斑更大。这就是本文的最后一部分将要讨论的内容。但是,我们先要仔细观察聚焦透镜和探测器,以了解它们的尺寸。

光谱仪分辨率

探测器宽度

探测器宽度由三个参数定义:光谱仪的带宽 Δλ=λmax -λmin,光栅狭缝的距离 d和聚焦透镜的焦距ff。其中,Δλ和d通常是先决条件,可以通过选择聚焦透镜以匹配探测器的几何尺寸。

通过光谱仪的最小和最大波长(本例中分别为400 nm和700 nm),可以利用公式1计算出最小和最大衍射角,结果是 βmin = 14.48° 和 βmax = 58.21°,这可以使用 OpticStudio中的单光线追迹( Single Ray Trace ) 数据来验证,以最小和最大波长来进行边缘光线追迹:

图片

当光线以最小和最大角度通过聚焦透镜时,会出现以下情况:

图片

其中ff为聚焦透镜的焦距,L为探测器宽度。因此,可以使用下式计算探测器的宽度:

图片

在本例中,得到L = 24.16 mm。可以在OpticStudio中再次验证这个结果。一个简单而近似的方法就是使用三维布局图中的测量 ( Measure )工具直接测量:

图片

更复杂和精确的方法是使用操作数。为此,打开评价函数编辑器 ( Merit Function Editor ),输入以下内容并更新窗口(点击红色箭头所指按钮):

图片

通过REAY操作数可以得到表面9(探测器)上实际光线的y坐标。我们选择波长1和波长3(分别为400 nm和700 nm)对应的y坐标值 ,DIFF操作数用于计算这两个y坐标之间的差值。得出的结果正好是我们之前分析计算出的值。

之前考虑的重要结果:一旦定义了光谱仪的带宽,衍射光栅产生的最小和最大折射角度就确定了(公式1)。最小和最大衍射角与聚焦透镜的焦距ff一同定义了探测器宽度(公式2)。大尺寸探测器需要较大ff ,反之亦然。

重新映射探测器上的波长

查看点列图时,我们注意到,尽管在波长范围内均匀分布,这三个波长的光斑在探测器上并不是均匀分布的。此效应来自公式1中的正弦波,必须通过将探测器上的位置重新映射到相应的波长来解决光谱仪中的这个影响。

我们可以在OpticStudio中通过扫描光谱仪带宽的波长并记录光线在探测器上的位置,来计算映射函数(重映射函数的逆函数)。另一种有效的解决方法就是使用Zemax编程语言(Zemax Programming Language,ZPL)宏。下载附件中的宏Mapping_Function_Resolution.ZPL,并将其保存在Zemax\Macros文件夹中,打开并查看它的结构。该宏首先获取系统的波长(操作数WAVL),然后计算探测器上光线的y坐标(操作数RAYY),同时使用多重结构循环遍历波长。执行后绘制的结果图显示了映射函数:

图片

光谱分辨率

宏Mapping_Function_Resolution.ZPL绘制第二个图,显示光谱仪的光谱分辨率R,即部分带宽δλ 与每单位宽度探测器 ΔL的比值:

图片

这里定义的光谱分辨率是映射函数导数的倒数。因此,在相同的宏中计算:

图片

光谱分辨率越低,探测器单位宽度的带宽就越小。将光谱分辨率与探测器的像素宽度相乘,最终得到光谱仪的分辨率,这是光谱仪重要的特征值。

根据公式2,我们可以通过选择更大焦距的聚焦透镜,以在更大的探测器宽度上扩展光谱,从而提高光谱仪的光谱分辨率。然而,这种策略行不通。我们还必须考虑到探测器上的光斑大小受到衍射的限制,这为光谱仪的设计带来了新的约束。

衍射极限

可以将光谱仪看作是将物体(入射针孔,即点光源)映射到像面(探测器)的光学系统。像OpticStudio那样使用光线来计算光在光学系统中的传播是非常有效的,但光线追迹的结果并不完全符合实际情况。点光源不是无穷小的点(对应锐利的图像),所得到的图像将是模糊的。这种效应是由于衍射限制了光学系统的分辨率。

OpticStudio有各种各样的工具来分析衍射。此处考虑了点列图中的艾里斑(Airy disk)(衍射极限的点列斑尺寸),其数值在点列图注释中:

图片

瑞利判据也使用了艾里斑。瑞利准则指出,当两个点光源的距离大于它们的艾里斑半径时,就可以将它们识别出来。光谱仪中两个点光源之间的距离对应带宽的一部分 δλ ,如前一节中所述。

瑞利准则直接影响探测器像素大小的选择,像素小于艾里斑半径是没有用的,因为它们会使光谱仪的衍射极限分辨率过采样。

艾里斑半径的计算公式为:

图片

其中,F#是工作F 数,等于聚焦透镜的焦距 ff 除以系统的口径。由此关系可以得出:

  1. 光谱仪的衍射极限分辨率随波长的变化而变化。光学设计无法消除这种影响。

  2. 选择大焦距 ff 的聚焦透镜,将增加F数,增加艾里斑的大小。这种效应与前一节中讨论的探测器宽度L密切相关(公式2):探测器宽度也会增加。最后,只是在更大的探测器上得到更大的艾里斑,而不提高光谱仪的分辨率。

  3. 选择大的系统孔径将减少F数,以减少艾里斑的大小。

系统参数的选择

假设光谱仪的带宽和光栅是预先设定好的,则有两个参数可以调整,以最大限度地利用光谱仪:

系统孔径

系统孔径直接影响到艾里斑的大小,即光谱仪的衍射极限分辨率(公式3)。尽可能选择大的孔径是好的策略,因为这会产生小的艾里斑。

聚焦透镜

对聚焦透镜的焦距 ff 的选择更为精细。最重要的是完全照亮探测器(公式2)。如果探测器很小,ff 也很小,这样就能得到更紧凑的光谱仪。另一方面,较小的焦距会产生更多的像差。因此,应该尽量选择大的探测器。光谱仪的衍射极限分辨率不受聚焦透镜的影响,因为艾里斑的大小与探测器的宽度成比例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1040213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

八、伯努利朴素贝叶斯算法(Bernoulli NB,Bernoulli Naive Bayes)(有监督学习)

Bernoulli Naive Bayes:用于多元伯努利模型的Naive Bayes分类器 一、算法思路 与多项式分类器一样,该分类器也适用于离散数据。不同之处在于,多项式分类器适用于出现次数,而伯努利分类器则适用于二进制/布尔特征。 二、官网API…

Unity当中的灯光类型

文章目录 前言一、Directional平行光二、Point点灯三、Spot 聚光灯四、Area面光灯,只用于烘培 前言 Unity当中的灯光类型 一、Directional平行光 Unity当中最重要的灯管类型,类似现实中的太阳光 二、Point点灯 类似现实中的灯泡,萤火虫&a…

Celery结合flask完成异步任务与定时任务

Celery 常用于 web 异步任务、定时任务等。 使用 redis 作为 Celery的「消息代理 / 消息中间件」。 这里通过Flask-Mail使用qq邮箱延时发送邮件作为示例 pip install celery pip install redis pip install Flask-Mail1、使用flask发送邮件 使用 Flask-Mail 发送邮件需要进行…

1688-阿里巴巴批发网(获取优惠券信息)

item_get_app-获取1688app上原数据 为了进行电商平台 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个1688 应用注册一个应用程序键(App Key) 。 3)下载1688 API的SDK并掌握基本的API基…

惠普P1108激光打印机报错光束探测错误检修

在使用打印机的过程中,有时候会遇到光束探测错误的问题,导致打印机无法正常工作。这个问题可能是由多种原因引起的,包括硬件故障、驱动程序错误、操作系统问题等。在这里,我将为您提供一些解决光束探测错误的方法。 故障描述&…

SpringBoot 学习(七)Swagger

7. Swagger 7.1 简介 便于前后端集成联调RestFul Api 文档在线生成工具 > Api 文档与 Api 定义同步更新直接运行&#xff0c;在线测试 Api 接口 7.2 springboot 集成 swagger (1) 导入依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger…

清华用7个ChatGPT模拟《狼人杀》,结果出乎意料!

为了验证大语言模型的沟通、规划、反思等拟人化能力&#xff0c;清华研究团队发布了一篇名为“探索大语言模型在交流游戏中的应用&#xff1a;《狼人杀》实验”的研究论文。 结果显示&#xff0c;通过ChatGPT&#xff08;GPT -turbo-0301&#xff09;构建的7个玩家&#xff0c…

【高云FPGA系列教程(11):MultiButton按键驱动模块移植】

文章目录 1. MultiButton简介2. MultiButton代码获取3. MultiButton移植4. 测试与运行本文是高云FPGA系列教程的第11篇文章。 1. MultiButton简介 MultiButton, 一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构…

nssm部署jar包

nssm部署jar包 1、软件下载 官方传送门 csdn下载地址 2、安装服务 F: cd F:\服务启动目录 set JAVA_HOMEF:\Program Files\Java\jdk1.8.0_181 set CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar; set Path%JAVA_HOME%\bin; java -Dfile.encodingutf-8 -…

解决Vue设置图片的动态src不生效的问题

一、问题描述 在vue项目中&#xff0c;想要动态设置img的src时&#xff0c;此时发现图片会加载失败。在Vue代码中是这样写的&#xff1a; 在Vue的data中是这样写的&#xff1a; 我的图片在根目录下的static里面&#xff1a; 但是在页面上这个图片却无法加载出来。 二、解决方案…

使用原生html<table>构造复杂table表

<table border data-sort"sortDisabled" align"center" class"table"><tbody><tr class"textarea1"><td rowspan"1" colspan"2" class"background-gray"><label>日期<…

更新andriod studio版本,项目编译报could not find org.junit.jupiter:junit-jupiter

原本使用Android Studio 版本是4.1.1&#xff0c;现更新为 点击build -》 build bundle -》build apk&#xff0c;项目报 Could not determine the dependencies of task :app:compileDebugUnitTestJavaWithJavac. > Could not resolve all task dependencies for configur…

前脚收费,后脚道歉?Unity收费新规引众怒,Epic承诺虚幻引擎永久免费

&#xfeff;当你还在纠结开发游戏用Unity引擎还是UE虚幻引擎的时候&#xff0c;Unity已经给游戏开发领域重重一拳。 &#xfeff;Unity作为一款全球范围内广泛使用的游戏引擎&#xff0c;因其价格亲民且灵活而备受众多开发者的青睐。然而在9月12日&#xff0c;Unity突然宣布计…

分析大疆官网根据ip自动跳转到指定域名

如果cookie存在region且有效&#xff0c;跳转到指定域名&#xff0c; 如果cookie存在region且无效&#xff0c;跳转到默认域名&#xff0c; 如果禁用cookie或者cookie中没有region&#xff0c;根据ip自动判断所在地区&#xff0c;跳转到指定域名 1、浏览器地址栏输入dji.com&am…

2018-2022年盟浪 ESG数据

2018-2022年盟浪 ESG数据 1、时间&#xff1a;2018-2022年 2、指标&#xff1a;证券代码、证券简称、盟浪ESG评级、省份、城市、所属证监会行业名称[交易日期] 最新收盘日[行业级别] 大类行业、所属证监会行业代码[交易日期] 最新收盘日[行业级别] 大类行业 3、范围&#xf…

图像练习-计算平行线距离opencv(03)

原图 //对输入图像进行细化 cv::Mat ThinLine(const cv::Mat& matsrc, const int& iterations) {//CvSize size cvGetSize(src);cv::Mat dst matsrc.clone();//拷贝一个数组给另一个数组int _iwidth dst.cols;int _iheight dst.rows;int n 0, i 0, j 0;for (n …

【每日一题】658. 找到 K 个最接近的元素

658. 找到 K 个最接近的元素 - 力扣&#xff08;LeetCode&#xff09; 给定一个 排序好 的数组 arr &#xff0c;两个整数 k 和 x &#xff0c;从数组中找到最靠近 x&#xff08;两数之差最小&#xff09;的 k 个数。返回的结果必须要是按升序排好的。 整数 a 比整数 b 更接近 …

抖音SEO矩阵系统源码开发搭建

1. 确定需求和功能&#xff1a;明确系统的主要目标和需要实现的功能&#xff0c;包括关键词研究、短视频制作、外链建设、数据分析、账号设置优化等方面。 2. 设计系统架构&#xff1a;根据需求和功能确定系统的架构&#xff0c;包括前端、后端、数据库等部分的设计&#xff0…

计算机组成原理之硬件的内部结构,拆开单独的硬件,查看硬件组成部分的结构和功能。

大家好&#xff0c;欢迎阅读《计算机组成原理》的系列文章&#xff0c;本系列文章主要教内容是从零学习计算机组成原理&#xff0c;内容通俗易懂&#xff0c;大家好好学习吧&#xff01;&#xff01;&#xff01; 更多的优质内容&#xff0c;请点击以下链接查看哦~~ ↓ ↓ ↓ …

【加载数据--自定义自己的Dataset类】

【加载数据自定义自己的Dataset类】 1 加载数据2 数据转换3 自定义Dataset类4 划分训练集和测试集5 提取一批次数据并绘制样例图 假设有四种天气图片数据全部存放与一个文件夹中&#xff0c;如下图所示&#xff1a; ├─dataset2 │ cloudy1.jpg │ cloudy10.jpg │ …