Ansys Speos|进行智能手机镜头杂散光分析

图片

本例的目的是研究智能手机Camera系统的杂散光。杂散光是指光向相机传感器不需要的散光光或镜面光,是在光学设计中无意产生的,会降低相机系统的光学性能。

在本例中,光学透镜系统使用Ansys Zemax OpticStudio (ZOS)进行设计,并使用新的“Zemax Importer”工具一键导入镜头系统到Speos中进行系统级杂散光分析。所使用的光学机械参数和透镜边缘可以在CAD平台上进行设计,然后在Ansys Speos中进行修改。这个例子主要涵盖了整个工作流程中的Speos部分,介绍了杂散光分析的概念,并演示了Speos的功能:Zemax Importer工具, light expert (LXP)光线追迹和序列检测杂散光。

操作流程概述

图片

上图是使用Ansys工具分析相机系统杂散光的典型工作流程。工作流程可分为四个部分:1. 使用“Zemax Importer”工具导入ZOS镜头设计到Speos。2. 检测所有可能的关键太阳位置和整个系统的光泄漏。3.相机视场内四个外环境太阳位置的杂散光模拟(可选)。4. 分析杂散光路径序列,对外环境太阳位置的杂散光进行抑制。

第一步:使用“Zemax Importer”工具导入OS镜头设计到Speos

使用“Zemax导入工具”导入ZOS镜头设计到Speos。在这里,使用ZOS设计的高效手机相机镜头系统,通过使用Zemax importer工具可以读取ZOS透镜数据参数,并根据它们的数学表示自动重建每个透镜,作为基于CAD的Speos透镜特性几何数据,并访问所有透镜参数。此外,该工具将ZOS材料转换为Speos材料格式,并将光学特性应用到透镜上。该成像过程使用一个照度传感器。所有几何图形的参考点、原点和照度传感器对应于图像平面的位置。然后将镜头系统添加到光学机械部分(灰色)和镜头边缘(黄色)。

图片

1. 在Speos仿真界面,点击Zemax import工具,然后选择*.ZMX的Zemax镜头设计数据,工具会自动转换Zemax的镜头数据参数、材料和能量接收器信息,并将其转换为Speos功能数据。

图片

2. 为了清晰显示镜头系统,可以以不同的颜色显示不同的镜头数。

图片

3. 定义环境太阳光源入光到镜头系统中,并在direct simulation选择source、geometry、sensor运算仿真,激活light expert为true,并在sensor中勾选LXP选项。

图片

第二步:检测所有可能的关键太阳位置和整个系统的光泄漏

使用光线逆向追踪模拟方法在一个direct模拟中研究所有可能的临界太阳位置。这是一种逆向追迹方法,从成像sensor发送光线通过相机系统到天空。通过这种方法,还可以检测机械系统中的漏光。Speos光线跟踪算法考虑了所有几何形状的所有材料行为。此外,将根据相机视场内外的临界和光线路径对这些区域进行分类。相机视场内的光源可以在镜头表面经历多次二次反光,导致鬼反光,镜头光晕在成像仪上。视场外的光源会对机械和光学零件造成杂散光散光。通过利用Speos LXP功能,可以在强度结果上可视化和导出这些特定区域的光线路径。

对于本例,假设相机系统水平对称。因此,将强度传感器作为半球体放置在系统的顶部。使用LXP功能,可以选择任意区域并显示光线传播路径。

图片

第三步:视场内四个太阳位置的杂散光模拟

在这一步中,运行了一个完整的系统杂散光模拟在相机视场内的四个不同的太阳位置(从0°到15°)。模拟使用Speos GPU运行,得到完整的相机系统在相机成像sensor上的杂散光结果为四个太阳位置分别的成像效果。

图片

图片

第四步:分析杂散光路径序列,对一个太阳位置的杂散光进行抑制

在第4步中,将通过利用Speos LXP和“序列检测”功能,识别最关键的光线路径序列(根据传感器的照度)和导致5°太阳位置的成像仪上杂散光的物体相互作用。此外,将展示如何解决明亮的鬼像。

