ZEMAX单模光纤耦合:FICL与POP算法边界与效率校核 简介面向光学设计、光纤通信与耦合建模学习者的 Zemax 实操范例文档适合已具备软件基础、希望深入理解单模光纤耦合系统建模与优化流程的读者。内容以 SUSS MicroOptics FC-Q-250 微透镜阵列耦合两根康宁 SMF-28e 光纤为案例围绕 1.31μm 波长下 9.2±0.4μm 模场直径展开涉及系统对称性与孔径光阑设置、旁轴高斯光束分析、GBPS 操作数优化以及能量传输和模式耦合两类效率计算并讨论像差、渐晕、偏振传输等因素对耦合性能的影响。文档还提示数值孔径的不同定义、切趾设置与透镜实际孔径对模式传输的限制有助于理解理论计算和优化结果的差异。资源包共 1 个 doc 文件大小约 504KB内容集中便于对照软件界面查阅与练习。已有 3603 人学习可作为光纤耦合专题的入门案例与建模参考。1. 同一套结构两套算法差一倍单模光纤耦合模型到底卡在哪在 ZEMAX 里搭单模光纤耦合多数人第一步就是打开单模光纤耦合计算挂上 FICL 优化效率跑到 0.99觉得齐活。可一旦把两组透镜的间距从 2mm 拉到 20mmFICL 还是报 0.99换成物理光学传播再算只剩 0.57同一套结构、同一个波长、同一根光纤两套算法给出差一倍的答案很多人到这一步就卡住了。这套范例要解决的就是这件事在 1.31μm 波段用微透镜阵列耦合两根 SMF-28e 单模光纤从建模准备、三种算法的适用边界到优化操作数怎么选、结果怎么读一条线走完。适合正在做光通信器件课设、光纤耦合毕设或者要给一份耦合方案做交付评审的人。2. 设计前准备把对称性、光阑位置和数值孔径定义先钉死搭模型之前有三件事必须先在纸面上定下来否则后面优化跑得再顺也是错的系统是不是对称的、光阑放在哪个面、数值孔径按哪种定义取。这三件事在范例里全踩过也全是后面效率对不上的根源。2.1 几何拓扑与 Pick-up solve 的对称性约束整套系统的几何非常朴素源光纤端面、第一个微透镜的前后表面、第二个微透镜的前后表面、接收光纤端面。范例把物面到第一个透镜的距离和第二个透镜到像面的距离都设成 0.1mm理由是这两个尺寸贴近实际装配时的对准间隙两组透镜之间的距离设成 2mm因为这是实测采用的数值。真正关键的不是这几个数字是那个 Pick-up solve。表面 5第二个透镜后表面的厚度不独立设置而是用 Pick-up 绑定到表面 1物面到第一个透镜的距离比例为 1。原因很直白两端的透镜和光纤在制造公差内是完全一致的那么整个系统就应当满足空间反演对称正着装和倒着装应该给出同样的耦合结果。这个约束一旦成立系统里真正自由的变量就只剩一个——光纤到透镜的距离。优化维度从 2 降到 1收敛快而且不会出现“两边厚度各自跑飞、看起来效率很高但实物装不出来”的情况。面编号不同版本的范例文件可能略有出入建模时以自己文件里的实际编号为准。贴一份典型的面表供对照面角色厚度设置半口径1源光纤端面 / 物面0.1mm设为变量由模场决定2第一个透镜前表面透镜中心厚120μm3第一个透镜后表面光阑面透镜间隔 2mm120μm4第二个透镜前表面透镜中心厚120μm5第二个透镜后表面Pick-up 表面 1比例 1.0120μm6接收光纤端面 / 像面—由模场决定微透镜本身的参数在这份范例里是给定的熔融石英基片、厚度 0.9mm、内部透过率大于 0.99、透镜直径 240μm、节距 250μm、曲率半径 330μm、圆锥常数 0、数值孔径 0.17。这些数直接决定后面光束会不会被透镜口径切掉建模时一个都不能省。2.2 三种数值孔径定义的口径换算这是整套方案里最容易翻车、又最不显眼的一处。同一个“数值孔径”在这份范例涉及的资料里至少出现了三种口径定义数学含义SMF-28e 对应值用在哪边缘光线倾角正弦sinθ几何边缘约 0.14 量级几何光学粗算强度降到 1/e² 处高斯光束半角正弦约 0.09Zemax 耦合计算、POP功率降到 1% 峰值处厂商数据表口径0.14产品手册标称厂商数据表给的 0.14 用的是第三种口径而 Zemax 的单模光纤耦合计算和 POP 里的接收端模式默认走的是 1/e² 口径。直接把 0.14 填进设置窗口接收端的高斯模式会比真实模式胖一圈模式重叠积分被系统性低估你会在一个其实没问题的系统上反复加非球面。换算本身不难。模场直径 9.2μm 对应束腰半径 w₀4.6μm波长 1.31μm高斯光束远场 1/e² 半角近似为θ ≈ λ / (π·w₀) 1.31 / (π × 4.6) ≈ 0.091 radsinθ 与 θ 在这个量级几乎相等所以 1/e² 口径的 NA 就是 0.09 左右和厂商的 0.14 差着 50% 以上。这个 0.09 就是后面单模耦合计算窗口里该填的数。我的习惯是把这个换算写成注释挂在设置窗口旁边谁接手都能看懂为什么不是 0.14。2.3 浮动光阑与高斯切趾的建模取舍系统孔径光阑设成“按光阑尺寸浮动”float by stop size光阑面放在第一个透镜的后表面。这意味着系统的入瞳大小不是人为指定的而是由透镜的实际物理口径决定——范例里是半径 120μm。改成固定入瞳直径你就看不到渐晕了系统效率会一直显示 1.0把最该关注的损耗藏了起来。孔径上还定义了高斯切趾Gaussian apodization用来让入射光束呈现高斯分布。这里要说清楚切趾只是对光纤出射模式的一种近似它把振幅按高斯型衰减但并没有真正把光纤的模式场搬进模型。近轴、短距离的场景下这个近似够用一旦光束在两片透镜之间跑得远、衍射开始起作用切趾的偏差就会暴露。这也是为什么后面必须补一档物理光学传播。到这一步模型里应该有的东西是一张面表、一个独立变量、一个浮动光阑、一组高斯切趾以及一个写清楚了的 NA 口径注释。四样齐了再往下走。3. 两级快速估算GBPS 定距离、FICL 定效率的接力顺序范例给出的分析路径是有梯度的先用最便宜的旁轴高斯光束拿到量级再用单模光纤耦合计算拿到可交付的效率最后才上物理光学传播做严格校核。跳过前两级直接上 POP你会发现变量多、收敛慢还不知道结果靠不靠谱。3.1 旁轴高斯的束腰跟踪与 1/e² 光斑判读旁轴高斯光束计算Analysis Physical Optics Paraxial Gaussian Beam是最省事的一档。范例里光束束腰始终相对表面 1 计算表面 1 和物面同位所以束腰半径 4.6μm 就落在源光纤端面上正好对应模场直径 9.2μm。跑完之后要盯两个数。第一是各面上的 1/e² 光束直径范例里表面 3 上是 65μm表面 4 上是 70μm而这两个面的物理半口径是 120μm也就是全口径 240μm。光斑占口径不到三分之一说明透镜口径不是主要瓶颈但也意味着还有余量可以拿来换别的指标。第二是像面光斑范例给出 5.3μm而按系统对称性理想情况下像面束腰应该回到 4.6μm。这 0.7μm 的差距就是离焦说明 0.1mm 这个初始距离还没调到最佳。这一步的价值在于给你一个“应该长什么样”的基准。后面不管用哪种算法像面束腰偏离 4.6μm 太多先怀疑设置而不是怀疑系统。3.2 一条 GBPS 优化函数把 0.1mm 推到 0.117mm既然唯一要动的变量是光纤到透镜的距离优化函数就简单到只有一行。Zemax 里对应的操作数是 GBPS旁轴高斯光束尺寸思路是把某个面上的高斯光束尺寸压到目标值。范例的做法是直接把束腰尺寸的目标定成 4.6μm让优化器去调表面 1 的厚度。# 优化函数编辑器Merit Function Editor核心条目 # 操作数 作用面 目标 权重 说明 GBPS 1 4.6 μm 1.0 把束腰半径压回模场半径 # 变量设置Variable Solves # 表面 1 厚度变量 V # 表面 5 厚度Pick-up 于表面 1比例 1.0不参与独立优化参数上要留意的有两点GBPS 的作用面要指向束腰所在的那个面本例是表面 1目标值填的是半径而不是直径填 9.2 会直接把系统调偏一倍。权重给 1.0 就够因为只有一个操作数不存在互相打架的问题。优化跑完给出的光纤到透镜距离是 0.117mm比初始的 0.1mm 多了 17μm。这个量级很符合直觉装配间隙本来就该在零点几毫米以内优化只是在这个范围内做微调。如果优化器把距离推到 0.5mm 甚至更大八成是变量设错了或者 Pick-up 没生效。3.3 单模光纤耦合计算的 S 与 T 两条链路第二档是单模光纤耦合计算Analysis Calculations Fiber Coupling Efficiency它比旁轴高斯强的地方在于真的把光纤模式当成一个有形状的场来处理而且把结果拆成了两个独立的量。系统效率 S 描述的是能量传输从源光纤辐射出去的全部能量做分母穿过入瞳、经过系统振幅传输函数 t(x,y) 之后剩下的能量做分子。它只关心“过去多少”不关心“过去的形状对不对”。表面反射、材料体吸收、光阑渐晕、镀膜都算在这一项里。模式耦合效率 T 描述的是形状匹配把出瞳处汇聚波前的复振幅 W(x,y) 和接收光纤的复振幅 F_r(x,y) 做相干重叠积分两者振幅和位相都对上时 T 取最大值 1.0。像差、离焦、模式尺寸不匹配都体现在这一项上。Zemax 会同时给出 S、T以及一个在忽略像差、但考虑渐晕和振幅失配前提下的理论最大耦合效率。这三个数摆在一起看问题定位就很快S 掉了查光阑和镀膜T 掉了查离焦和像差两个都接近 1 而总效率上不去那就该考虑系统本身还有没有提升空间。设置窗口里那个 NA 就填上一章算出来的 0.09。填错这一个数后面所有结论都歪。3.4 FICL 优化后为什么只有接收端效率在涨效率优化用 FICL 操作数同样只有一行。范例跑几个循环之后光纤到透镜的距离从 0.117mm 变成 0.11mm。注意这个值和旁轴高斯给的 0.117mm 并不完全一致差 7μm原因是两种算法对“最佳”的定义不同旁轴高斯只看束腰尺寸FICL 看的是完整的模式重叠积分。更有意思的是结果的结构优化前后系统效率几乎没变涨的是接收端效率。原因很清楚——系统效率主要由透镜口径和模式尺寸的比例决定少量离焦改变不了多少能量通过率而接收端效率对波前位相敏感重新聚焦让源光纤模式经过系统之后和接收光纤模式对得更齐这一项才涨得动。看懂这个分工你就知道该往哪个方向加优化自由度想提 S 就加大口径或者减镀膜损耗想提 T 就上非球面、加面、消球差。范例里 T 的这一轮优化之后效率基本已经贴到这个构型的极限再加操作数意义不大。这时候该换算法了。4. 物理光学传播POP 怎么把 20mm 间距下的 0.57 算出来前两档方法都建立在“光束始终是理想高斯”的假设上。系统短、光斑小、口径余量大这个假设成立一旦传输距离变长、光束在自由空间里长胖到接近口径假设就崩了。POP 就是用来处理这个崩塌的。4.1 POP 设置采样率、起始矩阵与重叠积分面物理光学传播Analysis Physical Optics Physical Optics Propagation的设置窗口里最要紧的是三件事。第一是起始场。范例在表面 1 上定义束腰半径 4.6μm 的高斯模式和源光纤的模场对上。第二是采样。范例用了 256×256 的采样率并且点了 Auto 按钮让软件自动给出合适的起始矩阵尺寸——这一步不能省手填一个过大或过小的矩阵要么采样点稀到束腰只有几个点要么窗口小到光束被边界截断两种都会让结果失真。第三是重叠积分面本例选在像面并且在像面上用完全相同的模式去算重叠积分。# POP 设置要点物理光学传播窗口 # Beam definition : Waist, 半径 4.6 μm位于表面 1 # Sampling : 256 × 256起始矩阵点 Auto # Display : Cross-section / Irradiance / Phase # Fiber coupling : 在像面做重叠积分接收模式同源模式起始矩阵点 Auto 这个动作实际是在问软件“按你这个束腰和波长多宽的窗口才能容纳传输过程中的光斑”。省掉它后面所有关于效率的讨论都没有意义。4.2 POPD 数据怎么读从 Pilot Beam Waist 到 M²优化函数编辑器里的 POPD 操作数能一次性把 POP 的整组数据吐出来比在窗口里看图方便得多。范例给出的读数大致是这样序号含义数值0总光纤耦合效率0.9941系统效率0.9982接收端效率0.99610导引光束束腰4.57μm23有效光束宽度4.84μm26M²1.082这组数里真正值得花时间的是 M² 和位相。M² 为 1.082说明出射光束几乎还是理想高斯振幅分布没问题那么剩下的失配就只可能来自位相。把 POP 窗口的显示切成位相图会看到一条抛物线和一点四次曲线成分——抛物线对应聚焦离焦四次曲线对应球差。透镜边缘处还能看到位相曲线被生生截断的痕迹那是口径渐晕留下的印记。系统效率 0.998 也印证了这一点透镜口径造成的能量损失不到 1%。既然振幅几乎完美、能量几乎全过那么想再提效率就只能动位相而位相差集中出现的区域能量很低所以再怎么优化提升也有限。这类判断光看一个总效率数字是做不出来的。要在同一张图上同时看光强和位相做法是把 cross-section 形式的辐照度图输出然后 Window Clone 克隆一份把克隆窗口改成显示位相再用 Window 菜单里的 Overlay 把两条曲线叠上去。这个叠加图是答辩时最有说服力的一张。4.3 把间距拉到 20mm衍射如何让效率从 0.99 掉到 0.57前面所有结论都建立在 2mm 的透镜间距上。把间距改成 20mm分岔立刻出现。FICL 算出来还是 0.99几乎纹丝不动。这符合光线光学的逻辑光束在两组透镜之间近似准直传输光线追迹看不到发散自然算不出损耗。POP 算出来是 0.57几乎腰斩。原因就写在光束尺寸里高斯模式在两片透镜之间传输 20mm 之后1/e² 宽度涨到 0.15mm而透镜半径只有 0.12mm。也就是说光束还没到第二个透镜就已经比透镜口还宽相当一部分能量在第二个透镜的物理光阑上被衍射掉。此时聚焦到接收光纤上的光已经不是高斯形状M² 从 1.08 涨到 2.45模式匹配自然崩掉。把这个间距当成变量、固定已经优化好的光纤到透镜距离再跑一轮最优间距回到 2.072mm和实验用的 2mm 只差 3.6%。这个数字很有价值它说明模型的物理是对的实验取值本来就接近最优偏差在装配公差范围内。结论不是“POP 更准所以光线法没用”而是判据要清楚当传输距离带来的光束展宽还远小于口径时光线法够用且快当展宽逼近口径必须换 POP。用 Universal Plot 把透镜间距扫一遍、同时看耦合效率和 M²这条边界在图上会非常直观。4.4 偏振、体吸收与 MgF₂ 增透膜的叠加前面所有计算都默认光在表面无损耗地通过这在实际系统里是不成立的。打开偏振计算就能把这块补上在 POP 和单模光纤耦合计算的设置窗口里勾上 Use Polarization再到 General Polarization 里把入射光定义成 y 线偏振。范例的结果是两档计算的效率都掉到 86%。这 14 个百分点全部落在系统效率上接收端效率基本不动——原因在于菲涅尔反射损耗跟入射角相关而系统里角度变化平缓反射主要削减能量对模式形状的改变很慢。分不清这个归属你就会误以为是模式失配跑去加镜片。接着用 Tools Coatings Add Coatings to All Surfaces 给所有玻璃表面加一层单层 MgF₂ 增透膜效率明显回升。这里不需要背具体数字正确的动作是加膜前后各跑一次把系统效率的差值记下来作为镀膜方案的一个量化依据。如果这层膜带来的提升不足以覆盖成本和工艺难度方案评审时就有话可说。到这一步一份完整的耦合分析才算闭环几何、模式、衍射、偏振损耗四个层面都有对应的数据和判据。5. 避坑排查五处最容易让耦合效率算错的细节5.1 效率怎么调都上不去像面光斑偏大现象优化跑了十几轮接收端效率卡在 0.7 附近不动像面光斑始终比 4.6μm 大一圈。原因耦合计算窗口里的数值孔径填了数据表上的 0.14而软件用的是 1/e² 口径。接收端模式被撑大重叠积分天然偏低优化器再怎么调距离也补不回来。解决按 θ ≈ λ/(π·w₀) 把模场直径换算成 1/e² 口径本例约 0.09。改完再看如果效率跳变明显说明之前一直在跟一个错误的靶子较劲。5.2 优化后两个厚度不相等实物装不出来现象优化结果里光纤到第一个透镜是 0.11mm第二个透镜到光纤是 0.16mm耦合效率还挺好看。原因把表面 1 和表面 5 的厚度都设成了独立变量。两组透镜和光纤在公差内一致系统本应空间反演对称两个变量各自跑等于允许一个不对称的解模型里多出来的自由度换来了虚高的效率。解决只留表面 1 为变量表面 5 用 Pick-up solve 绑定比例 1.0。宁可牺牲一点优化空间也要保证解是可制造的。这条在答辩时几乎必被问到。5.3 系统效率恒为 1.0看不到渐晕现象无论怎么改透镜间距、怎么改波长系统效率一直显示 1.000看不出任何能量损失。原因系统孔径设成了固定入瞳直径光阑没有真正参与限光。浮动光阑的作用是让入瞳由透镜实际口径决定一旦改成固定值光束被口径切掉的那部分就消失了。解决孔径类型改回 float by stop size光阑面设在第一个透镜后表面。设完再跑表面 3、表面 4 上的光斑尺寸和口径的比例关系才有意义。5.4 长间距下光线法报高换成 POP 就崩现象透镜间距 20mmFICL 报 0.99POP 报 0.57两个结果差一倍不知道该信哪个。原因间距拉长后光束在两片透镜之间展宽到 0.15mm超过 0.12mm 的透镜半径衍射已经主导。光线追迹不带衍射看不见这个损耗。解决建立一个换算法的判据——光束 1/e² 宽度超过透镜半径的一半左右就上 POP。同时把 M² 当成健康指标本例里从 1.08 涨到 2.45这个跳变本身就说明模型该换了。5.5 POP 结果随采样数跳变优化不收敛现象采样从 128 改到 256 再改到 512耦合效率每次都不一样优化器在几个解之间来回摆。原因起始矩阵没有点 Auto窗口尺寸和束腰不匹配。窗口过窄会截断光束边缘过宽则束腰处采样点不足两种都会让重叠积分算不准采样数变化时误差跟着变结果自然不稳定。解决先点 Auto 定起始矩阵再用 POPD 读数交叉验证——导引光束束腰 4.57μm 和有效光束宽度 4.84μm 应该接近M² 应该接近 1。两个条件都满足再开始优化。6. 验收与答辩用一组可复现的数字把方案钉住到了交付这一步最怕的不是模型算得不够精而是别人问你“这个 0.99 凭什么可信”时答不上来。我的做法是把验收判据提前列成一张表每个数字都能追到某个窗口、某个操作数。验收项判据数据来源束腰位置与尺寸源面束腰半径 4.6μm与模场直径 9.2μm 对应旁轴高斯光束窗口面内光斑占比表面 3、4 的 1/e² 直径 65μm、70μm远小于 240μm 全口径旁轴高斯 / POP 剖面光纤到透镜距离0.110.12mm且两端厚度严格相等优化后变量表透镜间距优化值 2.072mm与实测 2mm 相差 3.6% 以内间距扫描或 Universal Plot总耦合效率≥0.99无偏振偏振开启后约 0.86POPD 序号 0 / 单模耦合窗口光束质量M² 接近 1本例 1.082POPD 序号 26位相残差位相图中抛物线离焦与四次项球差成分可辨识POP 位相叠加图这张表里最容易被追问的是最后一行。位相图不是装饰它直接告诉你还有没有提升空间如果位相曲线基本平直那效率已经到顶再优化只是自娱自乐如果抛物线明显说明还有离焦可调如果四次项突出那就该考虑非球面或者增加面数。答辩时被问“还能不能更好”指着这张图回答比空口说“理论上还可以优化”有力得多。另一个常被忽略的动作是保存中间文件。范例里从初始模型、GBPS 优化后、FICL 优化后到 POP 之后每一档都留了对应的模型文件。这不是洁癖是为了在评审现场能倒回去演示某一步的中间状态。有人问“你怎么知道是衍射造成的”当场把 2mm 和 20mm 两个间距的 POP 剖面并排放出来比讲十分钟原理都管用。我自己的血泪经验是任何一次优化之前先把当前模型的变量表截图存下来。有一次跑完一轮效率很漂亮回头想复现发现已经记不清当时是哪几个面被设成了变量、Pick-up 有没有生效只能从头再搭一遍。从那以后我每次动优化函数之前都强制走一遍“变量表截图、光阑设置截图、NA 口径注释”三件套宁可多花两分钟。希望帮到你。本文还有配套的精品资源点击获取