3. 光源建模基础:点光源、面光源、平行光、高斯光束、自定义光源光谱与强度分布
光源建模,说白了就是给仿真系统找一个靠谱的“源头”。很多刚接触FRED的朋友,上来就随便选个光源类型,结果杂散光分析怎么都对不上实测数据。我早年就吃过这个亏——一个激光雷达项目,杂散光路径死活找不到,最后发现是光源的发散角设错了。
这一章,咱们把FRED里常用的光源模型挨个捋一遍。每种光源适合什么场景、参数怎么调、有哪些坑,我都会结合项目经验讲清楚。
3.1 点光源:最基础的起点
点光源,顾名思义,就是一个没有大小的发光点。它向所有方向均匀发光,或者按你指定的角度分布发光。
适用场景:
- LED近似模拟(远场观察时)
- 小孔径光源的初步分析
- 系统光路概念验证阶段
在FRED里创建点光源很简单:Source → Point Source。但参数设置才是关键。
| 参数 | 说明 | 我的建议 |
|---|---|---|
| 位置 (Position) | 光源在三维空间中的坐标 | 用坐标输入,别手拖,精度不够 |
| 发光角度 (Angular Distribution) | Lambertian、Uniform、Gaussian等 | LED用Lambertian,激光用Gaussian |
| 光线数量 (Ray Count) | 追迹用的光线总数 | 初步分析用1万条,精细分析用10万+ |
| 功率 (Power) | 光源总辐射功率 | 归一化到1W,方便后续对比 |
小技巧:点光源虽然简单,但别小看它。我在做投影系统杂散光分析时,先用点光源跑一遍,找到疑似路径,再换成更复杂的光源做精细验证。这样效率高很多。
3.2 面光源:更贴近真实
面光源模拟的是一个有面积、有形状的发光体。比如显示屏、LED芯片的发光面、或者被照亮的散射表面。
FRED支持多种面光源形状:矩形、圆形、环形、甚至自定义多边形。我个人最常用的是矩形和圆形,90%的场景够用了。
注意:面光源的光线发射位置是随机采样的。光线数量太少时,会出现明显的“颗粒感”,影响分析精度。我曾经在分析一个均匀照明系统时,只用了5000条光线,结果照度分布图全是噪点,根本看不出趋势。后来加到5万条,问题就解决了。
面光源的关键参数:
- 尺寸 (Size):长宽或半径,单位mm
- 发光方向 (Direction):法线方向,或者自定义角度
- 强度分布 (Intensity Distribution):可以是均匀的,也可以是渐变的
- 光线发射模式 (Emission Mode):随机、网格、或者混合模式
3.3 平行光:模拟无穷远光源
平行光,就是所有光线都朝着同一个方向传播。它模拟的是太阳光、或者经过准直后的激光束。
在FRED里,平行光其实是一个“虚拟”的光源——它没有具体的位置,只有方向和光束截面。
关键参数:
- 方向向量 (Direction Vector):决定了光线的传播方向
- 光束直径 (Beam Diameter):决定了照明区域的大小
- 波前类型 (Wavefront Type):平面波或球面波
我做太阳杂散光分析时,平行光是必用的。但有个坑——平行光默认是无限大光束,如果你不设置光束直径,它会照亮整个系统,导致追迹时间暴增。所以,记得根据实际遮光罩的入光口径,把光束直径设小一点。
3.4 高斯光束:激光系统的标配
高斯光束是激光系统里最常用的模型。它的强度分布呈高斯函数形状,中心最亮,边缘逐渐衰减。
FRED里高斯光束的参数比普通光源多一些:
| 参数 | 含义 | 典型值 |
|---|---|---|
| 束腰半径 (Waist Radius) | 光束最细处的半径 | 0.5 mm |
| 波长 (Wavelength) | 中心波长 | 532 nm |
| M²因子 | 光束质量因子(1为理想) | 1.0 ~ 1.5 |
| 发散角 (Divergence Angle) | 远场发散半角 | 0.5 mrad |
经验之谈:很多工程师直接用“理想高斯光束”(M²=1)来仿真,但实际激光器很少能达到这个水平。我一般会根据激光器的规格书,把M²设成1.2或1.3,这样仿真结果跟实测更吻合。
3.5 自定义光源光谱与强度分布
FRED最强大的地方之一,就是支持完全自定义的光源。你可以导入实测的光谱数据,也可以定义任意形状的强度分布。
我通常用两种方式:
- 导入光谱文件:支持CSV、TXT格式,波长和强度两列数据
- 使用脚本定义:通过FRED的脚本语言,写函数来控制强度分布
自定义光谱的步骤:
- 准备好光谱数据文件(波长nm,相对强度)
- 在光源属性中,选择“Spectral → Import from File”
- 设置波长范围和采样点数
- 确认导入后的光谱曲线是否平滑
避坑指南:我曾经导入过一个LED的光谱文件,数据点有2000多个,结果FRED跑起来慢得像蜗牛。后来发现,其实50-100个采样点就足够精确了。数据点太多反而拖慢计算速度,没必要。
3.6 知识结构总览
下面这张图,把本章的光源类型和核心参数串起来了。你可以把它当作一个快速参考。
3.7 光源选择的决策思路
说了这么多,到底什么时候用哪种光源?我一般按这个思路来:
- 初步验证阶段:用点光源或平行光,快速跑通光路
- 精细分析阶段:根据实际光源类型,换成面光源或高斯光束
- 与实测对标阶段:导入实测光谱数据,做自定义光源
最后说一句:光源建模没有绝对的“正确”,只有“够用”。你的仿真精度只要满足工程需求就行,没必要追求极致的完美。我见过有人花两周调光源参数,结果系统误差本身就比光源误差大得多——那纯粹是浪费时间。