非序列杂散光分析:挡光环为什么越加越多,结果却未必可信


挡光结构的效果取决于它切断了哪条传播路径,也取决于仿真是否采到了稀有散射事件。本文从受照面与可见面交集建立分析流程,给出挡光口径和蒙特卡洛收敛算例,讨论材料、光线截断和视场渐晕的取舍。

为什么一张很黑的仿真图还不能说明问题

相机拍摄暗目标时,视场外有一盏强灯。模型里给镜筒内壁赋了黑色材料,增加两片挡光环,再追迹十万条光线,探测器图变黑了。它至少有三种解释:路径确实被切断;进入探测器的路径很稀有,当前样本没采到;软件因能量阈值或最大交互次数终止了那部分光。

因此,杂散光分析首先需要一个可比较的任务:给定光源方向、角尺寸、谱分布和入射功率,在指定探测器区域统计不应出现的能量。本文不绑定某个软件版本,使用几何光学模型;极小孔边缘的衍射、相干干涉和荧光不在本算例范围内。

先追路径,再加结构

非序列追迹允许光线在实际几何对象间多次交互,反射、透射、散射分支可同时存在。启用光线分裂会增加计算成本,也会改变光线历史的统计结构。Ansys 的杂散光入门案例展示了这一点,并强调加入机械结构后应重新检查正常成像光束。

对机械散射,先找两类集合:强杂光能够照到的表面,以及探测器能够直接或经光学系统看到的表面。两者的交集是首轮优先检查对象。一个面积很大但探测器完全看不到的内壁,未必是主要贡献者;一个面积很小却同时被强光照亮、被探测器看到的倒角,可能更关键。NASA 对 Landsat 光学工程的介绍也将视场外散射和前置挡光结构联系起来,见 NASA 的 Landsat 工程说明。

把主要路径写成可读序列,例如“光源→镜筒前缘→第二片透镜外侧→探测器”。然后分别尝试减少前缘受照、隐藏前缘、改变近镜面方向、降低散射。修改前后按路径族比较通量,比只比较总图的颜色更容易定位改进来自哪里。

这种分解也能避免误判镀黑效果。材料名称带“黑”不能说明所有波长和掠入射角都低反射;漫反射率、近镜面峰和表面粗糙度需要实测或可信数据库支撑。材料参数未知时,应做保守的参数扫描,报告结果区间。

一片挡光环的初步口径怎么算

在光学系统前方的空气段,设入瞳半径为 R,某挡光环到入瞳平面的距离为 L,允许最大半视场角为 α。忽略瞳像差和入口结构,离轴平行光束在环平面的中心偏移量约为 L·tan(α),因此环内半径至少应满足:

1
a ≥ R + L·tan(α) + 装调及制造余量

示例 R=8 mm、L=40 mm、α=6°,几何包络半径为 12.204 mm。若给 0.4 mm 余量,初步内半径约 12.604 mm。把内半径直接设成入瞳半径 8 mm,看似挡光更强,却会明显遮挡边缘正常光束。

这个公式只适用于无遮挡、平面入瞳和空气段直线传播的初步设计。实际镜筒内部应从真实光线包络求口径,包括各波长、视场和装调极限;不能把入瞳平面的圆原样复制到所有位置。

随后要检查环的厚度、刃口、倒角与背面。正向看不到的结构,可能经玻璃反射形成新路径。增加挡光环会改变受照区域,有时只是把主要散射面从镜筒转移到挡光环自身。每增加一个对象都应重跑路径分类与正常通光检查。

为什么“零条命中”不等于零杂光

构造一个非常简化的等权重独立光线模型:每条入射光线以概率 p 最终进入关注的杂光区域。N 条光线的命中数 K 近似服从二项分布。若 p 很小,平均命中数为 Np,相对标准差约为:

1
σK / E[K] ≈ 1 / sqrt(Np)

如果 p=10^-6,N=10^5,平均只有 0.1 次命中,零命中的概率约 exp(−0.1)=90.5%。此时一张全黑的探测器图几乎没有证明力。希望命中统计的相对标准差约为 10%,需要 Np≈100,也就是 N≈10^8。

