资讯动态

用COMSOL绘制光纤模式色散图:原理、实操与避坑指南

发布时间:2026/10/15 5:52:05 来源:尧图企业网站定制
做光纤的人十有八九迟早会碰上同一个需求想知道手里这根光纤在某段波长范围内到底能传哪几个模式每个模式的有效折射率随波长是怎么变的高阶模什么时候出现色散到底会让脉冲展宽多少。这些问题统统指向一样东西——模式色散图。用COMSOL把光纤截面建模算出一系列模式的有效折射率再扫一遍波长画成横轴波长、纵轴有效折射率或者色散系数的曲线就是实践中特别常用的“光纤模式色散图”。这篇文章完全围绕这个主题展开适合正在做光纤通信、光纤传感、硅光波导设计或者刚接触COMSOL波动光学模块、想拿光纤模式分析练手的工程师和研究生。我会把原理、建模、求解、后处理一条线讲清楚再把我踩过的坑直接摊开说照着做基本能画出自己第一条能用的色散曲线。1. 为什么用COMSOL做光纤模式色散分析1.1 光纤模式分析到底在算什么光在光纤里传输本质是电磁波在介电常数分层的结构里传播。光纤截面是圆形芯层和包层折射率不同电磁波在这个界面上被约束、反射、导行最后形成一组稳定的场分布这就是模式。模式不是随便什么场都能叫的它必须满足波动方程同时在芯包边界和无穷远处满足边界条件。满足条件的解是离散的每个解对应一个传播常数β或者说对应一个有效折射率neff。模式色散图的核心就是neff随波长的变化曲线。为什么关注neff因为neff直接决定光在光纤里的传播速度、相位累积、群速度进而决定色散、模式耦合、截止波长这些实用参数。COMSOL做这件事是在给定波长下求解电磁场本征值问题一次性解出支持的所有模式然后改变波长重复求解把结果串起来就是色散图。我见过不少人把“模式分析”理解成“画一个场的漂亮云图”其实那个只是副产品。真正有价值的输出是模式数量的变化规律和neff随波长的轨迹这才是设计光纤、设计波导最关心的数据。1.2 为什么偏偏用COMSOL而不是自己写程序严格来说阶跃折射率光纤的模式方程是有解析解的用Bessel函数就能算。那为什么还要用COMSOL因为实际工程里的光纤很少是完美阶跃折射率有渐变折射率剖面、有应力双折射、有非圆芯型、有光纤光栅、有特殊包层结构解析解要么算不了要么算出来与实际偏差很大。COMSOL这样的商用有限元软件优势在于几何和材料定义非常自由。另一个选它的理由是结果可视化。光纤模式和色散本来就很抽象一个neff数值摆在那你很难判断这个模式是基模还是高阶模、场集中在芯里还是泄漏到包层里。COMSOL求解完直接把每个模式的电场分布画出来可以很直观地把“曲线上的每个点”对应到“一种场形状”。这一点在自己写脚本时往往要额外花大功夫。当然COMSOL也有它的别扭之处模式分析的求解器设置、特征值搜索、参数化扫描的连续性处理都有不少细节设置不对很容易得出“看起来光滑其实已经跳模”的曲线。这篇文章后半部分就是专门讲这些坑的。1.3 一张色散图能回答什么问题做成一张色散图之后它不只是“好看”它能回答几个工程上非常要命的问题单模条件是否满足。比如一根阶跃光纤在1550nm附近V数小于2.405图上就只有一个模式如果V数超了曲线上会出现第二个模式、第三个模式这就是多模开始出现的信号。群速度色散和脉冲展宽。由neff对波长的二阶导数可以算出色散系数D直接评估光纤在某个波段是正常色散还是反常色散。模式耦合风险。如果两条模式色散曲线在某波长处靠近甚至交叉说明这两个模式的传播常数接近遇到扰动容易发生模式耦合。截止波长。某些模式的有效折射率下降到包层折射率以下这个模式的场会变成泄漏模图上表现为曲线掉到包层线以下这在设计单模光纤时是关键的判定条件。所以这张图不只是给仿真自嗨用的它直接对接参数设计和实验判读。2. 核心原理色散图背后是哪几个方程2.1 从麦克斯韦方程到本征值问题COMSOL波动光学模块求解的是频域亥姆霍兹方程。对光纤这种沿z轴均匀的结构电场可以写成横向场乘以一个沿z传播的相位因子即E(x,y,z) E(x,y) exp(-jβz)。代入亥姆霍兹方程后问题就化成一个二维本征值问题未知量是横向场分布E(x,y)和传播常数β。COMSOL的模式分析研究就是干这个的。它在给定频率或波长下搜索满足边界条件的特征解每个解对应一个模式。这里要注意COMSOL求解的是复特征值实部对应传播常数虚部对应损耗或泄漏。对普通传输模式虚部很小对泄漏模式虚部不可忽略。我把这个过程理解为“在光纤截面这个二维空间里找能自洽存在的驻波图案”。就像琴弦振动有固定模式一样光纤截面也有自己的电磁“振动模式”只是这里的“振动形状”由折射率分布决定并且沿着传播方向不断前进。2.2 有效折射率、传播常数和色散的关系传播常数β和有效折射率的关系很简单neff β / k0其中k0 2π/λ是真空中的波数。neff的物理意义可以理解为光在这一模式下的等效折射率它始终介于芯层折射率和包层折射率之间对导模来说严格满足n_clad neff n_core。色散图如果画neff-λ曲线可以直观看出有效折射率随波长增加而下降。这来自光纤结构对波长变化的响应波长越长模式场越往包层扩散更多光场感受到较低的包层折射率所以neff下降。实际中更常用的是色散系数D定义为每单位波长间隔、每单位传播距离的时延变化单位是ps/(nm·km)。它和neff的关系是D -λ/c·d²neff/dλ²。也就是说要得到准确D曲线必须对neff曲线做二阶求导。这要求neff数据足够光滑否则求导后噪声会被放大到没法看。这也是为什么网格质量、特征值精度对画色散图这么重要。如果你只关心某个窄波段的脉冲展宽也可以只算群折射率ng neff - λ·dneff/dλ然后通过群速度vgc/ng来评估。做光纤传感的时候ng的变化量往往比neff更敏感这是后话。2.3 模式阶次、截止条件与单模窗口阶跃光纤的模式按LP模标量近似或者严格矢量模来分类。实际COMSOL解出的是矢量模常见的有HE11、TE01、TM01、HE21等。基模是HE11它的场主要集中在纤芯截止波长最长。模式能否存在由归一化频率V决定。V (2πa/λ) × NA其中a是纤芯半径NA是数值孔径。V越大支持的模式越多。对于阶跃折射率光纤HE11在V0时就存在而第一个高阶模式在V≈2.405时出现。换句话说当V小于2.405时光纤只支持基模这就是经典的单模条件。做色散图时你会看到一个现象某个模式的neff曲线随波长增加逐渐下降在某个波长点掉到n_clad以下。这个点就是该模式的截止波长。截止之后这个模式并非完全消失而是变成泄漏模neff虚部迅速变大。如果你在COMSOL里按波长从小到大扫描会看到neff实部掉到包层线附近后曲线变得不太规律那就是进入泄漏区了。这里有个实操提醒COMSOL里的PML完美匹配层或散射边界条件会影响泄漏模的计算结果。如果包层外直接设默认边界泄漏模会算得很假加了PML泄漏模的复neff才相对可靠。2.4 材料色散与波导色散的拆分思路光纤的总色散通常被拆成材料色散和波导色散。材料色散来自折射率随波长变化也就是n(λ)不是常数。波导色散来自模式场分布随波长变化引起的有效折射率改变。两者方向可以相反所以才会有零色散波长这个说法。COMSOL里处理材料色散最简单的方式是直接把折射率设为波长表达式或者使用内置的光学材料。我以前偷懒用过固定折射率结果当然也能画出neff曲线但neff随波长的下降几乎全部来自波导色散D数值和实测对不上。后来把材料折射率换成Sellmeier公式曲线才基本贴合实际光纤数据。Sellmeier公式长这样n²(λ) 1 Σ Bi·λ² / (λ² - Ci²)。对石英光纤不同的掺杂会有不同的系数组。仿真时把这些系数直接写进COMSOL的材料定义里会稍微增加计算量但对色散图来说非常值得。如果你只需要看模式数量和模场分布固定折射率也够用一旦涉及色散D就必须用色散材料。3. 实操流程从几何建模到画出第一条色散曲线3.1 模型准备与物理场选择COMSOL建模的第一步是选择物理场和研究。对光纤模式分析我用的是“电磁波频域”接口研究类型选择“模式分析”。如果你装的是整个软件套件这个接口在波动光学模块和射频模块里都有核心设置基本等同。维度选2D对于均匀光纤足够了。光纤沿z轴是平移不变的横向截面上的模式本征值与z无关不需要建3D模型。这个思路很关键截面一个圆算出来的是这个截面内所有可存在的模式传播方向由本征值β隐含给出。研究里有个“特征值搜索”设置COMSOL默认找基模附近或包层折射率附近的解。对于普通光纤把搜索基准设为略低于芯层折射率、高于包层折射率的实数一般能稳定找到导模。如果希望解的排序稳定需要勾选“按有效折射率排序”之类的选项不同版本位置略有差异。3.2 几何与材料参数设置建模几何不复杂核心是一个圆芯加一个圆包层。以典型通信单模光纤为例芯层半径取4.1μm包层半径取62.5μm完整包含涂覆层之前的石英包层。如果你要算高阶泄漏模建议在包层外面再加一圈PML厚度取1-2倍波长这个后面细说。材料分开设置芯层区域给一个折射率包层区域给另一个。比如芯层1.4503 1550nm包层1.4457 1550nm数值孔径就大约是0.12V数约2.0正好单模。要计入材料色散的话直接定义折射率函数n(λ)我通常新建一个全局参数lambda然后材料折射率用这个lambda的函数表达式Sellmeier系数放在参数列表里。有一点我特别提醒COMSOL里波长lambda默认单位是米你如果习惯用微米定义参数要在表达式里写lambda[um]或者直接以m为单位设置扫描范围。单位搞混是新手最频繁翻车的地方轻则曲线横轴全错重则特征值全部异常。3.3 边界条件与PML的处理模式分析时包层外边界反射会影响解的真实性。物理上光场在包层外应该衰减到零没有反射所以你要么把包层半径取得足够大让场自然衰减要么加散射边界条件要么加PML。对导模来说包层半径62.5μm已经足够大直接设默认的完美电导体边界也能算出不错的neff实部因为场在边界处早衰减完了。但如果你要准确计算泄漏模或包层模就得上PML否则虚部会完全失真。PML在COMSOL里是一个单独的域材料类型选“完美匹配层”需要设置成各向异性的吸波介质。几何上PML可以是一圈包裹在包层外的圆环网格要画成映射网格层数至少4到8层才能有效吸收入射波。我习惯把PML外半径设到70μm左右用映射网格扫掠生成。注意一点加了PML后模式分析涉及复特征值求解器会慢一些。如果只是导模分析其实不必加PML如果算泄漏模又绕不开它。建议分两种情况各存一个模型文件。3.4 网格划分到底多细才够网格是模式分析最影响结果的环节之一。规则是每个模式场的空间变化至少要能分辨最大单元尺寸控制在介质内波长的1/5到1/10。介质内波长是λ/n_eff在1550nm、neff约1.45的情况下约1.07μm最大网格边长取0.2μm左右是比较稳的。我不推荐直接全局用极细网格因为包层大部分区域场非常弱加密那边纯属浪费。更合理的做法是芯层和芯包界面附近用细网格最大边长0.1到0.2μm包层中段逐渐增大到0.5到1μmPML用映射网格单独控制。COMSOL可以按域设置网格序列每个域一个最大单元尺寸这样计算量小很多neff精度还更高。网格太疏的典型后果是neff偏大或曲线抖动高阶模尤其明显。如果扫描波长范围很大短波长端分支模式场更集中网格要求会更严格。稳妥起见可以以最短扫描波长来估算网格尺寸。比如扫描到1260nm介质波长约0.87μm最大边长取0.15μm比较保险。3.5 特征值求解与波长参数化扫描研究设置里“所需模式数”我习惯设成6到8个而不是默认的1个。因为单模光纤在近红外波段可能只有1到2个导模但设定更多模式数有助于观察截止区域和模式进入泄漏区的过程而且多几个模式对计算量影响很小。特征值搜索基准要用“围绕芯层折射率”不能默认为1。比如算到1550nm基准neff设为1.45左右。如果搜索范围太宽求解器会返回一堆包层模甚至数值伪模太窄又会漏掉想要的模式。我一般把搜索目标放实数1.44到1.46之间具体按光纤参数微调。波长扫描是个重头戏。直接在“研究”里把波长设为参数lambda然后加一个“参数化扫描”扫描范围按需求设。比如做C波段扫1520到1580nm步长2nm做宽谱可以从1260扫到1650nm步长10nm先快速看趋势再逐步加密。参数化扫描计算完解会按波长和模式编号存成数据集后处理时直接把所有组画在一起就能看到色散曲线。这里有个小技巧COMSOL在参数扫描时每个波长下模式编号的顺序不保证连续对应。也就是说1550nm解出的第3个模式和1560nm解出的第3个模式未必是同一个物理模式。后面画曲线时会表现为曲线跳变这个问题我单独放到常见问题章节讲。3.6 后处理把色散曲线画出来求解完成后默认会显示最后一步的电场模分布。先确认每个模式的场形状基模是中心亮斑高阶模会有两个瓣、四个瓣或者环状分布。做完这一步心里对“模式编号对应什么场型”就有了数。然后新建一维绘图组“全局”绘图。多数情况下直接用解里的neff变量横轴选lambda纵轴选real(neff)每组曲线用不同颜色。如果解里没有直接暴露neff变量可以用beta/(2*pi/lambda)自己构造。画群色散D曲线更麻烦一点需要对neff关于波长求二阶导。COMSOL一维绘图里可以插入“导数”运算或者把结果导出后用脚本做数值微分。我更习惯先把neff数据导出成CSV用脚本处理因为脚本里可以控制平滑和插值处理避免直接在COMSOL里因为数据点稀疏导致求导噪声爆炸。这一步处理出来就是标准的色散系数曲线D(λ)单位换算成ps/(nm·km)。4. 常见问题与排查技巧实录4.1 为什么找不到目标模式这是被问得最多的问题。症状表现是模式分析运行后只有几个neff接近1的包层模或者全是虚部很大的泄漏模找不到像样的导模。排查顺序先看材料折射率差对不对。如果芯层和包层折射率设得差不多折射率差小于0.005导模约束很弱neff和包层折射率几乎贴在一起特征值搜索范围稍窄就会漏掉。其次看特征值搜索基准默认1往往太低要把基准指向芯层折射率附近。最后看网格如果网格粗糙到连场都形不成求解器也会给出离谱的解。还有一个容易被忽略的问题波长单位写错导致实际计算波长放大1000倍。比如你想算1550nm结果在几何和材料里用的长度单位是μm波长参数却写1550e-9 m这样没问题但如果你把lambda定义成1550单位写作m几何是微米那实际波长是1550米模式自然不存在。4.2 曲线跳变和模式追踪混乱参数化扫描后neff曲线出现“锯齿”或突然跳了一段十有八九是模式编号重排问题。COMSOL每个波长独立求解特征值的排序是固定的但这种排序不一定匹配物理模式的连续性。比如某个波长下高阶模的neff略低于另一个模式求解器可能交换了它们的位置。解决办法有几个方向。第一减小波长步长让neff每一步变化足够小匹配概率提高第二使用COMSOL的“解分组”功能或者在后处理时把每个波长下的电场分布单独导出来和模式曲线人工对照第三如果模式数不止一个可以针对每个物理模式设置单独的“特征值搜索”研究步骤锁定某个模式范围来追踪。最笨但最有效的办法是按波长一个一个求解把想要的模式单独存成一组数据然后再合并成曲线。这样做虽然操作繁琐但曲线干净可靠。我个人的经验是判断曲线跳变最直接的方法就是看模式场图。色散曲线上出现异常拐点或跳变时把跳变两侧两个波长处的电场分布调出来看一眼立刻知道是不是同一个模式。这个习惯能让排查快很多。4.3 网格和收敛性引起的数值抖动如果扫描出来的neff曲线虽然有趋势但上面布满了小毛刺不像实验曲线那样光滑大概率是数值误差主要来自网格不足。典型特征是基模曲线看起来还算光滑高阶模曲线毛刺明显因为高阶模场变化更快同样网格下离散误差更大。处理办法不是无脑全局加密而是针对芯层和芯包边界加密。把芯层最大网格边长从0.2μm降到0.1μm高阶模平滑度会显著改善。也可以改用二阶或三阶单元COMSOL默认一般用二阶拉格朗日单元升高阶数对模式分析有明显收益代价是内存和计算时间增加。另外如果参数化扫描里相邻波长步长过大色散D曲线会在求导后呈现剧烈振荡。这个不是网格问题是数据采样密度问题。常规做法是把波长步长加密或者导出后做小窗滑动平均。我不推荐用太激进的平滑否则会把真实的色散细节抹掉。4.4 材料色散参数与实验结果对不上算出的neff曲线分布和实验测量始终差一个量级或者D曲线零色散点位置明显偏移多半是材料色散没加。固定折射率做模式分析时模式色散图只包含波导色散忽略了石英本身的色散两者数值量级相当甚至材料色散更大结果当然对不上。解决方法是把Sellmeier公式引入材料。常见石英光纤的Sellmeier系数在光学手册上可以查到取芯层和包层两组略有差异的系数即可。注意系数是在特定掺杂浓度和工艺下拟合的不同来源数据会有细微偏差仿真结果和实验稍有出入很正常通常差几个ps/(nm·km)以内。如果你只关心某个窄波段也可以用更简单的线性近似n(λ)n0 dn/dλ·(λ-λ0)在窄带内足够准而且表达式更简单、调试更快。但做宽谱扫描时还是老老实实用Sellmeier。4.5 算得太慢怎么办参数化扫描的波长点动辄几十个每个点再解6个模式计算时间会累积得很明显。想提速可以按优先级做这几件事把包层外半径适当缩小。只要能保证基模场衰减到边界时足够小62.5μm也许可以缩到30μm网格量大幅下降。不要全局均匀网格。包层外侧和PML用稀疏网格芯层才加密。减少所需模式数。如果你只关心前3个模式模式数设为5就够了别设10。先用粗网格大步长快速扫一遍确定大概曲线走势和模式数量再用细网格小步长只扫你关心的波段。如果模型允许可以把求解类型从“模式分析”切换到“特征频率”扫描虽然不太常见但在某些窄带扫描场景反而更快。内存问题更常见于PML加太厚。PML区域本身是数值吸收层不需要物理上足够大4到8层映射网格就够不要按物理尺寸堆厚度。否则网格数爆炸内存直接吃满。4.6 一份排查速查表症状最可能原因检查与解决方向找不到导模只有包层模特征值搜索基准太低或折射率差太小搜索基准设为芯层折射率附近检查n_core-n_cladneff曲线有小毛刺网格不够细或单元阶次低芯层网格加密到0.15μm考虑升三阶单元曲线跳变、不连续参数扫描模式编号重排缩小波长步长用场分布人工确认模式身份包层外场不衰减包层半径太小或边界反射扩大包层半径导模可不加PML泄漏模neff虚部异常缺少PML或PML网格过疏加PML并映射网格4-8层色散D数值明显偏离材料折射率是常数没有色散换Sellmeier折射率表达式计算极慢全局网格过细或PML过厚按域设置网格控制PML厚度波长横轴数值错乱单位混用统一长度单位检查lambda以m为单位5. 一点实操体会模式色散图这个东西参数就那几个芯半径、折射率差、波长范围、模式数。但真做出干净连续的曲线我踩过的坑比想象中多。印象最深的一次是扫描完C波段发现高阶模曲线有个“鼓包”我以为发现了什么特殊效应后来重新算了一下才发现是包层边界反射引起的数值伪模把包层半径加大后鼓包消失了。那次之后我就养成一个习惯任何可疑的曲线特征都要回到场分布图上去验证而不是直接当作物理现象。另外一个小建议是每完成一次扫描就把关键波长的电场分布截图存档配上曲线图形成一个“模式-场型-色散”对照表。后续写报告或者做方案评审的时候这套对照材料很有说服力也能帮自己快速定位问题。如果你打算在这个方向上继续深入可以考虑给模型加参数化几何让纤芯半径、折射率差都变成可扫描变量这样就能一次扫出不同光纤参数下的色散图观察模式截止和色散零点的变化趋势。再往后还能做弯曲波导、非圆芯、多芯光纤的模式分析原理和操作路径都是通的。模式色散图只是起点但把这个起点做扎实了后面很多事都会顺。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