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 提供了两种自定义方式:
- 光谱自定义: 可以导入光谱数据文件(如 .txt、.csv),或者用内置函数生成。支持波长从紫外到远红外。
- 角度分布自定义: 可以定义光线出射的概率密度函数。比如朗伯分布、高斯分布,或者从实测数据导入。
操作步骤:
- 在光源属性里,选择“Spatial & Angular Distribution”选项卡
- 勾选“Use Custom Angular Distribution”
- 加载你的角度分布数据文件(两列:角度、相对强度)
- 在“Spectral”选项卡里,加载光谱数据
避坑指南:我曾经导入一个 LED 的光谱数据,结果追迹出来的能量分布完全不对。后来发现,我的光谱数据单位是 mW/nm,但 FRED 默认单位是 W/nm。单位搞错,结果当然全错。导入数据前,一定先确认单位。
3.6 知识结构总览
下面这张图,是我自己总结的光源建模知识结构。每次做新项目,我都会对照这张图,确认自己有没有遗漏什么。
3.7 光源建模的通用流程
不管用哪种光源,我建议都按下面这个流程走一遍:
- 明确需求: 你要模拟的是什么光源?太阳?激光?LED?
- 选择模型: 根据需求,选点光源、面光源、平行光还是高斯光束。
- 设定参数: 位置、方向、功率、波长、光线数。
- 验证光源: 在 FRED 的 3D 视图里,打开光线显示,确认光线发射方向和分布是否正确。
- 试跑测试: 用少量光线(比如 1000 条)跑一次,看能量分布是否合理。
- 正式追迹: 确认无误后,增加光线数,开始正式分析。
我的习惯:第 4 步验证光源,很多人会跳过。但我建议你千万别省。我曾经就因为光源方向设反了,白跑了两天数据。在 3D 视图里看一眼光线方向,花不了 30 秒,但能省下你几天的时间。