3. FRED 光源建模基础:点光源、面光源、平行光、高斯光束、自定义光源光谱与角度分布

做杂散光分析,光源建模是第一步,也是最容易出错的一步。

我见过不少工程师,光学设计做得漂亮,一到杂散光分析就翻车。翻车原因十有八九是光源没建对。你想想看,光源的强度分布、光谱特性、角度发散,哪怕差一点点,最后分析出来的鬼像和杂散光路径可能就完全不一样了。

这一章,咱们就把 FRED 里最常用的几种光源模型捋一遍。我会结合自己踩过的坑,告诉你每种光源该什么时候用、怎么用、有什么坑要避开。

3.1 点光源:最基础,但别小看它

点光源,顾名思义,就是一个几何点向所有方向均匀发光。在 FRED 里,它是最简单的光源模型,但也是很多复杂光源的构建基础。

核心参数:

  • 位置:三维空间坐标 (X, Y, Z)
  • 辐射通量:总功率,单位瓦特 (W)
  • 光线数量:追迹时使用的光线数,直接影响计算精度

我个人习惯,在做系统初步分析时,先用点光源快速定位潜在问题。比如,我想知道某个镜筒内壁会不会产生一次反射鬼像,放一个点光源在视场中心,跑几百条光线,几分钟就能看出趋势。

我的经验:点光源的光线数不是越多越好。我曾经为了追求“精确”,一次放了 100 万条光线,结果电脑跑了三个小时,最后发现结果和 10 万条光线几乎一样。一般建议,初步分析用 1 万到 10 万条,最终验证再用 50 万条以上。

3.2 面光源:更接近真实场景

实际光学系统中,很少有真正的点光源。探测器上的杂散光,更多来自扩展光源——比如太阳照射到遮光罩内壁,或者地气光进入镜头。这时候,面光源就派上用场了。

FRED 里的面光源,可以定义成矩形、圆形、环形,甚至任意多边形。你可以给它设定均匀亮度,也可以加载一个辐照度分布图。

面光源类型 适用场景 注意事项
均匀矩形光源 模拟大面积均匀照明,如太阳光直射 边缘光线可能产生衍射效应,需注意
圆形光源 模拟圆形光阑、光纤出射端面 光线采样密度在边缘要适当加密
自定义形状光源 模拟异形光阑、挡板开口 用 CAD 导入轮廓时,注意坐标对齐

避坑指南:我曾经用面光源模拟一个矩形光阑,结果发现杂散光路径总是不对。查了半天,原来是面光源的发光面法线方向设反了。FRED 默认法线是 Z 轴正向,如果你的光源是背向系统,记得旋转 180 度。

3.3 平行光:模拟无穷远光源

平行光在杂散光分析里太常用了。太阳光、星光、或者任何距离远大于系统尺寸的光源,都可以近似为平行光。

FRED 里建平行光很简单:指定一个方向向量,设定光束直径,搞定。但这里有个细节——平行光的光束直径,一定要覆盖整个系统入瞳,否则你可能会漏掉边缘入射的杂散光。

关键参数:

  • 方向向量: (0, 0, -1) 表示沿 Z 轴负方向入射
  • 光束直径: 建议比系统入瞳大 10%-20%
  • 光线密度: 均匀网格采样,或随机采样

我一般做太阳杂散光分析时,会建一个直径比镜头大 20% 的平行光,然后用 50 万条光线去追迹。这样既能保证覆盖全入瞳,又不会因为边缘光线太少而产生统计误差。

3.4 高斯光束:激光系统的必备

如果你做的是激光系统,比如激光雷达、激光通信,那高斯光束就是你的老朋友了。FRED 支持基模高斯光束 (TEM00),也支持高阶模。

高斯光束和普通几何光线的最大区别在于:它有束腰、发散角、波前曲率。FRED 在追迹时,会同时考虑光线的几何路径和光束的衍射传播。

参数 说明 我的建议
波长 中心波长 单模激光通常用 532nm、1064nm 等
束腰半径 光束最细处的半径 从激光器规格书里查,别自己估算
束腰位置 束腰在光轴上的位置 通常设在激光器输出端面
发散角 远场发散半角 注意是半角还是全角,FRED 用的是半角

我的经验:高斯光束在 FRED 里追迹时,光线数量要适当增加。因为高斯光束的能量集中在中心,如果光线太少,中心区域的采样不足,会导致能量分布失真。我一般至少用 10 万条光线。

3.5 自定义光源光谱与角度分布

很多时候,标准光源模型不够用。比如你要模拟一个 LED 光源,它的光谱是宽谱的,角度分布是朗伯体的。这时候,就需要自定义光源了。

FRED 提供了两种自定义方式:

  1. 光谱自定义: 可以导入光谱数据文件(如 .txt、.csv),或者用内置函数生成。支持波长从紫外到远红外。
  2. 角度分布自定义: 可以定义光线出射的概率密度函数。比如朗伯分布、高斯分布,或者从实测数据导入。

操作步骤:

  • 在光源属性里,选择“Spatial & Angular Distribution”选项卡
  • 勾选“Use Custom Angular Distribution”
  • 加载你的角度分布数据文件(两列:角度、相对强度)
  • 在“Spectral”选项卡里,加载光谱数据

避坑指南:我曾经导入一个 LED 的光谱数据,结果追迹出来的能量分布完全不对。后来发现,我的光谱数据单位是 mW/nm,但 FRED 默认单位是 W/nm。单位搞错,结果当然全错。导入数据前,一定先确认单位。

3.6 知识结构总览

下面这张图,是我自己总结的光源建模知识结构。每次做新项目,我都会对照这张图,确认自己有没有遗漏什么。

FRED 光源建模知识结构图 FRED 光源建模 点光源 面光源 平行光 高斯光束 自定义光源 各光源适用场景速查 • 点光源:初步分析、快速定位、系统级杂散光评估 • 面光源:扩展光源、遮光罩内壁散射、地气光模拟 • 平行光:太阳光、无穷远目标、平行光管测试 • 高斯光束:激光系统、光纤耦合、衍射受限系统 • 自定义光源:LED、荧光、宽谱光源、实测数据导入

3.7 光源建模的通用流程

不管用哪种光源,我建议都按下面这个流程走一遍:

  1. 明确需求: 你要模拟的是什么光源?太阳?激光?LED?
  2. 选择模型: 根据需求,选点光源、面光源、平行光还是高斯光束。
  3. 设定参数: 位置、方向、功率、波长、光线数。
  4. 验证光源: 在 FRED 的 3D 视图里,打开光线显示,确认光线发射方向和分布是否正确。
  5. 试跑测试: 用少量光线(比如 1000 条)跑一次,看能量分布是否合理。
  6. 正式追迹: 确认无误后,增加光线数,开始正式分析。

我的习惯:第 4 步验证光源,很多人会跳过。但我建议你千万别省。我曾经就因为光源方向设反了,白跑了两天数据。在 3D 视图里看一眼光线方向,花不了 30 秒,但能省下你几天的时间。