若某次独立抽样确实零命中,可以利用 P(K=0)≈exp(−Np) 得到约 95% 的单侧概率上界 p≈3/N。十万条零命中,只能在本模型下支持 p 大致小于 3×10^-5,远远不能证明达到 10^-7。

下面的标准库算例同时复算初步挡光口径与稀有事件数量级:

1
2
3
4
5
6
7
8
9
10
from math import tan, radians, exp, log, ceil

radius_mm, distance_mm, half_fov_deg = 8.0, 40.0, 6.0
clear_radius = radius_mm + distance_mm * tan(radians(half_fov_deg))
print(f"初步环内半径: {clear_radius + 0.4:.3f} mm")

p, n = 1e-6, 100_000
print("零命中概率近似:", exp(-n*p))
print("零命中时95%上界近似:", -log(0.05) / n)
print("10%相对标准差所需光线数:", ceil(1 / (0.1**2 * p)))

真实非序列分析常采用分裂光线、重要性抽样与不同能量权重,同一个母光线的子分支也不是独立样本。上面的二项结论不能直接套到所有软件命中数量上。更稳妥的做法是按独立追迹批次记录目标区域总能量,通过批次间波动估计数值稳定性;同时确认源功率归一化没有改变。

让“收敛”有具体含义

先固定光源与几何,使用多组随机种子,按 N、2N、4N 增加样本,记录总杂光通量、热点位置、主要路径占比和不确定度。不要只看峰值像素,因为减小探测器像素尺寸会让单像素命中更加稀疏。比较空间积分量,或者同时说明探测器网格与统计噪声。

再单独收紧最低相对能量、最大交互次数和最大分段次数。若杂光量随截断阈值显著变化,说明当前结果仍受数值截断控制。参数过松导致计算很慢,过紧则可能把需要评估的微弱分支删除,应该依据目标抑制比做敏感性检查。

最后扫描离轴源角度。某个角度下挡光环表现很好,不代表角度稍变仍然有效。可先粗扫找峰值,再在峰值附近加密,同时覆盖源的方位角和有限角尺寸。结构不对称、线缆孔和安装槽都会破坏仅沿一个截面分析的前提。

比较指标前固定功率与探测器定义

一个常见陷阱是改变源角度或源面积之后,软件里的源功率也随之变化。若以探测器杂光功率除以源总功率定义传递比,就要保证分母与实际照明任务一致;若使用入瞳处辐照度归一化,则必须另外记录入瞳面积与单位。两种比值都可以使用,但不能当作同一指标混在一张表里。

还应区分总杂光与局部背景。均匀背景会压低全图对比度,狭小鬼像则可能只干扰某个特征;同样总功率,对任务的影响不同。因此固定一个全探测器积分区域,再增加任务相关的小区域与峰值统计,才能同时观察总量和空间分布。峰值必须附像素尺寸,避免仅靠改变网格就产生“优化”。

输出一份能用于机械迭代的结论

建议每版保留基准图、正常光通量、杂光积分、关键路径、材料假设和数值参数。若杂光降低 60%,正常通光也降低 30%,需要回到系统信噪比判断是否值得;单看抑制百分比容易奖励过度遮挡。

一套有效的迭代顺序是:先验证正常光路与能量守恒,再定位贡献路径,再修改少量几何参数,最后检查材料和统计敏感性。没有足够材料数据或实物测试时,报告应明确这是条件化预测。仿真最有价值的输出,是告诉机械设计应切断哪条路径,以及结果对哪些未知量敏感。


 上一篇
暗场与平场校正:从像素响应模型到噪声放大和失效掩膜 暗场与平场校正:从像素响应模型到噪声放大和失效掩膜
边缘发暗、像素响应不一致和暗偏置需要不同处理。本文从线性响应模型推导暗场和平场公式,以两像素算例说明为什么不能只做背景相减,并讨论参考帧噪声、近零分母、温漂以及独立平场验证方法。
2026-10-18
下一篇 
畸变不能只看最大百分比:从视场采样到可逆标定映射 畸变不能只看最大百分比:从视场采样到可逆标定映射
同样写着畸变小于百分之一,两支镜头可能有完全不同的测量表现。本文明确参考投影和坐标单位,用径向模型推导局部倍率、映射可逆性与反算条件,并给出覆盖边缘、角点和独立验证点的标定方案。
2026-10-18
  目录