如题,这是个介绍相关资料的集合。
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)
如题,这是个介绍相关资料的集合。
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)
更正一下,应该是OpticStudio,不是Zemax.叫太顺口了。。
在RCWA推出之前,我们也可以仿真不同衍射级次,但是无法计算衍射效率。
相关的文章可以在这个路径找到。
HUD & AR – Knowledgebase (zemax.com)
请先服用本文章,然后再进入建模环节:
建模比较长,有问题可以下方留言:
第一篇主要是对衍射光波导做一个大致的介绍,引入了K空间的概念。
文中提到的怎么根据波长以及折射率进行参数的计算值得一看。
这篇讲解了基本的软件操作,使用一束平行光入射到第一个光栅,在波导中实现了全反射。
梯形区设置转向光栅,用来对光线做90度的转向操作。第三个光栅则将光线耦出。探测器上 探测到的是出射的平行光的分布,人眼在不同位置处会观察到同一个像素点,但视网膜接收 的能量不同。在文章的最后给出了,除中心视场以外的其他视场的设置方法,注意查收。
使用paraxial lens替代投影镜头和人眼,进行波导系统的图像仿真。
系统MTF的计算(几何/相干)
你好,part 3的附件没有“step4_check footprint.zar”这个文件
你好,part 3的附件没有“step4_check footprint.zar”这个文件
感谢指出,我去找一下Michael大神问问。
你好,part 3的附件没有“step4_check footprint.zar”这个文件
搞定啦~
关于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
有两个使用点经常被问到,这里提示一下:
1.想要设置多个角度或者波长的话,点选对应的框之后按insert键进行添加
2.光线信息中包含衍射级次的功能还在跟产品团队协商当中,目前如果要优化多个衍射级次的效率,需要建立多重结构进行不同级次的光线追迹仿真。该方法的限制点在于,无法在单一的结构当中仿真出现多种级次交替生成的情况。
顺带写几个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代码,直接跑也行,感兴趣的可以看看代码,记得有些参数要改。
补充一下,如果要设置dll为变量进行优化的话,一种方法是可以手动输入NPRO一系列参数,另外一个方法是在可视化工具中点击Create MCE.
补充几点:
dll的+1阶将光线弯向-x方向。
Rotate Grating值是0的时候,光栅跟物体的坐标是一致的。非0的情况下,光栅从+x转向+y方向。
zemax与fdtd传递参数问题
+zos
关于参数当中,Use coating file 之后, index 怎么填写的问题:postive是最常用的状况,就跟用Model Glass一样 (Vd=0)。零有时候跟substrate一样,有时候是跟superstrate一样,要看是哪个DLL以及相关说明。负数就是用定义好的资料。
Hi Yuan,
有两个问题请教一下:
对于表面类型的探测器,有一个参数叫做Front only,设置之后可以约束光线的入射方向。
根据探测器类型不同,这个Front only对应的参数位置不同,需要根据选择的表面探测器类型进行调整。
The Setup Tab > Editors Group (Setup Tab) > Non-sequential Component Editor > Non-sequential Detectors > Detector Rectangle Object
关于raytrace跟NSTR的设置,有一种可能是因为勾选了随机偏振。
这部分在SRG那篇文章中有提到。
Hi Yuan,
有两个问题请教一下:
+test file
对于表面类型的探测器,有一个参数叫做Front only,设置之后可以约束光线的入射方向。
根据探测器类型不同,这个Front only对应的参数位置不同,需要根据选择的表面探测器类型进行调整。
The Setup Tab > Editors Group (Setup Tab) > Non-sequential Component Editor > Non-sequential Detectors > Detector Rectangle Object
关于raytrace跟NSTR的设置,有一种可能是因为勾选了随机偏振。
这部分在SRG那篇文章中有提到。
Hi Yuan,
有两个问题请教一下:
最近更了一个新帖子,关于随机数的,感兴趣的可以当成引申材料去看。
+test file
ROUND
testimage
polarization test
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.