当前位置: 首页 > news >正文

【Zemax光学设计实训三】---激光缩束镜的设计优化

前言与目录

技术设计要求:

设计一个激光扩束镜,使用的波长为1064nm,输入光束直径为10mm,输出光束的直径为2mm,且输入光束和输出光束平行(即平行光入射,平行光出射)。要求只使用两片镜片(材料均为BK7),设计必须是伽利略式的(没有内部焦点),在镜片之间的间隔必须不超过50mm,只许使用1片非球面。


目录

一、参数分析

二、Zemax参数设置

三、初始结构设计

四、光学系统优化

五、像质分析:


 

一、参数分析

  1. 波长(𝜆λ):1064 nm
  2. 输入光束直径(𝐷𝑖𝑛​):10 mm
  3. 输出光束直径(𝐷𝑜𝑢𝑡):2 mm
  4. 镜片材料:BK7
  5. 镜片之间的间隔:不超过200 mm
  6. 非球面镜片数量:1

伽利略式扩束镜由两个透镜组成,第一个透镜(L1)是一个会聚透镜,第二个透镜(L2)是一个发散透镜。输入光束通过L1后会聚,然后通过L2发散,形成平行输出光束。

扩束镜的放大率𝑀M由输出光束直径与输入光束直径的比值给出:

𝑀=𝐷𝑜𝑢𝑡/𝐷𝑖𝑛=2 mm/10 mm=0.2;该设计为一个相当于0.2倍的扩束镜

只能使用一片非球面透镜,我们可以选择L1作为非球面透镜。非球面透镜可以校正球面像差;

 

二、Zemax参数设置

1、设置入瞳直径为10mm;由于入射光斑为10mm;设置波长为1.064um;由于是平行光入射,直接视场设置成一个就行,不需要额外设置;由于是平行光输出(可以将无焦像空间勾选);

b2b2781670a4448c9943d3c1a4814ed0.png

图1

 

三、初始结构设计

由于这个是一个伽利略式的扩束镜形式,所以可以直接设置两个平板进行优化,为方便,我随意设置了一个初始结构,如下图:

d8bdca8829b14d36821df2d6ef031dea.png

图2

 

透镜编辑窗初设参数(根据设计要求,需要先初步设定第一面和最后一面的曲率半径,形成初步结构。),由于项目要求,两曲面的曲率半径可优化,厚度可优化,但是系统长度需要控制50mm,后续在优化操作数里面进行控制;

初始结构的光线如图:

7bb741ad8de34c0e854511951948f3f1.png

图3

 

四、光学系统优化

1、由于由两片透镜组成,那么我们可以将两个透镜的前后曲率半径设置为变量;以及透镜的厚度及空气间隔也是可变得优化量,但是为了方便,还是一步一步进行优化;

299512e2ca70462cb1a2d507a967b7fe.png

设置变量

 

2、打开评价函数进行优化

在开始优化之前,我们需要设置评价函数,首先打开评价函数优化向导,设置成波前优化,类型为RMS;参考质心;并设置空气得边界条件:最小0.5mm,最大50,边缘厚度最小0.1;

8b1a04156d0a4d6eb6ae8ac31daa3ee4.png

评价函数优化向导

 之后添加我们自己得优化函数;限制第一个面和最后一个面得总长度小于50mm,并且限制输出得光束大小为2mm;

7fcfbda301474593a3d640fe5c9c734e.png

函数说明:

        TTHI——用于计算第一面到最后面的总长度。

        OPLT——控制系统的长度范围不超过某个数值(不等式约束)。

        REAY——控制出射面边缘光束的高度。

 

3、开始优化

点击执行优化,可以看到,评价函数从4.403一下就优化到很小了;

f9f97aaadf3c43f9a74f95e3284c1413.png

优化前参数

 

 优化后,得到下图:

058bd32d638b412db8a608e7c233903b.png

优化后

 

五、像质分析:

光扇图和光程差图:

bab592a697b64917ae1129897e9adc5f.png

波前图:

000a67ed1ce04617b3ad129154107f7c.png

点列图:

21b7f01e81874bc3b8f36fa0c48a1f0d.png

 

总结:由于本次的光学条件很轻松,简单优化便达到了理想的像质,没有什么难度,所以就用来复习一下zemax的使用流程;在这次优化设计中,未用到非球面,且厚度变量也未使用到,属于非常简单的光学系统了,后续继续更新光学系统的设计和优化

 

 

 


--

be4403daf2544337b9bc425fe1aa0a50.jpeg

本篇文章为个人学习笔记,供学习和复习使用。未经允许不得转载或用于商业用途。 

 

相关文章:

【Zemax光学设计实训三】---激光缩束镜的设计优化

前言与目录 技术设计要求: 设计一个激光扩束镜,使用的波长为1064nm,输入光束直径为10mm,输出光束的直径为2mm,且输入光束和输出光束平行(即平行光入射,平行光出射)。要求只使用两片…...

TCP/IP协议簇自学笔记

摘抄于大学期间记录在QQ空间的一篇自学笔记,当前清理空间,本来想直接删除掉的,但是感觉有些舍不得,因此先搬移过来。 曾经,我只知道socket函数能进行网络间数据的通信,知道tcp/ip协议也是用来进行网络数据…...

Spring Boot教程之十一:获取Request 请求 和 Put请求

如何在 Spring Boot 中获取Request Body? Java 语言是所有编程语言中最流行的语言之一。使用 Java 编程语言有几个优点,无论是出于安全目的还是构建大型分发项目。使用 Java 的优点之一是 Java 试图借助类、继承、多态等概念将语言中的每个概念与现实世…...

