光学设计与仿真实战指南:从Zemax到FDTD
1. 光学设计与仿真:为什么这两个词正在成为硕博士的必修课
先说个我观察很久的现象。这几年实验室里做课题的师弟师妹,几乎人人电脑里都装着一套Zemax或者FDTD Solutions,连以前只碰电路和算法的同学,也开始问我“超表面该怎么建模”“微带天线的远场怎么提取”。光学设计和仿真,已经从过去少数专业方向的“专属技能”,逐渐变成光学工程、电子工程甚至材料科学领域硕博士的公共基础能力。
为什么会有这个变化?最直接的原因是:**实验成本在涨,仿真成本在降。**一套精密光学实验平台动辄几十万,镀膜、对准、调试的周期按周算,而一套正版学术版仿真软件,加上一台还算能跑的电脑,基本就能把大部分原理验证和参数优化的活提前干掉。更重要是,现在的科研评价体系越来越看重“设计闭环”——不是一个idea发一篇文章就结束,而是从物理模型、数值仿真、参数优化到实验验证,整个链条都要能讲通。仿真就是这个链条上最可控、最可复现的一环。
这篇文章,我不打算给你列一堆软件菜单,也不想写那种“Zemax从入门到精通”的大而全教程。我更想把我在实际课题和项目里反复摸爬滚打出来的经验,拆成几个最实用的层面讲透:**设计思路怎么定、软件怎么选、具体仿真怎么做、出了问题怎么查。**无论你是刚接触光学仿真的低年级硕士,还是已经做了两三年仿真但总觉得差点意思的博士,这里面的内容都应该对你有用。
2. 整体设计思路:别急着打开软件,先想清楚“仿什么”和“为谁仿”
2.1 仿真的三种层次:原理验证、参数优化、系统集成
我见过太多人一上来就打开Zemax,新建一个文件就开始填半径、厚度,填到一半发现不对,又去翻手册。这是典型的“工具驱动”思维,效率极低。做光学设计仿真之前,必须先搞清楚你处在哪个层次。
**第一层是原理验证。**比如你想验证一种新型自由曲面透镜能不能把点光源变成矩形光斑,核心是“这个物理思路是否成立”。这时候仿真模型可以做很多简化:理想光源、单色光、忽略加工误差,只关注光路走向和能量分布。这一层用Zemax的序列模式,或者Code V,甚至用Python自己写个光线追迹脚本,都能完成。
**第二层是参数优化。**原理通了之后,你要面对的是“用什么参数才能达到指标”——曲率半径、非球面系数、材料折射率、厚度公差,这些都是连续变量,靠手调不现实。这时候要用软件的优化引擎,比如Zemax的Hammer Current优化,或者用外部优化算法联合仿真。这一层要特别注意评价函数的设置,它直接决定“优化出来的这个结果是不是你真想要的”。
**第三层是系统集成。**把光学系统放进整机环境里,看它和结构、电路、热源怎么交互。比如车载镜头要在-40℃到85℃下保持成像质量,你光做光学仿真不够,还得把热变形数据导进来,做热-结构-光学耦合分析。这一层往往需要跨工具协作,Zemax搞定光学,ANSYS搞定热和结构,再用Speos或者LightTools做系统级光路验证。
我的建议是:先问自己三个问题——我的核心指标是什么?我能接受的误差范围是多少?我的最终交付物是论文图还是工程图纸?如果是论文图,仿真精度做到“趋势正确”就够了;如果是工程图纸,那公差分析、鬼像分析、镀膜影响一个都不能少。
2.2 软件选型不是越多越好,关键是“模型匹配”
现在市面上的光学仿真软件,粗略分一下有这几种流派:
| 软件 | 核心优势 | 适合场景 | 不适合的场景 |
|---|---|---|---|
| Zemax OpticStudio | 序列成像设计最强,优化功能成熟 | 透镜组、成像系统、公差分析 | 微纳结构、散射体 |
| Code V | 复杂成像系统优化能力强 | 大规模镜头设计、变焦系统 | 非序列、照明系统 |
| LightTools / Speos | 非序列照明、杂散光分析强 | LED照明、导光板、背光模组 | 高精度成像优化 |
| FDTD Solutions (Lumerical) | 麦克斯韦方程级精度 | 超表面、光波导、纳米天线 | 毫米级以上的宏观系统 |
| COMSOL | 多物理场耦合 | 光电探测器、热-光-电联合 | 纯成像优化(效率低) |
我这几年用得最多的是Zemax和FDTD(现在叫Lumerical)这套组合。为什么?因为它们刚好覆盖了光学设计的两端:Zemax处理“几何光学尺度”,也就是光线的弯曲和成像;FDTD处理“波动光学尺度”,也就是光的相位、干涉、衍射和局域场增强。一个宏观,一个微观,正好是现在绝大多数光电课题的完整范围。
很多人踩过的坑是:拿FDTD去仿真一个几毫米的球面透镜,结果网格划得细到内存爆炸;或者拿Zemax的序列模式去仿真一个V型槽超表面,得到的结果和实验差到没法看。说白了,用错工具不是能力问题,是尺度概念没建立起来。光线追迹的成立条件是结构尺寸远大于波长,一旦你做的结构在波长量级甚至亚波长量级,就必须切换到电磁仿真。
2.3 设计流程的骨架:建模→设置→求解→验证→优化
接下来是我在多个课题里反复验证过的标准流程骨架:
理顺物理模型。光源是什么类型(相干还是非相干),结构是二维还是三维,介质各向同性还是各向异性,边界条件是吸收还是周期。这里面每一项都对应仿真软件里一个具体设置,错一个,后面全错。
建立初始模型。能用2D简化就用2D,能把三维简化为轴对称就轴对称。模型复杂度直接决定网格数量和计算时间,简化不是偷懒,而是工程师的基本素养。
设置求解器参数。这一步涉及网格精度、边界条件、求解区域大小、收敛阈值。不要照抄别人论文里的参数,不同结构、不同尺寸、不同材料,收敛行为差异很大。
运行并检查合理性。仿真跑完后第一步不是提取数据,而是做直觉判断:这个场分布对不对?这个效率数值量级合理吗?很多仿真错误(比如边界条件设错、光源功率算错)会导致结果夸张到离谱,但初学者没有“合理性”这根弦,拿着错误结果跑优化,浪费时间不说,还会形成错误认知。
参数化扫描与优化。光做“一次仿真”是验证,做“一组仿真”才是设计。把关键几何尺寸、材料参数设为变量,扫描或者优化,找到满足指标的参数组合。这一步要记录每一步的结果,形成自己的数据台账。
输出与归档。把仿真结果导出成可复现的数据结构:入射场、透射场、远场分布、效率曲线。同时记录软件版本、关键设置、网格参数。我强烈的建议:仿真文件命名一定要包含日期和内容简述,比如“20250611_conical_LP_filter_R2_p001.zmx”,否则半年后再看,你自己都分不清哪个是最终版。
3. 核心实操细节:Zemax与FDTD两大主力的关键设置与避坑指南
3.1 Zemax实操:从设计指标到成像系统优化
第一步是明确设计规格。我做成像系统设计时,习惯把需求写成一张表格:波长范围、F数(F/#)、视场角(FOV)、MTF指标、畸变要求、后焦距、总长限制。这些就是后面评价函数的“宪法”,写得不清楚,后面优化就是无头苍蝇。
举个例子。设计一个焦距50mm、F数2.8、像高4mm的定焦镜头,视场大概对应半视场角4.57度。在Zemax里输入波长(一般用可见光546nm为主波长),设置入瞳直径=50/2.8≈17.86mm,视场用近轴像高或者角度都可以,但要注意:用角度定义视场时,系统会按近轴关系自动计算像高,这样比较直观。
第二步是初始结构的选取。别指望从零开始纯靠优化器自动生成一个镜头。常规做法是从专利库、参考书或者Zemax自带的示例库中找一个焦距接近的结构作为起点,然后在它的基础上做缩放和替换材料。焦距缩放很简单:把所有的曲率半径、厚度都乘以缩放因子 k = 目标焦距 / 原始焦距。但要注意:折射率和阿贝数不能缩放,玻璃必须重新选择。
用一个典型的三片式Cooke Triplet起步的话,初始结构通常表现为一个大光阑前后对称分布的正负正结构。放进去之后,先跑一个“设计优化(Design Optimization)”前的“消色差检查”:三片式结构里,正透镜用低色散冕牌玻璃(如BK7),负透镜用高色散火石玻璃(如F2),这种组合能满足基本的色差校正需求。
第三步是优化设置。Zemax的优化本质是阻尼最小二乘法,评价函数(Merit Function)告诉它“什么是好”。用默认的“RMS Wavefront”还是“RMS Spot Size”?我的经验是:成像中后期用波前评价更准,初期用光斑尺寸评价更容易快速收敛。另外要严格控制优化变量个数。新手最容易犯的错误是把所有半径、厚度、空气间隔全部设为变量,导致优化器在几百维参数空间里乱撞,最终要么不收敛,要么陷入局部极小值。
我常用的做法是:先把各面的曲率半径设为变量,厚度只留空气间隔,玻璃先锁定。等系统优化到基本满足指标,再逐步放开玻璃替换和厚度变量。这样做的好处是,参数变化幅度可控,系统不容易“跑飞”。
第四步是公差分析。这是我反复强调但很多同学会忽略的环节。理论上MTF在衍射极限附近很漂亮,但一到加工装配就崩,原因就是公差没做。Zemax里的公差分析要设置:曲率半径公差、厚度公差、元件偏心与倾斜公差、表面不规则度、折射率与阿贝数偏差。跑一遍“灵敏度分析”之后,看哪个参数影响最大——通常你会发现,空气间隔是最大杀器,其次是镜片倾斜。这时候你需要做“补偿器”:把最后一片透镜的位置设为可调焦补偿,可以显著拉高蒙特卡洛模拟的良率。
提示:Zemax的蒙特卡洛公差分析一次给1000个样本不算多,我通常跑2000个。但要注意运行时间,如果每个样本都需要重新优化,时间会很长。技巧是把“执行失败”的样本单独归档,用它们反向推导设计鲁棒性弱在哪。
3.2 FDTD实操:超表面与电磁仿真必须注意的四个核心设置
现在很多做超表面、光子晶体、纳米天线的同学都在用FDTD。这个软件算的是麦克斯韦方程组的时域解,理论上“哪里都能算”,但实际上算得动算不动,完全取决于你网格怎么划、边界怎么设。以下四个设置是我每次建新模型都会逐一检查的:
一是光源类型与注入方式。超表面仿真里最常见的是平面波(Plane Wave)垂直入射。但要注意:平面波源要放在“背景折射率介质”中,而不是贴着结构。通常我把光源放在结构上方至少半个波长的位置,并在光源上方设PML(完美匹配层)吸收边界。如果你研究的是斜入射,那光源角度设置后,要特别注意对应边界条件的相位匹配。
二是网格精度。FDTD网格越细越准,但计算资源指数级增长。我的经验法则是:每个最小结构特征尺寸至少要分到10个网格以上。比如你做一个椭圆柱超表面,短轴是200nm,那网格步长至少20nm,最好10nm。如果结构里有尖锐边缘,还需要局部网格加密(Mesh Refinement)。但注意,网格加密区域要适当大于结构区域,一般外扩100nm以上,否则边界处场值会失真。
三是边界条件。很多同学在这里栽跟头。周期结构(超表面最典型)用周期性边界条件(Periodic/Bloch),研究对象互相之间没有影响时用PML。但一个常见问题是:当光源斜入射时,周期性边界条件的相位必须满足Bloch条件,如果设得不对,仿真结果会出现诡异的干涉条纹,而你还会以为那是物理现象。另外,如果结构内部存在金属,尤其是可见光波段的金、银,我建议检查一下材料的折射率数据是否可靠。Lumerical自带的材料库在可见光波段有些数据不够平滑,我测下来在某些波长会出现非物理的吸收峰,替换成实测椭偏数据会稳很多。
四是监视器与结果提取。透射率、反射率是最常见的输出参数。要得到准确的远场数据,监视器要设置在离结构足够远的地方(通常大于一个波长),并且监视器面积要大于结构周期,才能捕捉到完整的衍射场。提取超表面相位分布时,我常用的做法是:放一个二维监视器记录近场复振幅数据(包含幅度与相位),再用脚本接口做傅里叶变换提取远场。这样做比直接放一个远场监视器更能理解结构参数对相位的影响。
3.3 另外两个高频需求:HFSS微带天线与Cadence/Multisim类电路的仿真要点
虽然标题重点是光学设计,但搜索热词里出现了HFSS微带天线、Cadence瞬态仿真、Multisim电荷放大电路这些相关需求,说明很多硕博士的工作实际上是“光学+射频”“光学+电学”混合的。我简单补几个关键点。
HFSS建模微带天线时,最核心的步骤是“波端口”(Lumped Port / Wave Port)设置。很多同学仿出来的S11曲线在谐振频点偏移甚至完全没谐振,问题往往出在端口位置或激励方式不对。微带线馈电一般用Wave Port,并把端口面设在微带线末端边界处,参考地要延伸到端口面的另一侧。介质基板的介电常数一定要用实际值,不要用“4.4”走天下,不同批次FR4差异很大,射频仿真差0.2的介电常数,谐振频率就能偏出几百MHz。
Cadence仿真不收敛,常见原因有三类:初始条件设置不合理、算法步长过大、模型本身有源器件参数极端。处理方法我在第4节会展开讲。
Multisim做电荷放大电路仿真时,运放模型选型非常重要。理想运放模型(Virtual OpAmp)算出的结果和实际芯片差距巨大。建议直接用具体型号,比如OP07、AD797,并且在仿真里加上运放的失调电压和偏置电流参数,否则直流工作点和实测永远对不上。Multisim的仿真速度修改可以通过“Simulate -> Interactive Simulation Settings”里的步长与精度控制,把步长改大能明显提速,但要注意是否影响电路中的高频成分。
4. 实操现场:一个完整的超表面光学设计仿真流程
4.1 项目示例:设计一个工作在1550nm的高效率偏转超表面
这里给你一个我最近完成的真实案例复现,完整展示从物理设计到FDTD仿真的全过程。
设计要求:在1550nm波长下,把垂直入射的TE偏振光偏转15度。结构材料选择非晶硅(a-Si,折射率约3.5),基底是石英(折射率1.44),环境为空气。设计目标是总透过率>80%、偏转方向的衍射效率>60%。
物理逻辑推导:偏转超表面的核心是“相位梯度”——结构不同位置的透射光相位不同,形成一个线性相位分布。根据光栅方程,角度θ满足:sinθ = (λ / 2π) × (dφ/dx)。对于15度偏转,在1550nm波长下,如果超表面单元周期是P,每个单元周期内相位覆盖0到2π,那所需相位梯度就是2π/P。你可以反推需要的单元周期P = λ / sin15° ≈ 5990nm。但受限于超表面制造精度和相位离散化误差,通常单元周期做在500nm到1μm之间,用多个单元离散覆盖相位梯度。
我选了一个超单元(Supercell)方案:单个纳米柱单元周期P=580nm,一个超单元包含6个纳米柱,每个柱子提供不同的相位,总跨度为0到360度(步长60度),超单元总长度3480nm。你要的宏观偏转角度就是arcsin(1550/3480) ≈ 26°——这有点大,所以我调整方案,用7个单元的超单元(总长度4060nm),对应角度约22.4度,再用不同初始相位微调。实际设计时,你在Python或MATLAB里直接写一个相位分布脚本,输入目标角度,输出每个柱子的半径,比在GUI里一个一个手填快得多。
FDTD建模步骤:
建立一个单元模型:一个石英基底(折射率1.44)、一个a-Si纳米圆柱(半径在80nm到180nm之间扫描)、空气背景。边界条件设为周期性(对应单元周期)。
先用一个粗网格(步长20nm)跑一次,确认场分布形状没有问题;然后开局部网格加密,加密区域覆盖整个纳米柱,步长设为5nm,整个仿真文件跑一次大约需要15分钟(8核CPU,32GB内存)。
参数扫描:半径从80nm到180nm,步长10nm,得到每个半径对应的透射幅度和相位。这一步会生成一个S参数矩阵。你会看到相位曲线大致从0到2π覆盖,但幅度在不同半径下不同——这一信息非常关键,因为它告诉你哪些半径区间“相位变化大但损耗小”,那就是你该选择的半径范围。
在Python里做相位匹配:从扫描结果中选7个相位点(等间隔60度左右)对应的半径,构成超单元,再把这个超单元模型放进FDTD,用周期性边界条件和平面波激励,验证最终的远场偏转角度与效率。
最终结果:我选取的7个半径分别为92、105、117、128、140、156、172nm,仿真得到透射率83%,偏转效率61%,实现了设计指标。不过,我要提醒你:如果你直接拿着这套数据去找代工厂流片,还必须考虑最小特征尺寸和深宽比限制。纳米柱高度我设的是600nm,对应深宽比大于3,这已经是一个工艺难点,需要和代工厂确认是否可行。
4.2 另一个实操现场:Zemax中设计并优化一款小型定焦镜头
再给你一个Zemax的例子,用来展示“从指标到文件”的完整路径。假设设计目标是:焦距25mm,F/2.8,适配1/1.7英寸CMOS(对角线像高约7.6mm),全视场MTF在120 lp/mm时大于0.3。
在Zemax里我会这样做:
系统选项里设置入瞳直径 = 25/2.8 ≈ 8.93mm,像面半直径约3.8mm。
从示例库中找一个焦距接近的初始结构,比如Zemax自带的“Double Gauss 6 elements”示例(焦距50mm),缩放因子k=25/50=0.5,所有曲率半径和厚度乘以0.5。
设置评价函数。默认的RMS Spot Size,目标设为零,权重设为1。把最后一面到像面的距离(后焦距)设为变量。
优化后你会发现,虽然光斑收敛了,但MTF不一定达标。这时候需要检查:是不是色差太大?如果是,把负透镜材料和正透镜材料都设为替换变量(Substitute),运行玻璃替换优化。这一步通常能把MTF拉高一大截。
跑公差分析。我用的是“灵敏度+蒙特卡洛”,参数公差设为:半径±0.02mm,厚度±0.02mm,偏心±0.01mm,倾斜±0.2度,表面不规则度0.1个光圈。结果显示良率只有40%,原因是最后一片透镜的倾斜公差太紧。解决办法是增加一个调焦环补偿(后焦可调±0.2mm),良率能拉到85%以上。
这里面的工程含义很直白:纯光学设计做得好不够,必须和结构设计联动考虑“可装配性”。这也是为什么我一直在强调:仿真报告里除了光线图和MTF曲线,必须包含公差分析和补偿方案。
5. 常见问题与排查:仿真翻车现场实录
5.1 FDTD类仿真的典型问题
问题一:仿真结果出现明显非物理振荡。比如透射率光谱上出现密密麻麻的高频波纹。优先检查边界条件——如果结构是周期性的,却没有用周期性边界,或者PML厚度不够(至少8层),都会导致边界反射叠加在目标信号上。另外,光源关闭前的时间步数不够,也会造成频谱泄漏,这波频率响应里的“振铃”其实是不必要的。
问题二:内存爆炸,仿真直接跑不动。通常是三维网格设置过密造成的。一个经验数据:三维FDTD的网格数每增加一倍,内存需求增加8倍。怎么破?把结构充分利用对称性——比如纳米圆柱阵列本身有镜像对称性,可以用对称和反对称边界条件把计算区域砍到四分之一。这一招能让很多本跑不动的模型跑起来。
问题三:相位曲线不平滑,出现跳变。这其实是物理现象而非仿真错误。相位在超过2π时会回卷,如果你要做超表面,记得先unwrap。验证方法很简单:用群延迟或者固定频率下的复场分布确认相位变化趋势是连续的。
5.2 Zemax类仿真的典型问题
问题一:优化不收敛或收敛极慢。这是初学者问得最多的问题。排查路径:查看评价函数数值是否持续下降——如果下降但波动大,有可能是波长/视场权重设置不合理;如果完全不下降,检查变量设置,特别是边界约束是否把参数“锁死”了。另外,尝试把优化算法从阻尼最小二乘切换到Hammer Current,它带有全局搜索性质,更适合跳出局部极小值。
问题二:系统结构合理但MTF上不去。有一种情况是入射光瞳位置不对,导致孔径光阑和实际通光口径不匹配;另一种是系统存在中心遮拦(比如卡塞格林类型),MTF在低频段就上不去。如果是折射系统,重点查色差,尤其短焦距系统中二级光谱影响很大,你可能需要引入特殊色散玻璃或衍射面。
问题三:非序列模式里光线杂乱无章。很多人刚接触非序列(NSC)模式时,导入一个机械件模型后光线就到处乱飞。这个问题十有八九是物体表面法线方向反了或者材料吸收率设置太高。我在排查时习惯先“隐藏机械件,只保留光学件”,确认光路正常后再一层层恢复,这样才能定位是哪一步引入的杂散光。
5.3 Cadence、Multisim类仿真问题速查
| 现象 | 可能原因 | 排查顺序 |
|---|---|---|
| 瞬态仿真不收敛 | 初始条件冲突、最小步长太小/太大 | 1. 检查初始条件 2. 换算法(gear2) 3. 放宽精度 |
| 器件未定义 | 库路径未添加、模型名称拼写错误 | 1. 检查库路径 2. 查看模型文件 |
| 直流工作点错误 | 运放模型设置不对、缺少静态偏置 | 1. 替换具体型号 2. 检查供电与地 |
| Multisim仿真太慢 | 步长过小、仿真时间窗口过大 | 1. 自动步长 2. 缩短总仿真时长 |
我的判断方法:做电路仿真前,如果电路里只有理想元件,基本不会出问题;一旦用真实模型,慢和不收敛是常态。这时候别硬刚,先换一个更简单的等效模型确认拓扑逻辑正确,再加寄生参数。这个分层验证的思路适用于所有仿真工具。
6. 工具链扩展:现在很火的“联合仿真”到底怎么玩
6.1 光学与结构/热学的联合仿真
光学系统设计不是孤岛。我最近做一个车载镜头项目时,要求-40℃到80℃温漂下后焦变化不超过0.02mm。如果不懂联合仿真,就只能靠实测——成本高、周期长。正确做法是:
- 在SolidWorks或Creo里建结构模型,用ANSYS做热分析,提取镜筒和镜片的温度场分布。
- 把温度场映射到结构网格上,做热-结构耦合分析,得到镜片表面变形量。
- 将变形后的面形数据导入Zemax,用“网格矢高面(Grid Sag)”形式替换原来的面型,最终评估成像质量变化。
这一整套流程的关键难点在于数据传递的坐标系对齐和网格插值。ANSYS输出的节点位移,需要插值到Zemax的光学网格上。我的经验是:在ANSYS里导出时用统一的柱坐标系,这样转换到Zemax的矢高时不会出现畸变。项目结束复盘时我发现,最开始没统一坐标系的时候,一个平面透镜仿真出来变成了“环曲面”,检查了好久才发现是数据映射出了错。
6.2 光学与电路的联合仿真
现在光电系统里,光路后面一定跟着电路:光电二极管、跨阻放大器、滤波整形、ADC。你可以用Lumerical的INTERCONNECT模块做光子电路级仿真,也可以把光电流结果导出到Cadence或ADS里做电路协同仿真。
比如我做一个光电探测器读出电路时,流程是这样的:先用FDTD仿真探测器在不同光功率下的量子效率和响应度,再把“入射光功率-光电流”曲线作为数据表导入Cadence里的行为级模型。这样免去了在电路仿真中重复算光电效应的麻烦,而且电路设计可以随时替换运放型号进行对比。
6.3 Python/Matlab批处理与自动化
现在做仿真不用脚本效率太低。我用得最多的套路是:Zemax的ZOS-API结合Python,批量设置波长、视场、评价函数权重,然后循环跑不同初始结构的优化,把结果自动填入Excel表格。FDTD更是原生支持脚本化,Lumerical自带的Lumerical Script语言或者Python API都可以。
这里有一个非常实用的技巧:参数化建模以后,每次都把自己的设计变量和结果指标存成一个JSON或CSV文件,文件名按“日期_结构_版本”格式。这些文件积累起来,就是你个人的“仿真数据库”。几个月后写论文,或者师弟接手你的课题,这些日志比任何口头交代都管用。
7. 操作心得与个人经验总结
做光学设计和仿真这几年,我踩过的坑比很多人想象的多。最大的一个认知转变是:仿真不是“把真实世界搬到电脑里”,而是“在限定假设下做逻辑推演”。你设的每一个边界条件、每一个材料模型、每一个网格参数,都在定义“这个仿真代表的是哪个世界”。初学者最容易犯的错误是过度信任软件默认值——Zemax的默认玻璃库是旧版肖特数据,FDTD的默认材料在某些波段会有误差,你不主动检查并校准,输出的结果就是“软件认为的答案”,而不是“客观世界的答案”。
有几个小习惯我特别想分享给正在读这篇文章的硕博士:
第一,建立自己的仿真日志。每天把做了哪些仿真、改了什么参数、结果趋势是什么、可能的问题点写在一个Markdown文件里。这件事看起来不起眼,但等到你写论文的“方法”章节,或者准备答辩时,“当时为什么这么设计”“这个参数是依据什么定的”这些问题,日志全都有答案。
第二,设计验证矩阵。不要只跑一个最优参数,而是围绕最优参数做一组偏差仿真,比如±2%的折射率误差、±5nm的尺寸偏差。这相当于在仿真阶段就把实验中的工艺波动考虑进去。这样你去做实验时,无论结果偏成什么样,都能在仿真结果里找到对应的“预言”,实验报告会好写得多,导师也会觉得你的工作扎实。
第三,多和实验组同学对“仿真单位”心里有个数。仿真效率70%,实验可能只有40%;仿真的透射谱很干净,实验可能有氧化层和表面粗糙度影响。你必须在写仿真报告时把这种不确定性量化出来,否则实验Reply的时候会非常被动。
最后,还是回到开头那句话:光学设计和仿真,在硕博士研究中的分量只会越来越重。不是因为人人都要成为光学设计工程师,而是因为这个领域的方法论——明确指标、建立模型、迭代优化、验证闭环——本身就是科研训练的核心素养。提前把仿真这条技术路线吃透,无论你以后是在学术界还是工业界,都会发现这是一笔稳赚不赔的投资。