尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

螺旋光纤OAM模式COMSOL仿真:从等效折射率到三维全波法

螺旋光纤OAM模式COMSOL仿真:从等效折射率到三维全波法 前阵子实验室有个课题要我用COMSOL复现一篇螺旋光纤支持轨道角动量OAM模式的文献结果。我一开始想得很简单光纤模式嘛画个二维截面折射率分布填进去跑一遍模式分析模场图就出来了。结果有效折射率跟文献差了快一个数量级模场形状也完全对不上。后来把螺旋光纤的物理模型重新梳理了一遍才意识到问题不在软件操作而在建模思路从一开始就走了直光纤的老路。这篇文章把我从踩坑到跑通的全过程整理出来了包括螺旋光纤的三种典型结构、COMSOL里面两条建模路线二维等效折射率法和三维全波法各自怎么选、参数化几何和边界条件怎么设、从本征值怎么换算损耗色散和OAM模式判据最后给一个螺旋三芯光纤的完整算例和几个高频翻车点。适合正在做光纤模式仿真、准备复现螺旋光纤论文、或者刚开始用COMSOL RF模块做波导仿真的读者按这条路径走能少走不少弯路。1. 螺旋光纤的结构类型与模式问题的本质1.1 三种典型螺旋结构先分清再做模型螺旋光纤这个名字其实包着一大类结构建模前必须分清是哪一种因为几何处理方式完全不同。第一种是螺旋芯型纤芯偏离光纤中心绕着公共轴沿螺旋路径走包层还是普通材料这种结构在分布式传感和OAM模式生成里很常见。第二种是螺旋微结构型包层里的空气孔不再平行于轴向而是绕轴呈螺旋排列形成所谓的手性光子晶体光纤这种结构会出现明显的圆二色性和模式手性响应。第三种是整体扭转型整根预制棒在拉丝时被扭转波导截面形状保持但相对轴向连续旋转实际光纤里的残余扭转大多属于这一类。我在项目里碰到的基本是第一和第二种的混合体三个纤芯绕轴螺旋分布外面还有一圈小空气孔。搞清楚结构类型后再往下做心里才有底。否则光是“螺旋”两个字建模差别可以非常大。1.2 旋转对称破缺是模式问题的核心直光纤的横截面是圆对称的模式按照角向量子数出现简并常见的LP01、LP11、HE11等模式都有清晰的分类。一旦引入螺旋旋转对称性被打破原来的简并模式会分裂成传播常数稍微不同的两个或多个模式这就叫模式分裂。更麻烦的是螺旋结构还引入了几何相位积累效应光在绕轴传播时横向模场会跟着旋转自旋角动量和轨道角动量之间会产生耦合。这就是为什么螺旋光纤里会出现OAM模式、会表现出手性选择性也正是这类光纤最值得研究的地方。如果在COMSOL模型里没有把这些自由度保留住比如直接用直截面画两个圆当成折射率台阶那算出来的东西和真实螺旋光纤之间差了最关键的一层物理后面所有“性能研究”都建立在错误地基上。1.3 性能指标先摆出来后面才有的放矢螺旋光纤的性能研究本质上就是把模场在所有传播距离上的行为量化。我做这个项目主要盯五个指标有效折射率的实部表征模式相位速度虚部表征限制损耗和弯曲损耗色散参数决定脉冲传输特性有效模面积影响非线性效率OAM拓扑荷与手性对应模式纯度。把它们和COMSOL输出对照起来看后面读本征值都有明确目标。指标COMSOL中对应量单位/口径有效折射率 Re(neff)模式分析本征值换算无量纲限制损耗 Im(neff)虚部换算dB/m色散 D扫描波长后对Re(neff)求二次导ps/(nm·km)有效模面积 Aeff电场模平方积分μm²OAM拓扑荷模场相位arg(ExiEy)花瓣数无量纲这张表先放这里第4节我会把每个换算公式写出来免得看模场图看嗨了忘了定量分析。2. 建模路线选择等效折射率法还是三维全波法2.1 为什么直光纤的二维截面套路不可用直光纤的横截面严格平行于轴向任意截面都一样所以二维模式分析是精确的。螺旋光纤不是这样光在弯曲路径上走外侧的弧长总是比内侧长。如果还按直光纤的折射率分布去算相位内外侧的相位就会失配模场自然不对。物理上处理这种弯曲有两种语言一种是直接建三维几何老老实实求解另一种是把弯曲效应折算成横截面上的等效折射率变化再用二维模式分析。后者的数学基础是保角变换对弱弯曲情况非常漂亮。等效折射率的核心表达式长这样n_eq(x,y)n0(x,y)·exp(x/R_c)。其中x是从弯曲中心指向外侧的坐标R_c是局域曲率半径当弯曲半径远大于模场横向尺寸时指数项可以展开成n_eq≈n0(1x/R_c)。插一句不同文献里正负号经常打架原因只是x坐标的取向定义不同你在自己模型里定好“哪个方向算外侧”公式就不会错。2.2 等效法的适用边界先算曲率半径再决定等效折射率法有两个前提弯曲半径远大于波导横向特征尺寸且模式径向尺寸没有大过弯曲半径。换成螺旋结构得先算清楚螺旋的曲率半径。工程上最常用的螺旋参数曲线是xh·cosθyh·sinθzP·θ/(2π)其中h是螺旋的横向半径P是螺距。它的曲率半径是R_c(h²(P/(2π))²)/h。这个式子一算出来P越小、h越大R_c越小弯曲越剧烈等效法就越不可靠。拿常见参数粗估h15μmP1mm那么cP/(2π)≈159μmR_c(22525281)/15≈1700μm。模场尺寸假设4μm附近比值R_c/w≈425等效法绰绰有余。如果P压到100μmR_c≈232μm和模场尺寸比值掉到几十倍这时候就必须三维全波验证。2.3 两步走策略等效法扫趋势全波法做验证实际项目里我强烈建议两条路线配合而不是二选一。二维等效法一个模型几百兆内存就能跑几十个模式几分钟出结果特别适合扫螺距、扫弯曲半径、扫波长这种参数面扫描。三维全波法一个螺距周期轻轻松松几十万自由度算一次要几分钟到几十分钟但它能捕捉扭转导致的径向场分量和真实PML边界下的损耗是目前最接近物理实物的做法。我的操作顺序是先用等效折射率法把参数空间扫一遍找到模式分裂明显、损耗较低的候选参数区间再挑三五个关键点用三维全波法复核。这个策略的性价比非常高既不会因为三维算力吃紧而放弃参数扫描也不会因为只用二维等效模型而被审稿人追问“扭转项去哪了”。3. COMSOL建模实操参数化几何、边界条件与网格3.1 二维等效法把螺旋写进折射率分布二维等效法本质上是在直光纤截面上做一个空间变化的折射率修正所以重点就是怎么把表达式写对。我习惯把几何参数全部放进全局参数表包括背景折射率、纤芯折射率、芯径、螺旋半径h、螺距P然后新建一个变量R_c用上一节那个曲率半径公式计算。折射率定义里我写成这样的表达式n_total (n_bg (n_core - n_bg) * core_domain) * exp(x / R_c)其中core_domain是一个0/1指示函数在纤芯区域内为1包层为0可以直接用(x^2 y^2 r_core^2)这种逻辑表达式代替COMSOL会自动把它转为阶跃分布。x坐标正方向就是弯曲外侧方向在结果里对照一下弯曲方向别把方向搞反就行。需要注意这一步的材料模型直接覆盖了全局折射率不要在材料节点里再叠加一次n_bg否则等效修正会被二次叠加数值上会偏大。3.2 三维螺旋几何参数曲线加扫掠如果走三维全波路线COMSOL里建螺旋几何的标准做法是先建参数曲线再让截面沿曲线扫掠。螺旋中心线用参数化曲线参数t的范围取0到2π代表一个完整螺距x h * cos(t) y h * sin(t) z P * t / (2*pi)曲线建好之后在曲线的起点端建一个纤芯圆截面用扫掠操作沿这条曲线生成螺旋纤芯。再画一个同轴的包层圆柱体布尔并集一下一个完整周期的螺旋光纤几何就出来了。注意曲线方向决定了左右旋想验证手性是否和文献一致就把t的正方向对应到z增大方向左手右手的关系自己用手比划一下就明白了别依赖记忆。包层圆柱的径向尺寸建议至少比螺旋横向半径h多出5倍模场尺寸以上给PML留足空间。几何阶段不用管PML把包层半径留好后面再加边界层网格会比较顺手。3.3 边界条件设置Floquet周期加PML三维螺旋光纤在轴向上具有周期性因为一个螺距之后截面旋转回原始位置。两个端面之间设置Floquet周期边界条件周期k矢量取轴向方向。如果做了多个螺距那就取一个螺距作为基本单元PML设置在包层外边界。三维模式下求解类型用特征频率算出来的是本征频率再换算成传播常数和有效折射率。二维等效模式分析则更直接电磁波-频域接口用模式分析特征值求解本征值直接对应传播常数。PML在二维里就是包层外再加一层环形区域厚度给λ/2到2λ材料设为PML。很多初学者省事用散射边界条件来代替PML结果损耗虚部普遍偏大这个问题我第6节单独讲。3.4 网格与求解器的关键参数三维螺旋网格是大坑我实际踩过。纤芯直径4μm的时候自由四面体网格在纤芯区域至少要控制最大单元尺寸小于1μm螺旋路径的切向也要有足够的层数否则螺旋的几何连续性都被网格离散化抹掉了模式和直光纤没区别。扫掠网格如果几何能用出来优先用扫掠六面体网格在长直方向上的离散质量比四面体好得多。求解器方面特征值求解器需要给一个目标范围别让它盲目扫几百个模式。二维模式分析可以设搜索neff在1.40到1.46之间三维特征频率换算成neff后范围也按这个给。内存紧张时用PARDISO比MUMPS省一些内存速度也能接受。COMSOL 6.4在网格剖分交互上优化了不少但实际上底层逻辑都一样关键还是几何分解得干净。4. 从本征值到性能指标损耗、色散与OAM判据4.1 有效折射率和限制损耗的换算口径COMSOL模式分析给出的本征值物理上是传播常数换算成有效折射率用neffβ/k0k02π/λ0。很多新手只看实部虚部完全忽略这是不对的。虚部对应损耗换算公式是αk0·Im(neff)损耗Loss(dB/m)20·log10(e)·α≈8.686α。这个常数关系我用熟了之后基本闭眼写。给你一个量级感觉1550nm波长下k0约4.05×10⁶m⁻¹如果Im(neff)1×10⁻⁵对应损耗约352dB/m这已经是非常大的损耗了。实际光纤的限制损耗要做到10⁻³dB/m量级虚部要到10⁻¹¹量级。理解了这层数量级就会知道为什么PML和网格对损耗计算这么敏感因为虚部太小数值误差稍大一点就完全淹没真实信号。4.2 色散和有效模面积色散参数D的物理定义是单位波长间隔上群时延的变化计算公式D-(λ/c)·(d²Re(neff)/dλ²)。实际操作里我一般扫描1550nm±30nm范围内的几个波长把每个波长的Re(neff)导出然后在数据处理软件里做中心差分求二阶导。直接用COMSOL内置求导也行但对虚部噪声很敏感我反而更信任外导。有效模面积Aeff(∬|E|²dxdy)²/∬|E|⁴dxdy在COMSOL后处理里用积分算子分别算两个积分注意分母是电场模的四次方别把偏振分量搞混。对螺旋光纤来说Aeff不是常数和对称量它会随螺距变化而且模场中心可能偏离几何轴线所以导出的坐标系要固定否则作对照时数据对不齐。4.3 OAM模式怎么判定相位花瓣与偏振螺旋光纤被研究得最多的就是OAM模式判定方法并不复杂。在结果里画模场的相位分布表达式用arg(Exi·Ey)绕中心转一圈相位从-π变到π的次数就是拓扑荷l。l1看到一片漂亮的螺旋相位l2看到四瓣花。这是最直观的判定方法。但只靠相位还不够螺旋结构里的OAM模式往往伴随着自旋轨道耦合同一个拓扑荷可以有不同的圆偏振态。所以我习惯把Ex和Ey分别调出来看两者的幅度比和相位差锁定是左旋还是右旋圆偏振再和文献对照手性。注意相位函数画出来有2π跳变这是正常的绕卷效应不是bug。4.4 参数扫描和批量导出想在COMSOL桌面里扫螺距直接在研究中加一个参数化扫描把P设为扫描列表一步就能跑完。但如果要扫的维度多桌面交互就显得笨重此时可以用COMSOL with MATLAB或Python接口做批量控制。我用过的基本套路是在MATLAB里循环设置模型参数跑研究再导出模式列表for P [0.5, 0.8, 1.0, 1.5, 2.0]*1e-3 model.param.set(P, P); model.study(std1).run(); model.result(pg1).run(); % 导出neff列表到Excel end这里不需要太复杂的API知识把桌面操作录成Java宏再改改循环就行。批量扫描跑一晚上第二天起来看数据表格是这套流程的常态。记得每次跑完把模式排序写清楚不然不同扫描点之间模式对不上号。5. 算例螺旋三芯光纤的模式分裂对比5.1 案例参数与建模配置空谈理论太虚我给一个实际跑过的算例螺旋三芯光纤。三根纤芯围绕公共轴呈120°均匀分布整体绕轴螺旋纤芯之间靠得很近存在强耦合。直三芯情况下三根相同的芯之间会发生超模耦合模式传播常数出现特定关系加上螺旋之后因为每个纤芯在截面上处于不同的径向位置和方位等效折射率各不相同情况就会彻底改变。参数数值工作波长1550 nm背景折射率1.444纤芯折射率1.446纤芯直径4 μm包层直径60 μm纤芯与轴距离15 μm螺距P0.5~5 mm 扫描PML厚度2 μm建模用第3节的二维等效法用曲率半径公式算R_c对每个螺距做模式分析。重点看neff实部的分裂量也就是三根芯原来简并的模式在螺旋后裂开多大。5.2 扫描结果简并解除与模式局域化扫描P从5mm逐渐减小到0.5mm可以清楚看到原本重合的三个超模neff慢慢分开。P越大螺旋越接近直光纤三根芯几乎等效neff差在10⁻⁶量级以下基本就是直三芯的简并态。P缩小到1mm附近时neff分裂量升到10⁻⁴量级模场开始逐渐局域到某一根纤芯上超模特征变弱芯模特征变强。这个趋势的物理解释很直接螺旋弯曲给每根纤芯叠加了不同的等效折射率偏移三根芯之间的相位失配增大原有的强耦合被破坏模式从全芯分布过渡到单芯局域。等效成一个直觉类比就是三个人本来同频共振现在每个人声调不同共振腔里的能量就会各自抱团。螺旋光纤的许多传感和模式调控应用吃的就是这个相位失配效应。5.3 三维验证与损耗对比我挑P1mm这个点做了三维单周期全波验证跟二维等效法对比了基模的Re(neff)两者差在10⁻⁴以内工程上完全可接受。限制损耗方面二维等效法算出来比三维偏小一点原因也好理解等效模型没有完整包含包层里空气孔或支撑结构的螺旋扭转散射损耗机制缺了一部分。如果想发表高频对比结论建议损耗以三维结果为准二维只用来筛参数。5.4 和文献对不上时的排查思路复现文献结果对不上是最折磨人的事。经验里最常见的四类原因一是模型用的是阶跃折射率近似而真实样品有扩散渐变二是忽略了材料色散文献的neff在不同波长对应不同折射率三是PML距离太近边界条件把虚部污染了四是模式追踪错了取了解的某个模而不是你关心的那个模。排查顺序我建议先查模式排序再查PML再查材料数据最后才怀疑几何建错了。因为几何错了通常连实部都对不上而实部对虚部不对大概率就是边界和损耗问题。6. 高频翻车点与排查经验6.1 特征值排序与模式追踪错位COMSOL特征值默认按模值或实部排序螺旋光纤里模式密集一个扫描点可能有二三十个模式排名相邻的两个解可能只是模场旋转方向的差异。我吃过亏扫螺距时程序自动取“第一个”模式结果中间某个P值跳到了另一个模式分支上数据曲线出现一段奇怪的跳变。解决办法是固定一个感兴趣的模用模场分布的形状做追踪判据或者对每个P点把neff相近的七八个模式全部导出再从模场图里人工确认哪支是连续跟踪的那支。6.2 PML和散射边界对损耗的污染二维模式分析里默认散射边界条件算起来快但虚部损耗结果我实测比PML设定下偏大一个量级甚至更多。损耗本身就是微小的虚数修正边界条件的一丁点反射都会淹没真实值。我后来统一改用PML并且做了个收敛性测试PML厚度从λ/2加到2λ损耗如果还在变化说明边界不合格继续加厚或调整吸收系数。这个测试看着朴素却是损耗能不能写进论文的分界线。6.3 手性方向和x正方向的不统一这个坑特别隐蔽因为模型本身不会报错只是结果方向全反。参数曲线里t的正方向决定螺旋旋向x坐标的正方向决定等效折射率偏移方向PML偏置方向决定模型往外扩的方向三套方向如果不一致就相当于一边拧着一边又往回掰。我的习惯是在模型文档里画一张手写示意图把旋向、外侧方向都标清楚每次改参数都对着图检查一遍。手工检查旋向最好用的办法是看三维几何里中心线是右旋还是左旋左手定则右手定则对着来别用脑子硬记公式。6.4 内存不够时的降维打法三维螺旋光纤单周期网格很容易冲到几百万自由度16G内存的机器直接卡死。我的降维顺序是这样先用二维等效法把参数趋势和候选点定下来然后三维全波只验证少数几个点三维里能用扫掠网格绝不用自由四面体能用对称性就沿x-y平面或旋转对称性切一半模型配合周期性边界条件把自由度砍半实在还卡就换用COMSOL的二阶离散框架牺牲一点精度换求解速度。最后再说一句个人体会螺旋光纤仿真之所以容易翻车不是几何画不像而是大多数教程示例默认了直光纤的旋转对称没有教你把“旋转对称如何破缺”这个概念放进模型。只要建模时始终想着“弯曲和扭转给模式带来了什么”COMSOL每一步操作都会变得很顺。
返回列表