上一篇文章,我们提出了一个观点:
真正优秀的系统级光学平台,不仅需要计算模型,更需要管理模型。
一个数字模型除了输出光场,还应该知道:
-
自己适用于什么条件;
-
当前结果可能存在多大误差;
-
什么时候需要升级为更高保真的模型。
但这里仍然存在一个没有回答的问题:
平台究竟依据什么来判断"误差已经足够大"?
很多人会自然想到:
比较电磁场误差。
例如:
如果当前模型与高保真模型相比,
电场误差达到 1%,
是不是就应该升级模型?
这个想法看起来合理。
然而,现代计算科学的发展却告诉我们:
并不一定。
因为对于一个复杂系统而言,
真正重要的,
从来都不是整个空间的电磁场。
而是系统最终关心的那个结果。
一、一个看似矛盾的现象
设想这样两个仿真。
第一个模型:
整个空间电磁场误差:
[
|\\delta\\mathbf E|
0.2%
]
第二个模型:
整个空间电磁场误差:
[
|\\delta\\mathbf E|
2%
]
如果只看场误差,
显然第一个模型更准确。
但是,
如果系统真正关心的是:
某个探测器上的接收功率,
结果可能完全相反。
原因很简单。
第一种模型虽然场误差很小,
却恰好出现在焦点附近,
最终导致:
耦合效率下降 5%。
第二种模型虽然整体场误差更大,
却主要发生在系统边缘,
最终耦合效率几乎没有变化。
于是出现了一个重要事实:
局部场误差,并不能直接代表系统误差。
二、系统真正优化的对象是什么?
现代工程设计,很少直接优化整个电磁场。
真正被优化的,通常是一个目标函数。
例如:
耦合效率:
[
J=\\eta
]
成像系统中的 Strehl Ratio:
[
J=S
]
波前均方根误差:
[
J=W_{\\mathrm{RMS}}
]
光子芯片中的串扰:
[
J=XT
]
共振器中的品质因数:
[
J=Q
]
这些量都有一个共同特点。
它们不是光场本身。
而是:
由光场决定的系统性能指标。
现代数值分析把它们统一称为:
Quantity of Interest(QoI)。
于是,
整个系统可以表示为:
[
\\mathbf\\Psi
\\longrightarrow
J(\\mathbf\\Psi)
]
其中:
-
(\\mathbf\\Psi) 表示系统中的完整电磁场;
-
(J) 表示最终真正关心的目标。
这一点意味着:
系统真正需要控制的,
其实不是:
[
\\delta\\mathbf\\Psi
]
而是:
[
\\delta J
]
三、为什么 Goal-Oriented Error Estimation 会出现?
传统误差分析通常回答的是:
当前数值解距离真实解还有多远?
而 Goal-Oriented Error Estimation 回答的是另一个问题:
当前数值误差究竟会对最终设计目标产生多大影响?
请注意,
这是两个完全不同的问题。
例如,
某个区域的场误差很大。
但是,
系统目标对这一部分几乎没有敏感性。
那么,
继续提高这里的计算精度,
对于最终设计几乎没有帮助。
反过来,
另一个区域场误差很小,
却直接决定:
焦点位置、
耦合效率、
干涉相位、
共振频率。
这里即使只有极小误差,
也可能改变整个设计判断。
因此,
现代CAE开始提出一个新的思想:
误差的重要性,由系统目标决定。
而不是:
由误差本身决定。
四、系统怎样知道哪里真正重要?
这里就进入了系统级物理光学真正困难的地方。
对于一个复杂系统,
每一个元件都会产生一定误差。
例如:
-
光源模型;
-
透镜模型;
-
光栅模型;
-
波导模型;
-
自由空间传播;
-
探测器模型。
那么,
到底是哪一个模型,
最值得继续提高精度?
现代CAE并不会简单比较:
谁的局部误差最大。
而会研究:
系统目标对不同位置误差的敏感程度。
设:
系统目标为:
[
J(\\mathbf\\Psi)
]
如果某一局部模型引入:
[
\\delta\\mathbf\\Psi_i
]
那么,
系统目标的一阶变化可以表示为:
[
\\delta J
\\approx
\\left\\langle
\\frac{\\partial J}
{\\partial\\mathbf\\Psi_i},
,
\\delta\\mathbf\\Psi_i
\\right\\rangle
]
这里:
[
\\frac{\\partial J}{\\partial\\mathbf\\Psi_i}
]
可以理解为:
系统目标对当前位置光场的敏感程度。
于是,
真正需要关注的,
不再只是:
[
\\delta\\mathbf\\Psi_i
]
而是:
[
\\frac{\\partial J}{\\partial\\mathbf\\Psi_i}
\\delta\\mathbf\\Psi_i
]
一个误差是否重要,
取决于:
它是否真正影响系统目标。
五、这改变了模型管理的思路
上一篇文章中,
我们提出:
数字模型应该知道自己的适用范围。
现在,
可以进一步完善。
一个成熟的数字模型,
至少应该输出四类信息:
第一,
计算得到的光场:
[
\\mathbf\\Psi_{\\mathrm{out}}
]
第二,
模型误差估计:
[
\\widehat\\varepsilon
]
第三,
模型可信范围:
[
\\Omega_{\\mathrm{valid}}
]
第四,
当前误差对于系统目标的影响:
[
\\widehat{\\delta J}
]
只有当:
[
\\widehat{\\delta J}
\\delta J_{\\mathrm{target}}
]
平台才真正需要:
提高模型保真度。
而不是:
只因为:
局部场误差稍微增加,
就立即调用更昂贵的求解器。
六、系统真正调度的,其实是"误差预算"
很多工程师第一次听到这里,
都会产生一个疑问:
是不是意味着:
所有元件都应该拥有不同精度?
答案是:
更准确地说,
每一个元件,
都应该拥有:
自己的误差预算。
例如:
整个系统允许:
耦合效率误差:
0.5%。
那么,
平台可以进一步分配:
-
光源:
0.05%;
-
波导:
0.10%;
-
光栅:
0.20%;
-
物镜:
0.10%;
-
接口:
0.05%。
这并不是简单相加,
而是一种系统层面的误差管理思想。
平台真正管理的,
已经不是:
"哪个模型最快。"
而是:
哪个模型仍然处于允许的误差预算之内。
七、智能数字模型真正需要具备什么能力?
讨论到这里,
"智能数字模型"开始具有更加明确的定义。
它不仅仅保存:
几何、
材料、
算法。
它还需要保存:
-
当前保真层级;
-
已验证参数范围;
-
可接受误差;
-
对系统目标的敏感性;
-
升级策略;
-
降级策略。
于是,
一个数字模型,
开始从:
计算程序,
逐渐变成:
一个能够参与系统决策的数字对象。
真正的智能,
并不是:
自动调用FDTD。
真正的智能是:
知道:
什么时候没有必要调用FDTD。
什么时候又必须调用。
八、系统级物理光学真正管理的是什么?
回顾整个系列,
我们已经逐渐建立起一条完整逻辑。
第一篇:
统一矢量电磁场。
第二篇:
统一模型接口。
第三篇:
统一模型管理。
而这一篇,
进一步补充了最后一块拼图:
统一误差目标。
未来的系统级平台,
真正需要管理的,
已经不仅仅是:
光场。
也不仅仅是:
模型。
而是:
模型对系统目标的可信贡献。
只有这样,
平台才能真正理解:
哪些地方需要更高保真,
哪些地方保持当前模型即可。
系统于是开始从:
"计算每一个元件"
演变为:
"管理整个系统。"




