做光学设计的同行看到“非近轴衍射分束器”这个标题,应该会下意识多看一眼。衍射分束器本身不稀奇,一束光进来分成若干束,等能量、定角度,激光打标、3D传感里到处都是。但“非近轴”三个字一加上,整个问题的性质就变了:不能再拿标量衍射当万能钥匙,周期小到跟波长一个量级时,偏振、材料边界、倏逝场这些平时可以忽略的东西全会冒出来。这个项目就是用 VirtualLab Fusion 把这类器件从设计到严格分析完整做一遍,文章会拆清楚思路、给出可复现的流程,适合正在做 DOE 设计、或者被大角度分束器搞到头大的工程师参考。
1. 项目拆解:这个标题到底在说什么
1.1 衍射分束器在解决什么实际问题
衍射分束器的本质是个纯相位元件。一块表面刻了微结构的玻璃片,光束穿过去以后相位被空间调制,在远场形成一组离散的衍射级次,每个级次就是一束输出光。它跟半透半反镜那种“分束”完全是两码事:半透半反镜只能分两路,衍射分束器可以一次分成 1×3、1×5、甚至几十上百路,而且各路能量可以设计得几乎相等。
工程上用的场景很典型:激光并行加工时,一束光分成多束同时打多个点,效率翻几倍;结构光 3D 相机里,把单束激光变成散斑阵列投射到被测物体上;光互连领域做扇出,一个通道分到多个通道。这个项目要解决的核心需求就两条:第一,能量尽量集中到目标级次上,不要跑到不该去的地方;第二,目标级次之间能量要均匀,否则阵列加工时有的点烧过了、有的点没烧透。
听起来很简单,但“非近轴”三个字把问题拉高了一个难度等级。
1.2 为什么“非近轴”会颠覆常规设计思路
近轴器件,分束角通常只有几度,光栅周期是波长的几十倍。这种条件下 sinθ≈θ,标量衍射理论足够精确,设计上拿着傅里叶变换一顿迭代就能出结果。可一旦分束角拉到 30° 甚至更大,周期直接被压缩到波长量级,标量近似就站不住了。
用光栅方程算一下最直观。正入射时,第 m 级衍射角满足:
d·sinθ_m = m·λ
假设波长 633nm,想要一级衍射角 30°,那么周期 d = 633 / sin30° = 1266nm,只有波长的两倍。常规 DOE 设计里“周期远大于波长”这个前提已经不存在了。结构内部电磁场在边界处发生强烈的矢量耦合,s 偏振和 p 偏振的透射特性明显不一样,高衍射级次开始漏能量,零级抑制也变差。这些效应在近轴下都是可以忽略的二级修正,在大角度下直接变成主导因素。
所以,非近轴分束器真正难的不是“怎么把光分成几束”,而是“大角度条件下如何准确预测真实器件的效率”。标量设计只能给个粗略的起点,必须用严格电磁场分析去校正。
1.3 VirtualLab Fusion 在这个项目里的分工
VirtualLab Fusion 不是传统的光线追迹软件,它基于物理光学,把光场当作电磁场来传播和分析。设计阶段可以用它的优化模块生成初始相位分布;分析阶段可以用傅里叶模态法(FMM,软件里也叫谐波展开)这类严格求解器计算周期结构的衍射特性。一个软件里完成设计、验证、公差估计的闭环,这是选它的核心理由。
我之前也试过“设计用一套软件、严格分析换另一套”的工作流,结果光是模型转换和数据结构对齐就耗掉不少时间。VirtualLab 的好处是设计变量和严格求解器在同一个模型树上,参数改了直接重算,迭代反馈非常快。
2. 设计端:先拿到一个可用的初始结构
2.1 目标指标与周期参数怎么定
开工前先把指标钉死,不然后面全是糊涂账。以我实际跑的 1×3 分束器为例:波长 633nm,目标出射角 0° 和 ±30°,偏振态先按无偏振处理,总效率目标大于 75%,三个目标级次之间的均匀性误差小于 5%。
周期按光栅方程反推:d = λ / sinθ = 633 / 0.5 = 1266nm。这个周期同时决定了高级次的位置:二级衍射角是 90°,已经掠射,实际不存在;三级更是直接截止。也就是说,除了 0 和 ±1 级,剩下的能量都会变成倏逝场或辐射到基片外的杂散光。了解这一点很重要,因为设计时你不是“让能量只出现在三个峰里”,而是“让能量尽可能挤进这三个峰,其余漏损降到最低”。
接下来选量化阶数。二元相位(0/π)加工最简单,但自由度太低,很难同时把三个级次调均匀。实际项目里我一般用 4 到 8 阶量化,8 阶效果最好,加工成本增加得也不多。设计完成后要把相位分布导入加工格式,这一步后面细说。
2.2 用迭代算法快速生成相位分布
初始相位分布我习惯用迭代傅里叶变换算法(IFTA)生成,也叫 GS 算法的变种。思路不复杂:先随便给一个初始相位,在目标域把振幅强制设成想要的三个等强度峰,在元件域把振幅归一化、只保留相位,来回迭代几百次,让相位分布逐渐收敛到能产生目标光强分布的解。
具体流程:
- 建立目标振幅分布:远场取三个离散峰(-1 级、0 级、+1 级),峰值相等,其他位置振幅设为零;
- 随机生成初始相位 φ0,与单位振幅组成初始光场;
- 正向傅里叶变换到远场,把振幅替换成目标振幅,保留相位;
- 逆傅里叶变换回元件面,把振幅强制为 1,保留相位;
- 重复第 3、4 步,直到目标级次效率变化小于 0.5%。
注意,这里用的还是标量近似,所以迭代很快,几分钟就能收敛。它给的不是最终答案,而是一个靠谱的初始猜测。VirtualLab 的 DOE 设计模块里也内置了类似流程,可以直接在软件里跑,也可以外部写脚本算好相位再导入。我个人更喜欢外部生成再导入,因为可以随时调整算法细节,比如在迭代中加入均匀性约束权重。
2.3 从相位分布换算真实刻蚀结构
相位分布是抽象的,要加工必须变成几何结构。透射式表面浮雕光栅的做法是在熔融石英基底上刻出不同深度的沟槽。相位 φ 和刻蚀深度 h 的关系是:
h = φ · λ / (2π(n - 1))
熔融石英在 633nm 的折射率大约 1.46,所以 2π 相位对应深度 h = 633 / 0.46 ≈ 1376nm。8 阶量化时,最小台阶深度就是 1376 / 8 = 172nm,这个数值直接决定了光刻和刻蚀的工艺极限。如果台阶太浅,加工误差占比就大;如果台阶太深,刻蚀侧壁角和底部粗糙度又会成为新问题。
几何建模时还要注意占空比。占空比指一个周期内凸起部分的宽度占比,它不是随便定的,对衍射效率影响非常显著。初始设计我一般从 50% 开始,后面严格分析阶段再把它作为优化变量去调整。顶部和底部是否做成平面、侧壁是否垂直,这些几何细节在近轴设计里无所谓,在非近轴严格分析里全都会影响结果。
3. 严格分析:为什么标量近似在这里会翻车
3.1 严格分析到底“严格”在哪儿
严格分析的本质是求解满足边界条件的麦克斯韦方程组,而不是解标量波动方程。VirtualLab 里的 FMM 方法把周期性光栅结构在横向展开成傅里叶级数,纵向则用平板波导本征模展开,然后在每一层界面上匹配电磁场边界条件,最终得到所有衍射级次的复振幅。这个过程对 s 偏振和 p 偏振分别求解,所以能够反映真实器件的偏振相关特性。
用生活类比来说:标量分析像是只测房间的温度分布,假设墙壁完全不吸热、不开窗;严格分析则是把墙体材料、窗户朝向、空气流动全算进去,结果自然更接近真实。对于周期只有波长两倍的器件,墙体吸不吸热已经不是修正项,而是主项了。
FMM 特别适合周期性结构。它的计算代价跟层数和截断阶数相关,但因为是频域方法,比 FDTD 时域方法快得多,适合做参数扫描和优化。VirtualLab 里对光栅区域指定 FMM 求解器,可以很方便地扫波长、扫角度、扫几何参数。
3.2 标量与严格结果的实际差异
拿我跑的 1×3 二元光栅结构(周期 1266nm,深度对应 π 相位,占空比 50%)做个对比。标量预测和严格计算的结果差异很大,整理成表更直观:
| 衍射级次 | 标量预测效率 | 严格计算(s 偏振) | 严格计算(p 偏振) |
|---|---|---|---|
| -1 级 | 31% | 23% | 28% |
| 0 级 | 31% | 19% | 21% |
| +1 级 | 31% | 23% | 28% |
| 其他级次/杂散 | 7% | 35% | 23% |
这组数值只是示例,不同结构具体数字会变,但趋势是稳定的:在大角度下,标量方法会高估目标级次效率,低估杂散光比例。原因是深结构中多次反射干涉、边界处矢量耦合、高衍射级次能量泄漏这些效应,标量模型根本没有对应的物理机制。
还有个容易忽略的点:s 和 p 偏振的结果差异在这里已经很明显了,目标级次效率能差 5 个百分点。如果实际光源是线偏振的,你可以按对应偏振做优化;如果光源是无偏振的,设计时必须对两个偏振取平均,否则做成实物后性能跟仿真对不上。
3.3 截断阶数、偏振与收敛性判断
用 FMM 时,最关键的一个数值参数是谐波截断阶数。理论上展开是无穷项,实际只能截断到有限项。截断太少结果不收敛,截断太多计算量暴涨。判断方法很简单:做收敛性测试,把截断阶数从 20 加到 40、60、80,看目标级次效率的变化是否小于 0.1%。如果效率随阶数还在明显漂移,说明没收敛,这组结果不能信。
我常用的做法是先扫一个粗略的截断阶数-效率曲线,找到平台区,然后选平台区中间偏上的值作为正式计算参数。为省时间,优化迭代过程中可以用稍低阶数跑,最后确认结果时再用高阶数精确复算。偏振方面,无偏振光源建议分别算 s 和 p,再取算术平均作为器件标称效率。如果应用场景允许控制偏振,就按实际使用的偏振优化,效率通常能再高几个点。
4. 实操流程:从建模到参数优化的完整路径
4.1 光路建模的步骤与求解器配置
按我习惯的顺序,VirtualLab 里搭一个这样的光路需要五步:
- 放光源:平面波,波长 633nm,正入射,束腰半径设为覆盖至少 20 个光栅周期,避免截断效应;
- 建结构:用周期性表面浮雕光栅模块,周期 1266nm,初始深度和占空比按标量设计值输入;
- 设传播:结构后接一段自由空间传播,传播距离设到满足远场条件,或者直接用角度分辨远场探测器;
- 指定求解器:对光栅区域选择 FMM 严格求解,设置截断阶数;
- 放探测器:用角度分辨的远场探测器记录各衍射级次的功率和相位。
有几个细节容易踩坑。第一,光源尺寸太小会导致衍射峰展宽、效率统计不准,我吃过这个亏;第二,如果做的是二维点阵分束器,需要二维周期展开,计算量比一维光栅大不少,能先用一维验证流程就别直接上二维;第三,求解器设置里的材料模型要指定折射率实部和虚部,熔融石英虚部很小但别省,吸收损耗在大角度多次反射下会被放大。
4.2 参数优化的变量、目标与收敛过程
初始几何算完,均匀性和效率大概率不达标,这是正常的。接下来把 VirtualLab 的参数优化模块打开,做严格分析域内的优化。
变量设为刻蚀深度 h 和占空比,必要时加入量化台阶数。目标函数不要只写“效率高”,要写成“三个目标级次效率之和最大,同时三峰标准差最小”,用加权目标函数把两个需求平衡起来。优化算法先跑几百次,观察目标函数变化曲线,平坦后就收敛了。
以一个示例过程来说明:初始深度 688nm(对应 π 相位),占空比 50%,严格计算结果三个目标级次总效率只有 62%,均匀性误差 12%。优化后深度挪到约 720nm、占空比调到约 45%,总效率升到 75%,均匀性误差压到 3% 以内。这个最优点和标量最优差得很远,说明非近轴器件必须做严格优化,不能拿标量结论直接凑合。
4.3 结果数据要怎么看、怎么留档
结果别只看一个总效率数字。我建议每次跑完固定输出四样东西:各衍射级次效率表、s/p 偏振对比、远场强度分布图、收敛性曲线。这些数据后面做公差分析、写报告、和加工方沟通,全都要用。
效率表里要特别盯三个数:目标级次总效率、零级占比、最高非目标级次占比。零级占比高说明相位深度不对;非目标级次高说明占空比或量化有问题。偏振对比能提前预警,如果 s/p 效率差太大,要跟下游确认光源偏振态。
留档时我把每个优化迭代点的参数和结果存成一个 CSV,命名规则带上日期和版本。这个习惯救过我很多次,因为 DOE 设计经常要回溯,尤其是加工方反馈“某个参数我们做不了”的时候,能快速查到哪些参数组合是次优但可加工的。
5. 常见问题与排查实录
5.1 问题现象与解决方案速查表
把实际项目里遇到最多的问题整理成一张表,方便你遇到类似情况直接查:
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| 目标级次效率远低于预期 | 截断阶数不够,FMM 未收敛 | 做收敛性测试,提高谐波截断数 |
| 0 级怎么也压不下去 | 相位深度偏离严格最优 | 把深度设为优化变量重新扫描 |
| s/p 偏振结果差异很大 | 大角度矢量效应本身显著 | 按实际光源偏振做优化,否则取平均 |
| 远场峰形不对称 | 光源束腰太小覆盖周期不足 | 加大光源尺寸到 20 个周期以上 |
| 优化过程不收敛 | 目标函数权重不合理 | 把效率和均匀性分开设权重逐步调 |
| 杂散光占比高 | 量化阶数太低 | 从 2 阶提高到 4 阶或 8 阶 |
| 与实测对不上 | 加工侧壁角、底部粗糙度没建模 | 用实际工艺参数做公差扫描 |
5.2 我实际踩过的三个坑
第一个坑是不做收敛性测试直接采信 FMM 结果。有一次优化到一半发现效率曲线不光滑,排查半天才发现是截断阶数设太低,高阶衍射级次的能量分配根本没算准。从那以后我把“先扫收敛曲线”写进了流程的第一步,谁也不许跳过。
第二个坑是拿标量设计相位直接出加工文件。当时赶工期,想着角度不算太极端,标量结果应该八九不离十。结果做出来的样品效率比标量预测低了将近 10 个百分点,零级明显偏亮,返工一次,周期直接多了一周。这个教训让我彻底接受了“非近轴必须严格分析”这件事。
第三个坑是优化目标只盯总效率,忽略均匀性。总效率拉到 78% 很漂亮,但三个峰的强度差到 15%,应用方根本没法用。后来改成目标函数同时包含效率和均匀性,两边才平衡住。设计指标一开始就要把均匀性误差写进去,别等优化完再补。
5.3 制造公差分析与加工沟通建议
仿真做完不等于项目结束,还有公差分析。我的做法是对深度、占空比、侧壁角各做 ±5% 的扫描,看效率均匀性掉多少。如果某项参数对结果极其敏感,加工时必须特别标注公差;如果某项参数不敏感,可以适当放宽,给加工方留操作空间。
深度误差的影响通常最致命。相位深度差 5%,在非近轴下可能造成几个点的效率损失。占空比的影响也不小,尤其当最优占空比不在 50% 时,加工方如果按 50% 习惯做线宽,等于直接改设计。侧壁角在大深宽比结构里也不能忽视,超过 88° 的侧壁角会导致效率下降约几个点,具体数值取决于结构。
跟加工方沟通时,我习惯把关键几何参数表、允许公差、仿真预期效率一起给过去,并明确说“哪个参数做不到提前告诉我,我来重新优化”。多数情况下,稍松一点公差,加工良率能大幅提升,器件性能下降得并不多。
6. 最后分享几点个人经验
6.1 设计工具的最佳定位:标量负责速度,严格负责真相
不少人一上来就问:能不能用严格求解器直接做设计?理论上可以,但实际不划算。FMM 严格分析单次计算比标量迭代慢几个数量级,做全参数空间的严格优化非常耗时。我现在的固定打法始终是:标量设计给初值,严格分析做验证和微调,用参数优化在严格求解器上只扫几个最关键的几何参数。这样既快又不牺牲精度。
6.2 项目复用与扩展方向
这个项目做完后,稍微改几个参数就可以复用到其他场景:换波长就重新算周期和深度;从 1×3 改成 1×5 就把目标振幅分布改一下;从透射式改成反射式就把材料折射率实部设为负值并加上金属层模型。二维分束阵列也是同一套流程,只是周期展开从一维变成二维,计算时间要预留充足。
最后再说一个小技巧:所有仿真模型文件里,把光源参数、结构参数、求解器参数全部做成可读的参数表,不要散落在各个面板设置里。这个习惯让模型移交、回溯、复现都变得非常省心。非近轴器件设计本身不轻松,但有了一套可靠的流程之后,它就从“玄学”变成了“工程”。