1. 显示5°太阳位置成像结果,打开xmp,点击measure,选择杂光区域,并显示其数据结果。

图片

图片

2. 在XMP结果中,点击tools工具,sequence detection得到序列分层光线结果,得到序列层以发现从层1到层20的光线路径序列,这些序列是根据能量到达传感器的顺序排列的。

图片

3. 举例分析,序列20的光线沿着从光源发出的直接顺序路径。穿过前四个透镜,直到它们被镜面反光到物体10的正面。单击对象10以突出显示3D视图中的几何图形。

图片

4. 同样的工作流程可以应用于结果中的其他区域,以识别导致杂散光的元素。

图片

5. 一旦对系统进行了分析,就可以与设计和机械团队讨论不同光学元件对杂散光的影响。光学抛光表面的菲涅耳反光和透光率分别为4%和96%。通过改变表面的透光率,可以控制镜面杂散光。AR涂层减少了光学系统中的反光。通过在物体10的正面应用AR涂层作为面光学特性(FOP),可以消除鬼像点。

图片

重要参数设置

meshing网格设置是获得正确仿真结果的关键。它们定义了将被模拟的几何图形的质量。网格可以得到更好的结果,但也需要更长的模拟时间。粗糙的网格会导致较差的结果,特别是对于精密的光学元件。网格设置成与机身尺寸成比例,并在所有光学元件上应用了精细的局部网格。关于网格设置的更多细节可以Speos user guide在meshing中找到。

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

字符串函数、内存函数——补充

目录 前言 1、strchr函数 1-1 函数介绍 1-1-1 函数功能 1-1-2 函数原型 1-1-3 函数参数 1-1-4 所属库 1-1-5 函数返回值 1-2 函数简单使用 1-3 函数使用场景 1-4 函数的使用总结 1-4-1 注意事项 2、strrchr函数 2-1 函数介绍 2-1-1 函数功能 2-1-2 函数原型 2…

ubuntu入门

基础命令 cd 切换命令 ls 查看当前目录下所有的文件 cp a.c b.c 拷贝a.c 到 b.c touch a.c 创建a.c文件 mkdir file 创建文件夹file rm file 删除文件 rmdir 删除test文件夹 rmdir test/ mv 移动文件 mv a.c b.c 把a.c 替换成b.c ifconfig 查看电脑网络信息 rm xx 删…

人工电销机器人在销售行业中的重要性和作用,以及未来市场的发展前景

在追求更高效、更智能的时代,各行各业都在积极寻求新技术、新应用来提升业务流程的效率和质量。对于销售行业而言,人工电销机器人已经成为越来越受欢迎的工具之一。我们将深入探讨人工电销机器人在销售行业中的重要性和作用,以及未来市场的发…

31.Gateway网关-跨域问题

跨域 1.域名不同:www.baidu.com和www.taobao.com,www.taobao.org 2.域名相同,端口不同。localhost:8080和localhost:8081 跨域问题 浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题。 解决方案 CORS 浏览器询…

linux安装Redis 7.2.4笔记

