在OpticStudio非序列模式下使用体散射模拟荧光

这篇文章解释了如何在OpticStudio非序列模式下使用体散射中的波长偏移功能模拟荧光。

荧光一词主要用来描述光被物体吸收并发射出不同波长光(一般为波长更长的光)的过程。光线通常情况下也会沿不同方向发射。我们可以使用OpticStudio非序列模式下的体散射功能模拟这一过程。

OpticStudio中自带的示例文件 (Fluorescence Example.ZMX) 就是用来演示如何在非序列下模拟荧光物体。该文件位于Zemax > Samples > Non-sequential > Scattering文件夹中。在这个简单的系统中,我们使用一个椭圆光源 (Source Ellipse) 来向三维物体发射平行光,其中物体体积具有体散射属性。每根光线的波长为0.450μm,这是由系统设置中的1号波长定义的。

在本例中每条光线在介质中最多只发生一次体散射,散射次数可以在非序列元件编辑器(Non-sequential Component) 光源物体的物体属性中的光源 (Sources) 选项卡下光线追迹 (Ray Trace) 栏的体散射 (Bulk Scattering) 选项中进行设置:

在本例中,光源发射光线的采样方法为索伯采样“Sobol”。这是因为相比其他随机算法,使用索伯算法产生的光线分布具有更优的随机性。有关索伯采样的详细内容请查阅Zemax用户手册“Non-sequential Components”一章,或参考知识库文章“Understanding Sobol Sampling”,您也可以在公众号MAX讲堂的非序列标签下找到这篇文章的中文版本。

在散射介质中,我们使用角度散射 (Angel Scattering) 分布对体散射进行定义,该定义栏位于散射物体的物体属性 > 体散射 (Volume Physics) 选项卡中,在本例中平均自由程 (mean free path) 为0.5mm,最大散射角为10°:

在散射模型定义栏右侧为荧光波长偏移定义栏。它用来定义体散射中的波长变化。这里使用的数据输入格式为“in, out, prob”,其中“in”为输入光的波长编号,“out”为输出光的波长编号,“prob”为体散射过程中波长发生偏移的相对概率。在本例中,在发生体散射时,波长编号为1的输入光 (0.450μm) 将以100%的概率发生波长飘移,波长转变为2号波长 (0.650μm) 。通过这个工具,我们可以在OpticStudio中通过体散射模型对荧光中的波长偏移进行模拟。通常来讲,在波长飘移中定义的波长并不是单一波长,并且发生体散射的光线也不一定会发生波长偏移,您可以阅读Zemax用户手册“Non-sequential Components”一章中的“Wavelength Shift”工具了解更多波长偏移的定义方式。

为了测试波长偏移工具正常工作,在示例系统中还设置了一个矩形体,并且该矩形体的前表面有一个名为“BEAMSPLIT”的镀膜:

该镀膜类型是在OpticStudio安装时自带的膜层文件COATING.DAT文件中进行定义的:

您可以阅读Zemax用户手册中“Polarization Analysis”一章查看该定义类型的详细信息,您也可以参考知识库文章“How to Model a Dichroic Beam Splitter”。

根据BEAMSPLIT的膜层定义,所有波长为0.450μm的光线将被反射,并且所有波长为0.650μm的光线将透射穿过该膜层。我们可以从布局图中查看膜层的分光结果。此时我们需要将布局图中光线的颜色显示(Color Rays By)选为“波长(Wavelength)”:

正确设置后我们可以看到在布局图中,所有没有发生体散射的光线被第二个长方体物体的前表面膜层反射,发生体散射的光线则穿过了该表面:

在布局图中我们还可以使用字符串过滤功能来挑选出发生体散射波长偏移的光线。这里我们需要使用的过滤字符串为X_WAVESHIFT(i,j),其中i为输入波长的编号,j为输出波长的编号。本例中,我们需要设置的字符串如下图所示:

过滤出波长偏移的光线后,布局图如下图所示:

您可以在Zemax用户手册“Non-Sequential Components”一章中查阅更多有关字符串过滤的资料,您也可以阅读知识库文章“How to Perform Stray Light Analysis”。有关使用体散射模拟介质的荧光特性就和大家介绍到这里啦,希望本文对您的工作有所帮助!