1. 微透镜阵列单元透镜的焦距与数值孔径参数计算

任务边界与设计输入

本例要解决的是:在给定 OCS 光路耦合效率与工作距离要求下,反推单个微透镜的曲率半径 R、矢高 h、焦距 f 与数值孔径 NA,并检查这些参数是否与后续阵列排布(周期、厚度、边缘厚度)相容。设计输入取一组明确的教学示例参数:工作波长 λ=1310 nm,透镜材料为熔融石英(n≈1.447 @1310 nm),目标工作距离(透镜顶点到光纤端面)WD=250 μm,OCS 单端口要求耦合效率 η≥85%,对应允许的最大会聚半角约 8°(即 NA≈0.14),透镜通光口径 D=125 μm(与 125 μm 光纤芯/包层匹配的典型值)。

从 NA 与 WD 反推焦距

对近轴薄透镜,数值孔径与焦距、口径的关系为 NA ≈ D/(2f)(空气中,小角度近似)。由 NA 上限 0.14 与 D=125 μm 可得焦距下限:

f ≥ D / (2·NA) = 125 / (2×0.14) ≈ 446 μm

同时,工作距离 WD 与焦距、后焦距的关系为 WD = f − BFL_offset,对平凸透镜(平面朝光纤侧)可近似取 WD ≈ f − h,其中 h 为矢高。若先忽略矢高,f≈WD=250 μm 会给出 NA≈0.25,远超 0.14 上限,说明单靠 WD 定焦距会违反耦合效率约束。因此需要把 WD 与 NA 两个约束联立:取 f=450 μm 时 NA=0.139,满足 η 要求;此时 WD 需通过矢高修正来匹配 250 μm,即要求 h≈200 μm,这已接近口径量级,属于强弯曲透镜,需要进一步核算。

曲率半径与矢高的联立计算

球面矢高公式为 h = R − √(R² − (D/2)²),薄透镜造镜者公式为 1/f = (n−1)·(1/R₁ − 1/R₂)。对平凸透镜(R₂=∞,凸面朝物方),有 f = R/(n−1),即 R = f·(n−1)。取 f=450 μm、n=1.447:

R = 450 × 0.447 ≈ 201 μm
h = 201 − √(201² − 62.5²) ≈ 201 − 191.0 ≈ 10.0 μm

这里出现关键矛盾:按 f=450 μm 算出的矢高仅约 10 μm,对应 WD≈440 μm,远大于 250 μm 的目标。也就是说,在给定材料与口径下,NA≤0.14 与 WD=250 μm 不能同时由单个平凸透镜满足。这正是本例要暴露并判断的核心结论,而不是硬凑一组“看起来都对”的参数。

参数可行性与阵列排布约束判断

把上述计算整理成可判读的参数表,并给出阵列排布侧的约束检查:

参数计算值/范围约束来源判断
焦距 f≥446 μm(NA 约束);WD 约束倾向 250 μmNA≤0.14;WD=250 μm两约束冲突
曲率半径 R≈201 μm(f=450 μm 时)R=f(n−1)可加工
矢高 h≈10 μmh=R−√(R²−(D/2)²)远小于 WD 需求
数值孔径 NA≈0.139(f=450 μm)NA=D/(2f)满足 η 约束
阵列周期 p需 ≥ D=125 μm,建议 127 μm 标准值避免相邻透镜交叠与 D 相容
基片厚度 t需 ≥ h+边缘厚度,建议 ≥ 300 μm结构强度与矢高容纳需复核

结论是:若坚持 WD=250 μm 且 η≥85%,应放宽材料选择(提高 n 以在相同 R 下获得更短焦距)或改用双凸/非球面结构,或把 WD 目标调整到约 440 μm。下面的 SVG 把“NA 约束线”和“WD 约束线”画在同一张参数关系图上,直观显示两条约束在 (f, h) 平面上的可行域为何不重叠。

单透镜参数关系:NA 约束与 WD 约束的可行域 焦距 f (μm) 矢高 h (μm) 0 200 400 600 800 0 50 100 150 200 NA≤0.14 → f≥446 μm WD=250 μm → h≈f−250 实际矢高 h(f)(n=1.447, D=125 μm) f=450 μm 时 h≈10 μm 距 WD 约束线差约 190 μm 仅满足 NA 的区域 NA 约束 WD 约束 实际矢高曲线

可执行的核算脚本与判读

把上述联立关系写成一段可直接运行的 Python 核算脚本,输入材料折射率、口径、目标 WD 与 NA 上限,输出 R、h、f、NA 以及是否满足约束的判定。脚本不依赖外部库,便于在任意环境复算。

import math

def lens_check(n=1.447, D=125.0, WD_target=250.0, NA_max=0.14):
    # 由 NA 上限反推焦距下限
    f_min = D / (2 * NA_max)
    # 在 f_min 附近取候选焦距,计算 R、h、NA、WD
    results = []
    for f in [f_min, f_min*1.1, f_min*1.5, WD_target]:
        R = f * (n - 1)
        if R <= D/2:
            continue
        h = R - math.sqrt(R**2 - (D/2)**2)
        NA = D / (2 * f)
        WD = f - h
        ok_NA = NA <= NA_max
        ok_WD = abs(WD - WD_target) <= 0.05 * WD_target
        results.append((f, R, h, NA, WD, ok_NA, ok_WD))
    return results

for r in lens_check():
    f, R, h, NA, WD, ok_NA, ok_WD = r
    print(f"f={f:6.1f} R={R:6.1f} h={h:5.1f} NA={NA:.3f} WD={WD:6.1f} "
          f"NA约束={'通过' if ok_NA else '不通过'} WD约束={'通过' if ok_WD else '不通过'}")

按示例参数运行,预期输出会显示:f≈446 μm 时 NA 刚好达标、WD 约 436 μm;f=250 μm 时 WD 接近目标但 NA≈0.25 不达标。这与 SVG 中两条约束线不交于实际矢高曲线的结论一致。判读规则是:只有当某候选焦距同时落在 NA 约束线右侧且 WD 偏差在 ±5% 内,才认为该组 (R, h, f, NA) 可用于后续阵列排布;否则应调整材料折射率、口径或 WD 目标,而不是强行取中间值。

若必须保留 WD=250 μm,可把材料换成 n≈1.8 的高折射率玻璃:此时 R=f(n−1) 增大,相同 f 下矢高增大,WD 缩短,NA 约束与 WD 约束才可能同时满足。这一替换方向可在下一轮参数扫描中直接验证。