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

Ansys Zemax | 模拟 AR 系统中的全息光波导:第二部分

AR 系统通常使用全息图将光耦合到波导中。本文展示了如何继续改进 本系列文章的第一部分 (点击查看)中建模的初步设计。(联系我们获取文章附件)


 

简介


 

AR 是一种允许屏幕上的虚拟世界与现实场景结合并交互的技术。

本文演示了如何继续改进在文章模拟 AR 系统中的全息光波导:第一部分中的系统。

优化系统


 

从第一部分文章的优化得到的最后系统开始优化,我们需要进一步提高其光学性能。首先,让我们收紧规格参数:

设置入瞳直径 = 4 mm
放大 FOV 到 +/- 8度
使波导薄于6 mm,如下所示

这时,你会发现当我们试图收紧设计参数时,设计将会变得不切实际。为了解决这个问题,我们需要限制设计参数,以确保光线遵循满足物理意义的路径。我们将使用评价函数中的相关操作数强制执行以下 3 个条件:

1.当光线应该在波导内部时,它们不能在波导外部传播
2.光线不能到达全息面的后方
3.光线必须从波导管的顶部射出而不撞击侧面

为了便于优化,我们首先在表面 13(设置材料为 PMMA)之后添加一个虚拟面。这个曲面将被用作一个参考曲面,以确保系统的几何形状是正确的。接下来,在表面 17 的波导出口之后添加一个坐标间断面,然后将现有的表面厚度剪切并粘贴到新的坐标间断面厚度,这个新表面将用于倾斜像面。

 

为了更清晰地观察系统视图,对表面 14 的表面属性 (Surface Properties) …绘图 (Draw ) 做如下更改:

 

与此同时,为了实现我们的目标,我们可以在设计中加入更多的变量,让设计更加自由。首先,允许全息图移动和倾斜,使用以下设置:

1.将表面厚度 5 与表面厚度 2 用拾取求解关联,缩放因子 -1 
2.将表面 2 的厚度设置为变量
3.将全息图的 X-倾斜 设置为变量
其次,将全息图 2 表面的构造 Z1、Y2、Z2 参数设置为变量,使构造光可被修改。第三,将表面 15 和表面 17 的厚度和这两个面关于 X 的倾斜度设置为变量,使波导的出口面可以移动和倾斜。

 

限制系统以符合实际情况

在添加曲面和设置变量后,下一步是利用评价函数来实现对系统的真实控制。我们使用光斑大小作为标准建立了默认评价函数,并为表面的位置上添加详细的限制。所有新添加的操作数都是为优化程序提供一个物理上实用的解决方案。你只需要下载文件“ ARWaveguide.MF ”并复制到 Documents\Zemax\MeritFunction 文件夹中,然后从评价函数编辑器中使用载入评价函数 (Load Merit Function) 按钮。下面的步骤描述了所有构成此评价函数的操作数。

 

步骤一

首先,我们将防止全息图与波导的侧面重叠,从下图你可以看到点 A 在表面 9 的右边。利用 RAGZ 求出曲面 4 上点 A 的位置,并约束其 Z 位置小于曲面 9 的 Z 位置。其次,从波导入口到全息图的距离必须是正值,使用 PLEN 操作数确保这个长度应该大于 0。

 

 

步骤二

第二,我们将点 A 限制在如图所示直线 BC 的左边,这里要用到的一个有用的概念是向量积。根据右手规则,如果你想让直线 BA 保持在直线 BC 的左边,那么诀窍就是计算出直线 BA 和直线 BC 的行列式作为判定标准,并且目标值小于零。用 RAGY 和 RAGZ 求点 B 和点 A 的坐标,用 RAGB 和 RAGC 操作数可以很容易地求出直线 BC 的单位向量。

 

 

步骤三

下一步是确保光线在表面 13 和 16 之间以及表面 16 和 19 之间的传播可行,这需要限制所有相关的 PLEN 操作数都为正数。

 

步骤四


 

第四步,按照第二步的操作将控制点 D 移至 EF 线左侧。这一次通过计算两个向量 EF 和 ED 之间的行列式来实现这个控制。

 

 

将系统进行实际限制 – 步骤五

最后的约束条件是点 F(边缘光线穿过表面 14)的 Y 位置必须大于点 D 的 Y 位置,如下图所示。为了得到点 F 的位置,我们需要使用虚拟曲面 14:

 

一旦所有这些限制都设置完毕,优化系统将实现一个物理上可行的设计。您会发现这个系统的性能受到像散的限制,这个问题可以通过用光学构造全息图替换全息图 2 来解决。

 

最后的系统可以在文章的附件中找到。

参考资料
1. Konica Minolta Technology Report Vol.1 (2004)

2. OpticStudio help files

http://www.lryc.cn/news/59866.html

相关文章:

  • 常用Git命令
  • 新手程序员被职场PUA的时候正确的化解姿势
  • LINUX_kali学习笔记
  • 第十天面试实战篇
  • YML是一种数据存储格式
  • 笔记:Java关于轻量级锁与重量级锁之间的问答
  • 有哪些通过PMP认证考试的心得值得分享?
  • 【unity learn】【Ruby 2D】角色发射飞弹
  • C++模板基础(九)
  • 【剑指 Offer】(1)
  • 每日一题 leetcode1026 2023-4-18
  • 【Python_Scrapy学习笔记(十二)】基于Scrapy框架实现POST请求爬虫
  • 《花雕学AI》02:人工智能挺麻利,十分钟就为我写了一篇长长的故事
  • 做程序员累了想要转行?我想给大家分享一下看法
  • 如果你想从事人工智能职业,学习Python吧
  • 百模大战,谁是下一个ChatGPT?
  • Revit中怎么绘制多面坡度的屋顶及生成墙
  • 【jvm系列-07】深入理解执行引擎,解释器、JIT即时编译器
  • 【GCU体验】基于PaddlePaddle + GCU跑通模型并测试GCU性能
  • 解析hash(散列)数据结构
  • 《2023金融科技·校园招聘白皮书》新鲜出炉|牛客独家
  • 文明的标志:书写系统、修建城市、使用金属器
  • 算法:将一个数组旋转k步
  • 使用大华惠智双目半球网络摄像机DH-IPC-HD4140X-E2获取人流量统计数据
  • DC插装式流量阀压力阀
  • NumPy 数组学习手册:6~7
  • 【笔试强训选择题】Day6.习题(错题)解析
  • 磁盘分区-LINUX
  • SpringAOP入门基础银行转账实例(进阶版)------------事务处理
  • 【python学习】基础篇-常用函数-format函数 格式化操作