尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

基于VirtualLab Fusion的复合光源仿真全攻略

基于VirtualLab Fusion的复合光源仿真全攻略 做光学系统设计的人十有八九会碰到一个尴尬的处境辛辛苦苦把镜组、光栅、滤波片调得明明白白结果换成真实光源一测整个出光形态跟仿真完全不是一回事。问题往往不在光学元件而在光源建模太理想。单个波长、零发散、无穷大的平面波在工程里根本不存在尤其是遇到光谱灯、白光LED、双波长激光合束这类复合光源场景用单一均匀光源去近似误差从一开始就种下了。复合光源仿真通俗讲就是把多个发光单元、多个波长、多个空间模式装进同一个光学模型里看它们经过系统之后在探测器上到底叠加成什么样。这事在投影照明、光谱分析、激光合成、干涉测量里特别关键因为我们实际看到的强度分布从来都是多个光源共同作用的结果而不是某一束光的单打独斗。我用的工具是VirtualLab Fusion一套以物理光学为核心的仿真环境它在处理相干与非相干叠加、波长切换、部分相干光源这类问题上有天然优势。这篇文章就围绕怎么做复合光源仿真展开从原理讲到实操最后把踩过的坑一并列出来给想真正把多光源系统仿明白的朋友一条可走的路。1. 为什么做复合光源仿真从单光源想当然到多光源打架1.1 复合光源到底指什么很多人一听复合光源第一反应是不就是好几个灯吗。这话对但不完整。复合光源的核心特征是出射光场由多个可区分的分量构成这些分量可能在波长上不同在空间位置上不同在相干性上不同甚至偏振态都不同。举个例子。一台投影仪里的白光照明如果拆开看它可能是红绿蓝三色激光的合成光也可能是白光LED经过荧光粉转换后的宽带光。这两种情况都叫复合光源但仿真逻辑完全不一样三色激光是三个窄带、彼此不相干的谐波场的非相干叠加白光LED则是一个宽谱、部分相干的光源需要在频域上做更精细的分解。再看干涉测量场景斐索干涉仪里常用双频激光作为光源两个频率差很小的分量分别参与干涉最后在探测器上形成拍频信号——这种问题如果不把两个频率分开建模而强行用一个等效波长去算结果必然是错的。所以我的建议是看到复合光源四个字先别急着开软件先在脑子里做一次光源体检它由哪几部分组成每个部分是什么波长是相干光还是非相干光各分量之间会不会发生干涉这四句话问完后面所有设置就有方向了。1.2 哪些系统必须做复合光源仿真不是所有光学系统都需要复合光源仿真。单波长激光的准直光路、窄带LED做均匀照明用单光源模型完全够用额外引入复合建模反而增加工作量。但下面这几类系统如果你不做复合光源仿真几乎等于盲人摸象第一类是显示与照明系统。不管是投影显示、液晶背光还是车灯光学设计光源几乎是清一色的多波长宽谱。LED的蓝光激发荧光粉、三色激光合束、多芯片阵列的排列任何一个细节从出光颜色到照度均匀性都依赖多波长联合仿真。在这个领域复合光源仿真就是常规操作不是什么高级技巧。第二类是光谱分析仪器。光谱仪、色度计、遥感载荷这类设备的设计目标是感知光的颜色构成光源本身就是研究对象。仿真时不仅要把多个波长引进去还要模拟它们在分光元件上的角色。第三类是激光合束与放大系统。多路激光合成功率时各路之间的相位关系决定了合成效率但如果各路波长略有差异合成后的光场又会出现新的空间分布。这里复合光源仿真要同时回答两个问题各路之间怎么相干合成各路之间又怎么非相干共存。第四类是干涉测量系统。双频激光干涉仪、白光干涉轮廓仪、相差显微这类系统要么利用频率差要么利用宽谱低相干性。它们的光源建模如果不到位干涉条纹的对比度、位置关系全都会飘。如果你正在做上述某一类系统接下来几节的实操内容可以直接照着用。1.3 为什么选VirtualLab Fusion而不是别的市面上能做光学仿真的工具不少几何光学路线的软件擅长追迹镜片、优化像质但对衍射、干涉、偏振这些波动效应只能近似处理。另一类是FDTD、有限元这类的电磁场仿真器算得准但建模粒度过细一个透镜系统就要剖分海量网格光路稍稍一复杂电脑就跑不动。VirtualLab Fusion的定位正好卡在中间它用均匀平面波分解的方式来追踪光场既保留了衍射、干涉这类波动效应又不会像全波仿真那样炸掉算力。更重要的是它在处理多光源、多波长、部分相干光时有一套相对成熟的工作流。你可以把多个波长、多个光源并排放在模型树里软件自动管理它们之间的相干关系你可以给同一个系统定义多个通道分别模拟不同路径条件下的光场你还可以直接调用谐波场Harmonic Field叠加功能用强度叠加代替振幅叠加模拟非相干光源的真实效果。我在这里用的版本是我日常工作主力界面虽然带点学术范儿但熟悉之后你会发现它的建模逻辑特别适合做物理光学验证。尤其在做复合光源仿真时它那种先分解成谐波场再决定如何叠加的思路本身就是解决多光源问题的正确思考方式。2. 与实际设计相关的核心机制解读2.1 相干叠加与非相干叠加在仿真里怎么设置复合光源仿真里最容易搞混、也最容易出错的就是叠加方式。物理上来说两个光波能不能发生干涉取决于它们之间是否有稳定的相位关系。同一个激光器分出来的两束光相位关系固定会干涉两个独立LED芯片发出的光相位关系随机、每时每刻都在变工程上认为它们不会干涉探测器上看到的就是各自强度之和。VirtualLab Fusion里区分这两种情况的核心概念是Harmonic Field谐波场和Incoherent Sum非相干叠加。一个谐波场是单一频率、具有确定相位关系的光场它代表的是一束能干涉的光多个谐波场之间的相位关系不确定时软件可以在探测端对它们的强度直接求和。我的习惯是每个独立的光源分量先分别建立谐波场然后在结果提取阶段根据物理场景决定用相干叠加还是非相干叠加。举个我实际做过的例子。模拟一个双波长照明系统405nm和635nm两束激光同时照射同一个衍射光栅。因为两束激光来自不同激光器没有稳定相位关系探测器上的光强分布应该近似等于两个波长各自衍射图案的强度相加如果我用一个光源里同时定义405nm和635nm并且允许软件把它们做相干叠加处理探测器上会出现原本不该出现的干涉条纹直接被误导。正确的做法是先把405nm和635nm分别作为独立光源跑一遍在探测器上分别保存强度分布再在结果分析里用非相干叠加公式I_total I_1 I_2叠加。VirtualLab Fusion也提供了将多个光源直接按非相干方式处理的选项但无论用哪种方式你都必须在心里明确这里到底能不能相干如果不确定宁可保守一点按非相干处理因为实际多光源系统里绝大多数相位关系都在快速随机变化。2.2 光源模型选型对仿真结果的影响很多人建光源时习惯用默认设置但不同的光源模型对应着完全不同的物理近似选错了模型后面的仿真做得再精细也没意义。我把常见的模型按使用场景列一下平面波光源光场在空间上是等振幅等相位的适合模拟准直性极好的光比如激光经过扩束准直后的光束。但它不代表真实的激光束能量分布所以做照明均匀性分析时要谨慎。高斯光束光源适合模拟激光器的基模输出有束腰、瑞利长度、发散角等参数。透镜聚焦、光纤耦合这类问题用高斯模型比平面波模型靠谱得多。点光源球形波模拟小孔发光、光纤端面出射这类发散光源注意它发散角很大能量分布会随距离迅速变化要结合数值孔径或孔径角来设置。自定义光源通过导入光场分布文件或者外部测量的近场/远场数据来定义适合LED实际出光、异形光束这类复杂光源。选模型不需要求新求全关键是匹配你的问题尺度。如果系统里有聚焦透镜光束的相位分布重要选高斯光束如果做的是大口径准直照明平面波就够用。还有一种情况光源面积不能忽略时比如LED芯片阵列就要用多个点光源或者扩展面光源的空间分布来近似而不是一张平面波糊弄过去。记得我仿真一套LED阵列照明光路时最开始偷懒用一个超大平面的平面波去替代整个阵列结果照度均匀性仿真结果非常平跟实测差一大截。问题就出在平面波光源的所有点相位一致没有体现LED阵列各芯片之间的非相干性。把单个平面波拆成一组彼此非相干的小尺寸光源后均匀性分布曲线立刻和实测对上了。从那以后我再也不会小看光源模型的选择这一步。2.3 波长、谱宽和空间模型的三要素把控复合光源仿真里有三个最基本的物理量波长、谱宽、空间分布。三者共同决定了你在软件里定义多少个谐波场每个谐波场怎么设置。先说波长。窄带光源可以在软件里直接设置单一波长但宽谱光源比如白光LED理论上要分解成无数个波长分量。实际工程里没人会真的算无穷多个一般做法是按照光谱数据选取若干离散波长点比如每20nm取一个采样点这样白光就被拆成20至30个谐波场。采样点越密结果越接近真实但计算量线性增加所以要在精度和效率之间取个平衡。我通常先取20个波长点跑一遍观察结果随波长变化的剧烈程度若是某个波段变化特别快再局部加密。再说谱宽。一个光源即使中心波长相同只要谱宽不为零时间相干性就有限。干涉测量里泛光最头疼的条纹对比度下降其实就是谱宽导致的。在VirtualLab Fusion中你可以为光源设置有限谱宽或者直接使用它的部分相干光源模型。当系统里存在长光程差时谱宽的影响会被放大必须认真对待。最后是空间模型。光源的尺寸、相对位置、空间相干长度决定了光场的横向相干度。比如一个LED芯片面积可能1毫米见方如果你把它建成了一个理想点光源仿真结果里会出现完全不存在的锐利衍射环。空间相干性本质上是不同发光点相位关系的统计结果多点非相干光源的组合近似是一个工程上非常实用的手段。说个实际技巧把这三要素理清后我会画一个速查表列出每个光源分量的波长、谱宽、尺寸、相对光程差、是否相干然后再去软件里建光源。这张表看似简单却能在多光源复杂系统里帮你少走很多弯路尤其当仿真结果和预期不符需要排查时它就是排查的第一依据。3. 实操搭建一个双波长复合光源仿真3.1 场景定义双波长光栅衍射先说明一下这个实操案例模拟双波长平面波垂直照射一个周期性光栅在远场探测器上得到两个波长的衍射图案叠加。这是一个非常典型的复合光源验证场景流程短、物理清晰、适合用来熟悉整个仿真链路。为什么要选光栅衍射因为光栅的分光特性和波长直接耦合不同波长的出射角不同探测器上的光斑位置错开但这个错开是在严格的衍射规律约束下发生的。任何建模错误都会反映在不合理的角度、间距或强度关系上比单纯测一个聚焦光斑更容易发现问题。具体参数我建议这样定义光源波长选405nm和635nm都是常见的半导体激光波长光栅周期定为3微米探测器距离光栅100毫米。这样635nm的一级衍射角大约是arcsin(0.635/3)约12.2度405nm则约7.76度两个衍射峰在探测器平面上的横向间距相当明显便于观察。如果你用的是自己的系统参数可以替换但要注意角度的差异要足够大不然区分不出复合效果。3.2 参数设置与仿真流程下面的步骤以VirtualLab Fusion的基本工作流为蓝本实际操作时不同版本的界面布局略有差异但思想是一致的。第一步建立两个独立光源。我强烈建议把两个波长分别建成两个光源节点而不是塞进同一个光源列表原因在后面排查章节会细讲。每个光源都选平面波模型波长分别设置为405nm和635nm光束直径稍微大于光栅孔径比如5毫米。设置直径时注意采样率直径太小会导致边缘衍射明显太大则浪费算力。第二步放置光栅元件。在光路编辑器中插入一个透射光栅模型周期改成3微米。此时要注意光栅的基底材料如果你的系统里还有透镜元件材料色散要一并设置。光栅方向要设置正确否则一二级衍射会跑到平面外。第三步定义探测器。探测器放在光栅后100毫米尺寸选择大约30毫米乘30毫米覆盖两个主衍射峰的范围。探测器采样间隔影响结果细节我一般先设置256×256个采样点得到整体分布后再用局部分辨更细的窗口复跑关键区域。第四步分别运行两个光源的仿真。这一步是关键先只打开405nm光源跑一遍保存结果再只打开635nm光源跑一遍保存结果。为什么要分开跑因为两个光源的非相干叠加在物理上要求强度相加分开跑才能保证各自的谐波场不被错误地相干耦合。第五步也是最后一步把两者的强度结果做非相干叠加。如果你在VirtualLab Fusion里为两个光源配置了非相干通道软件会自动完成求和如果没有就把两组强度数据导入后处理工具里直接相加。叠加后的图里你会明显看到两套衍射峰分布在探测器上各自角度与理论值吻合中心零级重合在一起强度自然比单波长高。整个流程跑通大概半小时如果中途出现结果异常多半问题出在采样率或者探测器覆盖范围多调试几次习惯就好。做这些步骤时我还有一个习惯每改一个参数就重新观察结果变化不要为了节约时间一次性改多个变量否则结果对不上时你根本不知道是哪一步引入的问题。3.3 结果验证与物理合理性检查仿真跑完不等于工作完成结果验证才是真正体现水平的地方。我一直认为仿真软件并不会主动保证结果正确它只是忠实地解算你给的模型模型错了结果照样丝滑地错着。所以验证环节务必认真。头一个验证点是衍射角度。用光栅方程d·sinθ m·λ带入3微米周期和两个波长算出各级衍射角再根据探测器距离换算成横向位置与仿真中强度峰值位置对比。误差如果超过几个百分点先检查光栅周期单位是不是看错了再检查探测器距离是否在仿真定义中与理论计算一致。第二个验证点是能量守恒。没有损耗的情况下透过光栅的总功率应该等于入射光功率。如果探测器记录到的总功率明显不对比如大了或小了很多情况下要么是采样窗口没有覆盖所有衍射级要么是探测器靠近光栅时截断了倏逝波分量。我一般用能量守恒来排除大错误它能消掉许多低级的建模失误。第三个验证点是半定量检验叠加行为。把405nm和635nm的单独仿真强度结果相加和软件的非相干合成结果对照两条曲线应当重合。如果出现额外的干涉条纹或者说二者不吻合说明你的光源之间被错误地设置为相干叠加了。这个检查特别适合发现隐蔽的相干性问题。第四个验证方法比较老派但极其好用做个解析近似。对于简单的光栅衍射你可以手动写出强度分布的大致表达式然后与仿真结果对比趋势。仿真曲线在形状上应该和解析趋势一致如果连大趋势都对不上就别费心调参数了先回头检查物理设置。我见过太多人跑完仿真直接截图贴报告也不问结果对不对最后做样品全部推倒重来。验证这十几分钟是在给自己的后续工作买保险千万别省。4. 多光源系统仿真中容易踩的坑与排查实录4.1 常见问题速查表我把这几年在VirtualLab Fusion做复合光源仿真遇到的高频问题整理了一张速查表。这些问题单看都不复杂但组合出现时非常容易把人绕进去。现象可能原因排查思路多波长光斑位置重叠严重探测器窗口太小用理论公式估算衍射、像位置先放大探测器区域再跑小区域强度分布出现杂乱干涉条纹多个光源被错误相干叠加检查光源通道设置把独立光源分开跑再强度求和仿真结果整体亮度偏低探测器采样间隔过大漏掉了细锐峰加密采样或使用自适应采样确认峰值像素没有饱和失真结果在光源打开几个后跳变不稳定部分相干光源的随机种子数不够增加模式数或对多次实现求平均某个波长结果全黑波长超出探测器响应范围检查探测器波长响应设置或者直接使用理想探测器重建响应范围计算速度突然明显变慢探测面采样点数过高用预览模式与最终高分辨率模式分开设置先低分辨率定位再高分辨率出图远场探测结果出现奇异尖峰探测器与光源距离过近近场效应混入确认探测距离是否符合夫朗禾费或菲涅尔近似条件必要时更换远场探测器模型这张表我贴在工位旁边很久了每次排查都会先对号入座。特别是结果对不上但不报错的情况多半是探测窗口、采样密度、相干关系这三类问题在捣鬼。4.2 性能优化与采样率调节复合光源仿真最头疼的问题往往是算力。光源数量一多、波长分量一密计算量成倍翻番这时候你需要的不是关掉几个光源而是聪明地分配计算资源。我的第一个优化口诀是先粗后细先低后高。第一遍仿真用较低的采样率和较小的探测器画幅目的是确认光场大致落在哪个区域、能量分布是否合理。等整体结构都对再针对关键区域提高分辨率重新仿真。这样既不会漏掉物理现象也不会一上来就把电脑卡死。第二个优化口诀是分区计算。在VirtualLab Fusion的场追迹框架中并不是每一块光场都需要同样高的采样密度。一个光场如果变化平缓你可以用很粗的采样去描述如果到了焦平面附近光场产生非常细锐的结构就必须局部加密。学会使用局部采样设置是性能和精度兼得的关键。第三个优化技巧是善用对称性。很多系统在光轴上下对称、左右对称如果你确认光源和光路满足对称条件完全可以只仿真四分之一区域然后在后处理里镜像还原。这个技巧在LED阵列这类周期性光源里特别有效有时候能把几十分钟的仿真压缩到几分钟。第四个优化点容易被忽略探测器窗口大小不是越大越好。探测器过大不仅浪费采样点还会把不必要的高空间频率分量纳入计算范围让整个仿真变慢。我一般先通过理论估算光场的大致延展范围再留出20%到30%的裕量来设置探测器尺寸这样既保证不漏光也不会白烧CPU时间。4.3 个人经验总结一个稳定可靠的复合光源仿真流程踩过的坑多了之后我总结出一套个人化的复合光源仿真流程现在基本上每条都按这个套路走出问题率大幅下降。第一步写个光源说明书。任何时候都不要直接在软件里拍脑袋建光源先把光源的分量、波长、谱宽、面积、相干性写清楚哪怕只有五行字也能防止后面乱掉。第二步单波长验证。所有多光源项目先挑一个代表性波长把整个光路跑通确认光学系统本身没有低级错误衍射、干涉现象都合理。这一步相当于给系统做了个健康检查。第三步独立波长分别仿真。逐个波长的仿真结果保存好这既是为了最后强度求和也是为了排查问题的时候能定位是哪个波长分量带来的异常。第四步非相干合成。用强度叠加合成最终结果有软件支持就用软件的通道求和没有就自己做后处理。这个环节里严谨性是第一位不要贪图方便让软件自动把不相干光源相干地加起来。第五步交叉验证。用理论公式、能量守恒、对比文献数据等方式核实结果的物理合理性。这一步和第四步一起构成了双保险。我实际使用中最大的体会是复合光源仿真做得好不好功夫一半在准确建模另一半在清醒的物理判断。软件只是把麦克斯韦方程组解算出来而已至于什么该相干、什么不该相干永远是工程师自己的责任。这套流程也许不够炫酷但它是我试过最不容易翻车的路径。如果你正准备入坑复合光源仿真或者正被某个多波长系统的奇怪现象折磨得夜不能寐希望这篇文章能帮你少走几步弯路。别迷信默认设置别一上来就开全波长按部就班地把光源分清楚把验证做扎实——仿真会给你一个诚实的答案。
返回列表