ZEMAX

光源类型:DLL光源(Source DLL)——特性的光线来建模光源

时间:2026-01-22 10:05:44   作者:Leslie   来源:正势利   阅读:20   评论:0
内容摘要:DLL光源(SourceDLL)虽然ZEMAX包括许多种内建光源,但有时最理想的方法是使用定义的算法产生具有所需要特性的光线来建模光源。ZEMAX还支持以用户定义光源作为光线列表:见第398页关于光源文件的讨论部分。为了用程序定义一个光源,产生随机光线的算法必须写出并且编译成Windows的动态连结程式库(或DLL)。...

DLL光源(Source DLL)

虽然ZEMAX包括许多种内建光源,但有时最理想的方法是使用定义的算法产生具有所需要特性的光线来建模光源。

ZEMAX还支持以用户定义光源作为光线列表:见第398页关于光源文件的讨论部分。

为了用程序定义一个光源,产生随机光线的算法必须写出并且编译成Windows的动态连结程式库(或DLL)。ZEMAX以代码形式提供了大量的DLL库。使用合适的编译器,可以很容易地产生新的DLL。见第448页“关于DLL库的注释”。

DLL光源参数(Source DLL parameters)

每一个DLL可以用0到30个用户定义数据作为计算光源特性的参数。这些值由DLL定义且只能用于DLL中。

创建一个新的DLL光源(Creating a new Source DLL)

DLL必须包括两个函数:

UserSourceDefinition

UserParamNames

当从DLL建模的光源发出光线时,ZEMAX将光源参数、波长和其它数据传递到UserSourceDefinition。UserSourcedefinition然后用于计算下列数值:

x,y,Z:光线的起始点坐标

l,m,n:光线的起始方向余弦

i:光线的初始相对光强(见下面“DLL光源相对强度的注释(Comments on Source DLL relative intensity)”)

这些值被返回到ZEMAX并用于初始化光线追迹。UserParamNames用于定义所有用到的参数。这些名称出现在NSC编辑器的DLL物体光源的参数栏中。

学习DLL光源的最好的方法是研究一个已经存在的DLL并按需要修改它。ZEMAX所提供的DLL例子包括扩展文件和数据格式的注释。参见任何一个例子的原代码。

所有的DLL光源必须放置在ZEMAX主目录的\OBJECTS\DLL\SOURCES子目录下

DLL光源相对强度的注释(Comments on Source DLL relative intensity)

当ZEMAX追迹由一个DLL生成的光线时,光线的初始功率由光源总功率给出,除以分析光线的数目,通过相对权重缩放。因此,由DLL计算的光线相对强度必须设置以便所有要求的分析光线的所有相对强度的平均值为1。注意分析光线的数目被当作一个参数传递到DLL。这个条件是需要的因为ZEMAX不能归一化要追迹的分析光线的集合,在追迹前没有生成所有光线。

归一化光线的首选方法是DLL用于将所有光线的相对强度设置为1.0,然后根据所需光源的概率分布选择光线。这个方法意味着更多的光线将根据对应着更多能量的位置和方向余弦被选择。用于做这个的方法是很直接的,并包括将所有空间和方向空间上的光源结合起来并使用归一化积分和一个统一的随机数发生器以决定光线。提供的例子FIBERl DLL阐述了这个方法。

一个可用的方法是使用非统一的光线权重。这个方法要求DLL先计算所有需要的光线,然后内部地归一化光线以便生成一个平均权重1。这个方法使概念上简单但是通常不太有效。

《非序列光源总结》

《所有光源体公用的参数》

——《ZEMAX中文使用手册》P396

逝者如斯,不舍昼夜作者QQ及微信:49922779 点击这里给我发消息


标签:类型  特性  光源  光线  
相关评论

该站用来记录个人生活的笔记,内容部分资料来源于网络,如有侵权,请联系删除。(QQ:49922779点击这里给我发消息 微信:49922779 阿里旺旺: zhengshili点击这里给我发消息 QQ交流群:120100441网钛CMS交流群1

  浙ICP备2025212358号