Skip to main content

关于如何使用Zemax的RCWA工具进行EPE的仿真


yuan.chen
Zemax Staff
Forum|alt.badge.img+3

如题,这是个介绍相关资料的集合。

23/03/27:

新增一个工具包,可以快速设定grating的参数

API (CS User Extension): Diffractive DLL Setup Assistant | Zemax Community

23/11/09:

新增高效优化2D光栅的文章

 Optimization of Exit Pupil Expander with 2D out-coupler – Knowledgebase (zemax.com)

Did this topic help you find an answer to your question?

22 replies

yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • May 10, 2022

更正一下,应该是OpticStudio,不是Zemax.叫太顺口了。。

在RCWA推出之前,我们也可以仿真不同衍射级次,但是无法计算衍射效率。

相关的文章可以在这个路径找到。

HUD & AR – Knowledgebase (zemax.com)

请先服用本文章,然后再进入建模环节:

Simulating diffraction efficiency of surface-relief grating using the RCWA method – Knowledgebase (zemax.com)

建模比较长,有问题可以下方留言:

          第一篇主要是对衍射光波导做一个大致的介绍,引入了K空间的概念。

           文中提到的怎么根据波长以及折射率进行参数的计算值得一看。

           这篇讲解了基本的软件操作,使用一束平行光入射到第一个光栅,在波导中实现了全反射。

           梯形区设置转向光栅,用来对光线做90度的转向操作。第三个光栅则将光线耦出。探测器上             探测到的是出射的平行光的分布,人眼在不同位置处会观察到同一个像素点,但视网膜接收             的能量不同。在文章的最后给出了,除中心视场以外的其他视场的设置方法,注意查收。

          使用paraxial lens替代投影镜头和人眼,进行波导系统的图像仿真。

          系统MTF的计算(几何/相干)


lirong
  • Student
  • 3 replies
  • June 27, 2022

你好,part 3的附件没有“step4_check footprint.zar”这个文件


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • June 28, 2022
lirong wrote:

你好,part 3的附件没有“step4_check footprint.zar”这个文件

感谢指出,我去找一下Michael大神问问。


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • June 28, 2022
lirong wrote:

你好,part 3的附件没有“step4_check footprint.zar”这个文件

搞定啦~


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • July 22, 2022

yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • August 4, 2022

关于RCWA dll的一些资料,更新(包括可视化工具)等

OpticStudio grating tools beta function update history | Zemax Community

选一些重点写:

2022-5-13:之前的版本Stochastic mode的power计算有误,如果选择该模式,建议升级软件版本。

2022-2-9:Stochastic mode 1和2被弃用,只有0跟3的区别

 2021-08-23:引入Fast Fourier Factorization来提升金属材料关于阶次的收敛速度

2021-01-06:srg_blaze_RCWA, srg_gridwirepolarizer_RCWA, srg_step_RCWA, srg_trapezoid_RCWA支持NIL layer


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • August 5, 2022

有两个使用点经常被问到,这里提示一下:

1.想要设置多个角度或者波长的话,点选对应的框之后按insert键进行添加

2.光线信息中包含衍射级次的功能还在跟产品团队协商当中,目前如果要优化多个衍射级次的效率,需要建立多重结构进行不同级次的光线追迹仿真。该方法的限制点在于,无法在单一的结构当中仿真出现多种级次交替生成的情况。


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • August 5, 2022

顺带写几个EPE文章注意点。有些词懒得去找中文翻译了,大家将就看一下。其实KBA里面都有提到,这边就当是提纲了,有些我觉得不用重点强调的,大家也可以去看看:

1.耦入的光栅:

参数在diffraction grating中设置,它的位置跟放在它之前的rectangular volume的表面1的位置是重合的。

该表面在光线追迹模型中假设是没有厚度的。微结构主要是用来计算衍射效率跟偏振用。

基体的表面0,也就是侧面,建议设置成吸收,这样提升光线追迹效率。

入射的光线应该是准直的。

2.转向光栅:用于扩瞳以及90度转向

光栅的建模依靠的是extruded object(使用UDA) 跟diffraction grating的布尔运算。不直接用UDA作用于diffraction grating,是因为这个物体类型不支持UDA。

贴心的Michael为了让大家操作起来更丝滑,加上以上模型不能正确处理光线的相位,创建了polygon grating。这个具体后面再讲。

因为要转向,grating的方向跟耦入是不一样的。通常我们可以通过旋转整个物体实现,但这样的话物体也会跟着转,所以Michael又加入了”Rotate grating”,这样就可以实现不转物体,只转方向了。

对照part2里面figure8的图,不难分析我们需要考虑+1和-1衍射级次的光线,所以这里我们在dll里面要设置+-1衍射级次。

到这里光线在波导中就可能会传播多次,为了结果的准确性,要增加Maximum Intersections Per Ray, Maximum Segments Per Ray,减少Minimum Relative Ray Intensity,避免光线因为这些设置提前终止,导致结果不准确。

3.耦出光栅:用于最终的扩瞳跟耦出

用的类型是User Defined Object (Object 7) with “DiffractionGrating.DLL” ,因为原生的DiffractionGrating只支持圆形的,而耦出区域是方形的。也可以使用user-defined object 来定义更加复杂的形状。

4.光源跟探测器的设置

如果想查看不同的入射角度,可以按照如下进行设置:

Z Position = 0
•    Object Property > Source > Pre-Propagation = -10

改变tilt X和tilt Y的数值来设定想要的角度。

第三部分提到了很多实用的便于观察的设置,主要是图示,这段我还是想保持文字描述,大家自行查阅吧:How to simulate exit pupil expander (EPE) with diffractive optics for augmented reality (AR) system in OpticStudio: part 3 – Knowledgebase (zemax.com)