一.保姆级安装 1.下载Redis 7.2.4安装包 sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz2.解压,可以指定 sudo tar -zvxf redis-7.2.4.tar.gz 3.检测并安装 GCC 编译器: yum 是基于 Red Hat 的 Linux 发行版(如 CentOS、…

【webrtc】MessageHandler 5: 基于线程的消息处理:以PeerConnection信令线程为例

peerconn的信令是通过post 消息到自己的信令线程消息来处理的PeerConnectionMessageHandler 是具体的处理器G:\CDN\rtcCli\m98\src\pc\peer_connection_message_handler.hMachinery for handling messages posted to oneself PeerConnectionMessageHandler 明确服务于 signalin…

分布式与一致性协议之Raft算法(四)

Raft算法 Raft是如何解决成员变更问题的 在日常工作中,你可能会遇到服务器故障的情况,这时你需要替换集群中的服务器。如果遇到需要改变数据副本数的情况,则需要增加或移除集群中的服务器。总的来说,在日常工作中,集…

进一步了解android studio 里 AGP,gradle等关系

目录 (1) gradle是什么 (2) 工程的jdk版本,及引用包的编译版本的关系 实践 问题与解决 编译成功与运行成功 编译成功 运行成功 (1) gradle是什么 Gradle是一个构建工具,它是…

Mac 版 安装NVM

优质博文IT-BLOG-CN NVM(Node Version Manager)是一个用于管理多个Node.js版本的工具。它允许开发者在同一台机器上安装和切换不同版本的Node.js,以便在不同的项目中使用不同的Node.js版本。macOS用户可以使用homebrew来安装NVM。 一、安装h…

Swagger3.0(Springdoc)日常使用记录

文章目录 前言一、默认地址二、注解OperationTag 三、SpringBoot基础配置四、Swagger导入apifox五、Swagger其他配置六 knife4j 参考文章 前言 本文并不是Swagger的使用教程,只是记录一下本人的操作,感兴趣的可以看下 一、默认地址 http://localhost:…

Scala 多版本下载指南

Scala,这一功能丰富的编程语言,结合了面向对象和函数式编程的精华,为开发者提供了强大的工具来构建高效、可扩展的应用程序。随着Scala社区的不断壮大和技术的演进,多个版本的Scala被广泛应用于不同的项目与场景中。本文旨在为您提…

Redis集群模式:高可用性与性能的完美结合!

【更多精彩内容,欢迎关注小米的微信公众号“软件求生”】 大家好,我是小米,一个积极活泼、喜好分享技术的29岁程序员。今天我们来聊聊Redis的集群模式,以及它是如何实现高可用的。 什么是Redis集群模式? Redis的集群模式是为了避免单一节点负载过高导致不稳定的一种解决…

Rust Web开发实战:构建高效稳定的服务端应用

如果你厌倦了缓慢、占用大量资源且不稳定的模板化Web开发工具,Rust就是你的解决方案。Rust服务提供了稳定的安全保证、非凡的开发经验,以及能够自动防止常见错误的编译器。 《Rust Web开发》教你使用Rust以及重要的Rust库(如异步运行时的Tokio、用于Web…

3.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式:malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) (了解) 4. 常…

公共 IP 地址与私有 IP 地址区别有哪些?

​  IP 地址是分配给互联网上每个设备的唯一数字 ID。 IP 地址可以在 Internet 上公开使用,也可以在局域网 (LAN)上私有使用。本文,我们主要探讨公共 IP 地址和私有 IP 地址之间的区别。 公共IP地址:公共IP地址是用于访问Internet的向外的I…

极简shell制作

🌎自定义简单shell制作 (ps: 文末有完整代码) 文章目录: 自定义简单shell制作 简单配置Linux文件 自定义Shell编写 命令行解释器       获取输入的命令       字符串分割       子进程进行进程替换 内建命令…

WebP格式:图片压缩的新标准

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

qcheckbox互斥 也就是单选 纯代码实现 没有ui界面转到槽

1.init()函数把所有的qcheckbox找到,然后通过信号与槽,做到点击哪个qcheckbox,哪个qcheckbox就发出信号 2.checkchange()槽函数,通过42行拿到是哪个qcheckbox发出的信号&#xff0c…

Kubernetes 弃用Docker后 Kubelet切换到Containerd

containerd 是一个高级容器运行时,又名 容器管理器。简单来说,它是一个守护进程,在单个主机上管理完整的容器生命周期:创建、启动、停止容器、拉取和存储镜像、配置挂载、网络等。 containerd 旨在轻松嵌入到更大的系统中。Docke…

Python 深度学习(三)

原文:zh.annas-archive.org/md5/98cfb0b9095f1cf64732abfaa40d7b3a 译者:飞龙 协议:CC BY-NC-SA 4.0 第八章:深度学习与电脑游戏 上一章关注的是解决棋盘游戏问题。在本章中,我们将研究更复杂的问题,即训练…