跳转至

附录 A4 - 热辐射腔体

温度不同的地表和半透射薄片,会彼此吸收、反射和发射热辐射。天空辐射还可以穿过薄片进入腔体。本例比较这些过程共同形成的辐亮度,并检查地表、薄片与天空同温时是否达到热平衡。

场景设置

拖动可旋转场景,也可单独打开三维预览。

水平单元为 2 m × 2 m,地表位于 Z = 0,薄片位于 Z = 1 m。采用水平周期边界,最多穿越 10000 次,表示无限延伸的平行平面。没有太阳辐射,也没有大气衰减;天空为给定温度的各向同性黑体辐射。薄片两面的属性相同,反射与透射均为漫射。

波长 / µm 地表发射率 εg 薄片发射率 εs 薄片透射率 τ 薄片反射率 ρs
4 0.6 0.8 0.1 0.1
8 0.4 0.3 0.2 0.5
10 0.5 0.4 0.35 0.25
12 0.7 0.6 0.2 0.2
14 0.8 0.9 0.05 0.05

地表不透射,其反射率为 ρg = 1 − εg。薄片满足 εs + ρs + τ = 1。设置两组温度:

  • 不同温度:地表 320 K、薄片 290 K、天空 270 K。
  • 同温热平衡:地表、薄片和天空均为 300 K。

分别观测腔内上行 U、腔内下行 D 和腔外上行 O 辐亮度,每个量取垂直方向与偏离垂直 60° 的方向。腔内传感器位于 Z = 0.5 m,腔外位于 Z = 1.5 m,视场角为 8°,影像为 16 × 16 像元。上行辐射由向下看的传感器接收,下行辐射由向上看的传感器接收。

解析解

普朗克定律给出温度 T 下的黑体光谱辐亮度:

\[ B_\lambda(T)=\frac{2hc^2}{\lambda^5[\exp(hc/(\lambda kT))-1]}. \]

公式中波长以 m 计,得到每 m 波长的辐亮度;乘以 \(10^{-9}\) 后为 LESS 使用的 W m⁻² sr⁻¹ nm⁻¹。h、c、k 分别为普朗克常数、光速和玻尔兹曼常数。黑体平面对照使用 280、300、320 K,直接比较这一公式,并检查反演亮温。

记 \(B_g=B_\lambda(T_g)\)、\(B_s=B_\lambda(T_s)\)、\(L_{sky}=B_\lambda(T_{sky})\)。平面间的视因子为 1,三个出射辐亮度满足:

\[ U=\varepsilon_g B_g+\rho_g D,\qquad D=\varepsilon_s B_s+\rho_s U+\tau L_{sky}, \]
\[ O=\varepsilon_s B_s+\rho_s L_{sky}+\tau U. \]

因此

\[ U=\frac{\varepsilon_g B_g+\rho_g\varepsilon_s B_s+ \rho_g\tau L_{sky}}{1-\rho_g\rho_s}. \]

再代回即可求出 D 和 O。分母包含平面间无限次热反射;各波长单独计算。同温时,由 ε + ρ + τ = 1 可得 U = D = O = Bλ(T),即使表面不是黑体,平衡辐射场仍是黑体辐射。漫射无限平面的辐亮度与观测角度无关,因此六个视角均有明确参考值。

模拟结果

不同温度下腔内与腔外的光谱辐亮度

实线为解析值,符号为三个后端的垂直方向结果。图中按每 µm 显示辐亮度,便于阅读;下载数据按每 nm 保存。

黑体平面对照、同温热平衡与采样收敛

每像元分别使用 256、1024、4096 个样本,最终结果采用 4096。黑体对照与所有腔体视角使用相同的波段和采样计划。

热成像路径最多处理 16 次表面作用。本例每轮往返比例 ρgρs 不超过 0.3, 至少保留七轮完整往返;用各波长最大黑体辐亮度乘以 (ρgρs)⁷ 估计剩余贡献, 再以最小解析辐亮度归一化,截断误差的保守上界为 0.044%。

指标 阈值
光谱辐亮度最大相对误差 ≤ 0.5%
与解析辐亮度对应的亮温最大偏差 ≤ 0.3 K
最后两档采样的辐亮度变化,以解析值归一化 ≤ 0.3%
后端 黑体辐亮度误差 腔体辐亮度误差 腔体亮温偏差 / K 最后预算变化 结论
optix 0.000004% 0.0258% 0.0116 0.0477% 通过
vulkan 0.000017% 0.0259% 0.0117 0.0478% 通过
embree 0.000004% 0.0258% 0.0116 0.0478% 通过

三个后端均通过。300 K 同温热平衡下,六个视角的最大亮温偏差为 0.0108 K。

下载与复现

将脚本与 data/thermal-cavity/ 按下载路径的相对关系放置,运行:

python scripts/appendix_thermal_cavity.py --output results/thermal-cavity

用 --plot-only results/thermal-cavity/results.json 可从已有结果重新绘图,需要 matplotlib。