计算机网络(二)

ip地址:11010010:01011110:00100100:00010100 子网掩码:11111111:11111111:11111111:11000000 and :11010010:01011110:00100100:00000000 210.94.36.0的下一站为R1 因为255为11111111 192为&#xff…...

如何在Python中进行数学建模?

数学建模是数据科学中使用的强大工具,通过数学方程和算法来表示真实世界的系统和现象。Python拥有丰富的库生态系统,为开发和实现数学模型提供了一个很好的平台。本文将指导您完成Python中的数学建模过程,重点关注数据科学中的应用。 数学建…...

JavaSE——类与对象(5)

一、抽象类 1.1为什么需要抽象类 父类的某些方法,不确定怎么实现,也不需要实现。 class Animal{public String name;public Animal(String name){this.name name;}public void eat()//这里实现了也没有意义{System.out.println("这是一个动物&am…...

Istio笔记01--快速体验Istio

Istio笔记01--快速体验Istio 介绍部署与测试部署k8s安装istio测试istio 注意事项说明 介绍 Istio是当前最热门的服务网格产品,已经被广泛应用于各个云厂商和IT互联网公司。企业可以基于Istio轻松构建服务网格,在接入过程中应用代码无需更改,…...

面试小札:Java如何实现并发编程

多线程基础 继承Thread类 定义一个类继承自 Thread 类,重写 run 方法。在 run 方法中编写线程要执行的任务逻辑。例如: java class MyThread extends Thread { Override public void run() { System.out.println("线程执行的任务…...

java-a+b 开启java语法学习

代码 (ab) import java.util.Scanner; //导入 java.util包中的Scanner 类,允许读取键盘输入数据public class Main { // 创建一个公共类 Mainpublic static void main(String[] args) {//程序入口点,main方法Scanner scanner new Scanner(…...

RNN模型文本预处理--数据增强方法

数据增强方法 数据增强是自然语言处理(NLP)中常用的一种技术,通过生成新的训练样本来扩充数据集,从而提高模型的泛化能力和性能。回译数据增强法是一种常见的数据增强方法,特别适用于文本数据。 回译数据增强法 定义…...

maven 中<packaging>pom</packaging>配置使用

在 Maven 项目的 pom.xml 文件中, 元素用于指定项目的打包类型。默认情况下,如果 元素没有被显式定义,Maven 会假设其值为 jar。但是,当您设置 pom 时,这意味着该项目是一个 POM(Project Object Model&…...

【Python中while循环】

一、深拷贝、浅拷贝 1、需求 1)拷贝原列表产生一个新列表 2)想让两个列表完全独立开(针对改操作,读的操作不改变) 要满足上述的条件,只能使用深拷贝 2、如何拷贝列表 1)直接赋值 # 定义一个…...

【深度学习】服务器常见命令

1、虚拟环境的安装位置 先进入虚拟环境 which python2、升序查看文件内容 ls -ltr3、查看服务器主机空间使用情况 df -hdf -h .4、查看本地空间使用情况 du -sh ./*du -sh * | sort -nr5、查找并删除进程 # 查找 ps aux# 删除 kill -KILL pid6、查看服务器配置 lscpuuna…...

技术分析模板

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 例如: openAI 的 GPT 大模型的发展历程。 整体架构流程 提示:这里可以添加技术整体架构 例如: 在语言模型中,编码器和解码器…...

python:文件操作

一、文件路径 在Windows系统中,每个磁盘都有自己的根目录,用分区名加反斜杠来表示。我们定位文件的位置有两种方法,一种是绝对路径,另一种是相对路径。绝对路径是从根目录出发的路径,路径中的每个路径之间用反斜杠来分…...

Nginx和Apache有什么异同?

Nginx和Apache都是广泛使用的Web服务器软件,它们各自具有独特的特点和优势,适用于不同的应用场景。以下是关于Nginx和Apache的不同、相同以及使用区别的详细分析: 一、不同点 资源占用与并发处理能力: Nginx使用更少的内存和CPU资…...

泰州榉之乡全托机构探讨:自闭症孩子精细动作训练之法

当发现自闭症孩子精细动作落后时,家长们往往会感到担忧和困惑。那么,自闭症孩子精细动作落后该如何训练呢?今天,泰州榉之乡全托机构就来为大家详细解答。 榉之乡大龄自闭症托养机构在江苏、广东、江西等地都有分校,一直…...

Cookie跨域

跨域:跨域名(IP) 跨域的目的是共享Cookie。 session操作http协议,每次既要request,也要response,cookie在创建的时候会产生一个字符串然后随着response返回。 全网站的各个页面都会带着登陆的时候的cookie …...

qt QGraphicsPolygonItem详解

1、概述 QGraphicsPolygonItem是Qt框架中QGraphicsItem的一个子类,它提供了一个可以添加到QGraphicsScene中的多边形项。通过QGraphicsPolygonItem,你可以定义和显示一个多边形,包括其填充颜色、边框样式等属性。QGraphicsPolygonItem支持各…...

“harmony”整合不同平台的单细胞数据之旅

其实在Seurat v3官方网站的Vignettes中就曾见过该算法,但并没有太多关注,直到看了北大张泽民团队在2019年10月31日发表于Cell的《Landscap and Dynamics of Single Immune Cells in Hepatocellular Carcinoma》,为了同时整合两类数据&#xf…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

ios苹果系统,js 滑动屏幕、锚定无效

现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...