吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 9115|回复: 6

[讨论交流] 梯度折射率光纤(渐变折射率,GRIN Fiber)Lighttools仿真建模

  [复制链接]
  • TA的每日心情
    郁闷
    2023-3-28 13:53
  • 签到天数: 267 天

    [LV.8]以坛为家I

    3

    主题

    38

    回帖

    8

    积分

    小白

    积分
    8
    发表于 2021-6-23 23:36 | 显示全部楼层 |阅读模式
    本帖最后由 herozq7614 于 2021-6-23 23:37 编辑


    因研究需要,简单研究了光纤、梯度折射率光纤的建模和仿真。
    这里使用的软件是 Lighttools ,版本号9.1。
    因为LT是非序列的,所以很多的设置可以推广到Zemax的非序列仿真中,作为参考。但是zemax我不熟,它非序列操作又非常的反人类(我的感觉),所以我没有在zemax上做仿真。
    这里我尽量列出参考文献的来源,以供后续深入研究使用。

    1.    梯度光纤
    我们最初学到的光纤形态是阶跃光纤,纤芯和包层的折射率不同,纤芯折射率(n1)大,包层折射率(n2)小,所以在纤芯中传播的光线,角度满足一定条件,在纤芯-包层界面会出现全反射,不会进入包层,而一直在纤芯中传播。
    上述的纤芯折射率n1在纤芯处处相同。这就是阶跃光纤
    而梯度折射率光纤,n1沿着纤芯的 径向——垂直光轴的方向是变化的。

    为了更好说明(图个方便),参考如下thorlabs官网的说明。
    https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=12211&C20
    我比较关注的是光能量的耦合,所以在意的是梯度光纤的数值孔径。沿着纤芯端面径向,数值孔径是不一样的。一般来说,中间最大,边缘最小。所以一束特定角度、一定宽度的平行光入射到光纤端面,端面每个位置耦合效率可能会不一样,至少计算的数值孔径是径向的函数,是随着径向变化的。

    另外,因为折射率的变化,平行光入射至光纤会有特殊的性质,形成一个个周期性的会聚、发散的“节”。这就是渐变折射率透镜(grin lens)的原理

    具体的,可参考下图(来源 https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=1209)

    也可参考zemax自带samples (Zemax\Samples\Sequential\GRINs\Selfoc lens.zmx) 。
    网上也有很多介绍grin lens的文献,以及教科书。例如如下https://spie.org/publications/tt48_55_gradient_index_lens?SSO=1

    PS. 关于梯度光纤,不知是否有更加官方的名字?似乎有很多的名字,有叫梯度光纤,梯度折射率光纤,渐变折射率光纤,graded index fiber ,gradient-index fiber , GRIN fiber ,等等……造成了搜索资料的麻烦


    2.    梯度光纤在LT中的建模

    具体地,请参考官方资料 <Advanced PhysicsModule User's Guide>中  Chapter 4 Creating Gradient Index (GRIN)Materials 一章
    ※ 这是9.1版本的资料目录,其他版本自行确认
    ※ 官方资料从“开始菜单-Lighttools-Document Library" 搜索关键词可以找到。或者目录  XXX\Program Files\OpticalResearch Associates\LightTools 9.1.0\Doc 文件夹下<mainmenu.pdf>。 使用adobe reader打开比较方便(全局搜索),用福昕似乎我经常搜索关键词失败。

    LT 建模中非常关键的几点。
    (1) 纤芯浸入的设定。无论是传统的阶跃光纤还是梯度光纤,都可以使用该方案,即纤芯圆柱+包层圆柱的建模。注意,包层是圆柱,而非圆环。同时,将纤芯圆柱设置为浸入包层圆柱中。
       
    如果不作此浸入的设定,LT无法判断重合的物体和界面该如何处理,且LT会认为界面是air而非你所需要的包层介质
    如下图,±25°光线进入n1 = 1.469, n2 = 1.444 (NA0.27,对应角度~±15.6°)的纤芯和包层中,若没有设定浸入关系,那么光线先进入纤芯,会默认纤芯周围的介质折射率n=1,导致所有25°光线全部耦合了
    而如果设定浸入关系,纤芯周围介质则为包层,所以部分大角度光线不会全反射。这才是正确的结果。

    ※ LT的“浸入”关系在zemax中等效(或仅是类似?)“inside of” 选项。
    ※ 不知道有没有犯过和我类似的错误,即设置包层为一个圆环,包在纤芯外侧,而非圆柱。LT设置圆环还需要做布尔运算,好麻烦……设置圆环仅仅是内径和纤芯外径相等,还是容易出错的,可能会被系统误认为中间有间隙。当然这也不是不能处理,有两种方式解决这个问题。
    方式1,包层的内径稍微小于纤芯外径,然后作“浸入”的设置。注意,如果包层内径和纤芯外径相等,“浸入”设定可能会无效(因为系统仍然认为它们不接触);
    方式2,LT9.1版本中有“optical contact”选项,即表面之间间距小于某个值时,可以设置它们接触在一起。这样设置会让系统认为它们之间没有空气,是完全接触的。在之前版本中不知道是否有该设置。

    (2)除了浸入设定外,我个人喜欢做如下的设置,以更方便建模
    ·        包层的表面都设置为absorb,可以防止包层漏光,光纤追迹速度也会更快;
    ·        纤芯首尾都凸出包层一点,这样防止光线先接触包层,而被包层表面特性所影响。

    (3)另外一个非常重要的设置,是“最大命中数”的设置。对光纤来说,特别是侧壁的最大命中数。这个参数表示光线碰到表面的系统最大次数。超过这个次数,系统似乎就不计算了。对于光纤来说,耦合的光线会不断的撞击侧壁。所以如果建模需要将光纤长度建的很长时,一定要把侧壁的“最大命中数”改大些(例如我仿真时60um光纤,50cm长,设置该值为5w)。※这部分内容的理解来自于脑补,需要精确了解其含义的请参阅官方资料

    ※ zemax 中,对应的在系统设定中,其中含义是啥我记不清了,翻看官方资料吧……

    (4)下面终于说到梯度光纤了。第一点,选取/自定义梯度折射率材料
    ·        材料遵循的公式。参见光官方资料,N0是光纤光轴中心折射率,sqrt(A) 是梯度常数

    ·        自定义材料中,在“用户材料”栏里选择“梯度折射率”,则会出现更多的诸如“SELFOC GRIN"等的tab。如下图。这里就会出现n(0),sqrt(A)的数值的输入。这里有一个仿真中重要的参数叫“梯度步长”,后续再提。
    这里输入了1.69,5.9,“节线长度自动求出,为1.06(单位mm)
    ※ 也可以采用系统自带的材料。在物体特性-材料栏中输入如下材料名称(下表中第一栏的任意材料),点击确定,系统会自动生成该材料于用户自定义库中。

    (5)接上文,刚才自定义材料中输入了n0=1.69,sqrt(A)=5.9,这时的图形界面如下,光线毛拉拉的,似乎显示是有问题的,这里就涉及到两个非常重要的影响仿真的参数,一个就是上述在“自定义材料”界面中提到的“梯度步长”,一个是在纤芯物体属性中的“每条光线最大分段数”(”材料“栏里多出来的选项)

    ·        自定义材料界面中的”梯度步长“。
    这里抄一下官方资料中的原话
    Specify the Gradient StepSize. The default is 0.1 mm. This value is always in millimeters, regardless ofthe system units setting.
    The Gradient Step Size isused to determine the distance interval at which the direction of the ray iscomputed as it propagates through a GRIN material. Smaller values produce moreaccurate results, but can require longer ray trace time; larger values canrequire less ray trace time, but produce less accurate results.
    拙劣的翻译一下,就是说梯度步长这个量将决定了:在梯度材料中,沿着光线传播方向上,光线就算的距离步长。更小的值,将获得更大的精度,但是更长的追迹时间。
    也就是说,“梯度步长”是沿着光线传播的距离的采样步长。将其由0.1mm改为0.01mm,再看3D视图,正常了很多。


    ·        纤芯物体属性中的“每条光线最大分段数”
    官方资料中原话
    From the Material tab in theProperties dialog box, you can specify the maximum number of segments that areallowed per ray in a GRIN material. This setting is used to terminate raystrapped in a material (similar to the Max Hits option provided for surfaceproperties). The segment limit for a ray is cumulative with multiple passesthrough the same material. The default value is 2000. The number of segmentsfor a given path is influenced by the gradient step size defined for the GRINmaterial. (For a description, see Gradient Step Size, on page 84.)

    拙劣的翻译一下:
    在特性-材料栏里,可以指定每个光线在梯度材料中的最大分段数。这个设置是为了终止那些一直被“困在材料”(【我的理解,即不断撞击材料而出不来】)中的光线(类似表面特性的“最大命中数”)。对一个光线的分段次数限制,是在多次穿过同一个材料的不断累积(【我的理解:???】)默认数值是2000。对一个既定的光束路径,这个分段数受到“梯度步长”的影响。

    所以,我理解的是,这个参数就类似表面特性的“最大命中数”一样。由于梯度材料不是均匀材料,LT追迹时需要对材料的不同位置(沿着光路/垂直光路)进行类似分段或者切片的计算。需要这个分段或者切片的次数进行限制,否则会有光线在梯度材料内部困住而不穿出,导致计算的多余。
    我不理解的是,它和上述“梯度步长”的具体的数值联系。看的云里雾里。
    不过可以确定的是,设置大点没错。可以通过NSray的路径去初步判断,看光线是否可以正常到光纤尾端,光线在纤芯内部是不是看上去“正常”。再用光线去追迹。
      
    最后
    其他常规的设置,比如圆柱的画法,尺寸输入,表面特定设置等等,这里就略过了。
    我也只对这个建模有很粗浅的了解,欢迎各位提问,有错误也请指出,不胜感激。我并非研究光纤或者波动光学出身,所以很多原理理解还很粗浅,希望各位指正,也希望有这方面理论/建模经验的坛友多多分享。谢谢!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    ×

    评分

    参与人数 2金币 +5 贡献值 +2 收起 理由
    光杆司令 + 2 赞一个! 谢谢楼主分享
    fornever24 + 3 + 2 很好的分享,难得看到这么详细的帖子,赞一.

    查看全部评分

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-5-4 08:26
  • 签到天数: 2311 天

    [LV.Master]伴坛终老

    51

    主题

    467

    回帖

    80

    积分

    入门

    积分
    80
    发表于 2022-4-26 18:00 | 显示全部楼层

    最近我也在研究光纤仿真,看到楼主这么详细的分享,收获颇多,实在是万分感谢!

    不过我的仿真比较简单,只需要建模阶跃折射率光纤。下面是我看了主贴后的一些疑问,望指导

    (1)我使用的是LT9.0版本,在其中的文档库中只看到关于渐变折射率光纤的文章,并未找到阶跃折射率光纤的,是因为太简单所以官方没写吗?

    (2)按照你的方法对NA0.27的光纤进行了设置,发现是符合光纤最大耦合角度关系的,见下图:

    光源发光角度±15.6°时


    光源发光角度±15.7°时


    我这里的问题是:上面的模拟仅仅是光源光线全部进入纤芯的情况,但实际上光源光线是会进入包层的,这样是需要把包层的光学属性都设置为吸收吗?还有你的“纤芯首尾都凸出包层一点”的设置是不是不太符合光纤的实际情况?

    (3)以上是单根光纤的建模,如果是多根光纤组成的光纤束又该如何建模呢?有相关的教程可以学习一下吗?

    再次表示感谢!


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    ×

    评分

    参与人数 1金币 +1 收起 理由
    light-bear + 1

    查看全部评分

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-5-4 08:26
  • 签到天数: 2311 天

    [LV.Master]伴坛终老

    51

    主题

    467

    回帖

    80

    积分

    入门

    积分
    80
    发表于 2022-4-27 09:27 | 显示全部楼层


    另外再请教一下,LT中如何插入类似ZEMAX序列模式的光线的?如下图:


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    ×
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-3-28 13:53
  • 签到天数: 267 天

    [LV.8]以坛为家I

    3

    主题

    38

    回帖

    8

    积分

    小白

    积分
    8
     楼主| 发表于 2022-5-20 02:07 | 显示全部楼层
    fornever24 发表于 2022-4-26 18:00
    最近我也在研究光纤仿真,看到楼主这么详细的分享,收获颇多,实在是万分感谢!

    不过我的仿真比较简 ...

    不好意思,很久没详细浏览论坛了。
    回复一下你的问题:
    1. 阶跃光纤,可以理解为芯浸泡在包层的材料里,所以只要用实体的芯(例如一个小半径的圆柱),和一个包层(例如一个大半径的圆柱),然后设置前者浸没在后者中。
    2. 实际情况中,光源中大于临界角的光线会进入包层,并且如果包层和空气满足临界条件的话,包层-空气也会形成全反射从而在包层中传输。因为我仿真只考虑纤芯传播的光纤,且为了避免大角度光线射出包层而传到相邻的其他结构里,我是习惯将包层的表面设置为吸收,而包层实体本身不设置为吸收。
    另外你提到的,纤芯突出包层一点,这也不算不符合实际情况吧(例如突出1um甚至更小)。我这么做只是为了保证临界条件内的光线能够先碰到纤芯,而不会先碰到包层(因为包层材料的表面被我设置了吸收- -)
    3. 光纤阵列的话,建议你先摸熟悉LT的阵列功能,以及 Tools - Unility Library - Geometry 里的阵列(可以导入表格)功能

    你另一个问题,是右侧图标里 Raytracing- NS Raytrace 功能, 可以“放置”非序列的光线簇。

    评分

    参与人数 1金币 +3 收起 理由
    天空很蓝 + 3

    查看全部评分

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-5-4 08:26
  • 签到天数: 2311 天

    [LV.Master]伴坛终老

    51

    主题

    467

    回帖

    80

    积分

    入门

    积分
    80
    发表于 2022-5-23 09:34 | 显示全部楼层
    herozq7614 发表于 2022-5-20 02:07
    不好意思,很久没详细浏览论坛了。
    回复一下你的问题:
    1. 阶跃光纤,可以理解为芯浸泡在包层的材料里 ...



    感谢回复!

    1. 阶跃光纤估计是建模比较简单,所有LT中没有教程;
    2. 目前我是将包层的圆柱侧面设置为吸收,但是没有像你那样把纤芯设置成高于包层,也能实现光线只在纤芯中传播,而进入包层的光线默认为被吸收;
    3. 光纤阵列目前用的是LT右侧工具栏自带的圆形阵列和矩形阵列,也能实现想要的效果。

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-4 08:47
  • 签到天数: 456 天

    [LV.9]以坛为家II

    29

    主题

    193

    回帖

    3

    积分

    小白

    积分
    3
    发表于 2023-6-15 22:29 | 显示全部楼层
    如果是分光光纤,LT可以实现吗?
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-4-30 09:19
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    1

    主题

    3

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2024-2-29 16:07 | 显示全部楼层
    芯部折射率能自定义方程式定义折射率曲线,或是根据半径坐标插值定义折射率曲线吗
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2024-5-4 17:12 , Processed in 0.109375 second(s), 24 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表