5.图像仿真

物体10是方形朗伯光源,使用Lambertian_Overfill.DLL精准设置之后只有打到耦入光栅的光线会发射。

物体11是投影片,通过调整透过率生成想要的图案。

物体14的作用不止是为了仿真人眼,也是为了阻挡直接到detector的光线。如果你仿真的结果有很多不应该出来的背景信号,检查一下14的尺寸设置是不是合理。

6.MTF的生成:有两种,方形探测器自带的几何MTF跟参数设置生成的考虑衍射的惠更斯PSF二次加工

几何MTF,没太多要注意的,探测器尺寸设置一下,光源注意是点光源

惠更斯PSF/MTF:

系统需要进行的调整

   1.把原来的Paraxial Lens换成是NSC_Paraxial_Lens.dll,正确计算相位。使用这个dll有注意事项,具体参考文章,特别注意第二个grating 翻转了180度用来匹配其光线从-Z入射的需求。

    2.使用polygon.dll对于转向光栅进行定义。

参数设置:

方形探测器的PSF Wave#需要是非0值。只能够分析单波长,不用的时候记得关掉,很慢的。

MTF计算:

文章中自带MTF代码,直接跑也行,感兴趣的可以看看代码,记得有些参数要改。

 

 

 

 

 


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • August 10, 2022

补充一下,如果要设置dll为变量进行优化的话,一种方法是可以手动输入NPRO一系列参数,另外一个方法是在可视化工具中点击Create MCE.

 


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • August 17, 2022

补充几点:

dll的+1阶将光线弯向-x方向。

Rotate Grating值是0的时候,光栅跟物体的坐标是一致的。非0的情况下,光栅从+x转向+y方向。

 


fintol
  • Infrared
  • 10 replies
  • August 26, 2022

zemax与fdtd传递参数问题


fintol
  • Infrared
  • 10 replies
  • August 26, 2022

+zos


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • August 30, 2022

关于参数当中,Use coating file 之后, index 怎么填写的问题:postive是最常用的状况,就跟用Model Glass一样 (Vd=0)。零有时候跟substrate一样,有时候是跟superstrate一样,要看是哪个DLL以及相关说明。负数就是用定义好的资料。

 

 


fintol
  • Infrared
  • 10 replies
  • September 9, 2022

Hi Yuan,

有两个问题请教一下:

  1. 在NSC模式下,如图所示detector统计了光源测入射的能量和另一侧元件反射回的能量,请问如何设置只统计光源入射的能量?
  2. 如下图设置,ray trace 和merit function中NSTR设置相同,但是detector viewer 统计total power和merit function中nsdd返回对应的detector数值不一样

     


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • September 9, 2022

对于表面类型的探测器,有一个参数叫做Front only,设置之后可以约束光线的入射方向。
根据探测器类型不同,这个Front only对应的参数位置不同,需要根据选择的表面探测器类型进行调整。
The Setup Tab > Editors Group (Setup Tab) > Non-sequential Component Editor > Non-sequential Detectors > Detector Rectangle Object
?name=image.png关于raytrace跟NSTR的设置,有一种可能是因为勾选了随机偏振。

这部分在SRG那篇文章中有提到。

Simulating diffraction efficiency of surface-relief grating using the RCWA method – Knowledgebase (zemax.com)



 

fintol wrote:

Hi Yuan,

有两个问题请教一下:

  1. 在NSC模式下,如图所示detector统计了光源测入射的能量和另一侧元件反射回的能量,请问如何设置只统计光源入射的能量?
  2. 如下图设置,ray trace 和merit function中NSTR设置相同,但是detector viewer 统计total power和merit function中nsdd返回对应的detector数值不一样

     

 


fintol
  • Infrared
  • 10 replies
  • September 9, 2022

 +test file


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • September 26, 2022

关于Zemax-Lumerical Dynamic Link的内容更新到:

Lumerical RCWA和Zemax OpticStudio的动态链接 | Zemax Community


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • September 26, 2022

还是关于Zemax-Lumerical Dynamic Link,,更新到:

Lumerical RCWA和Zemax OpticStudio的动态链接 | Zemax Community


yuan.chen
Zemax Staff
Forum|alt.badge.img+3
  • Author
  • Zemax Staff
  • 272 replies
  • October 17, 2022
yuan.chen wrote:

对于表面类型的探测器,有一个参数叫做Front only,设置之后可以约束光线的入射方向。
根据探测器类型不同,这个Front only对应的参数位置不同,需要根据选择的表面探测器类型进行调整。
The Setup Tab > Editors Group (Setup Tab) > Non-sequential Component Editor > Non-sequential Detectors > Detector Rectangle Object
?name=image.png关于raytrace跟NSTR的设置,有一种可能是因为勾选了随机偏振。

这部分在SRG那篇文章中有提到。

Simulating diffraction efficiency of surface-relief grating using the RCWA method – Knowledgebase (zemax.com)



 

fintol wrote:

Hi Yuan,

有两个问题请教一下:

  1. 在NSC模式下,如图所示detector统计了光源测入射的能量和另一侧元件反射回的能量,请问如何设置只统计光源入射的能量?
  2. 如下图设置,ray trace 和merit function中NSTR设置相同,但是detector viewer 统计total power和merit function中nsdd返回对应的detector数值不一样

     

 

最近更了一个新帖子,关于随机数的,感兴趣的可以当成引申材料去看。

聊一聊关于随机数的生成 | Zemax Community


fintol
  • Infrared
  • 10 replies
  • January 10, 2023
fintol wrote:

 +test file

ROUND


fintol
  • Infrared
  • 10 replies
  • July 13, 2023

testimage


fintol
  • Infrared
  • 10 replies
  • July 17, 2023

polarization test


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings