3. 模型降阶的数学基础
模型降阶(Model Order Reduction, MOR)的核心思想是:高保真有限元模型往往包含数十万甚至数百万自由度,但系统在参数扫描或瞬态演化中真正“活跃”的运动模式却集中在极低维的子空间里。只要找到这组低维基,就能把原问题投影到小规模系统上求解。本节围绕四个关键概念展开:本征正交分解(POD)、奇异值分解(SVD)、Galerkin 投影与最小二乘 Petrov-Galerkin 投影,并说明它们在 COMSOL 弱形式中的落地方式。
一、从快照到低维基:POD 与 SVD 的关系
POD 是一种数据驱动的降阶方法。假设我们对某个物理场 u(x, t) 在若干时刻或若干参数点采样,得到一组“快照” u1, u2, …, um,每个快照是 N 维离散向量(N 为有限元自由度)。把这些快照按列排成快照矩阵 S ∈ ℝN×m。POD 要寻找一组正交基 Φ = [φ1, φ2, …, φr],使得任意快照在这组基上的投影误差在最小二乘意义下最小。
这个最优化问题的解,恰好由快照矩阵的奇异值分解给出:S = UΣVT。其中 U 的列向量就是 POD 基(左奇异向量),Σ 的对角元 σ1 ≥ σ2 ≥ … ≥ 0 是奇异值,V 的列向量是时间/参数模态。奇异值的大小直接反映对应基模态携带的能量:σi2 正比于第 i 个模态的能量。因此截断准则非常直观——保留前 r 个模态,使累计能量占比达到设定阈值,例如 99.9% 或 99.99%。
需要强调的是,POD 基的“最优性”是在快照集合上的 L2 意义下成立的,它并不保证对快照之外的新参数点也一定最优。因此快照采样必须覆盖关心的参数区间和激励频段,否则降阶模型会在插值区间外迅速失准。
二、Galerkin 投影:让残差与试探空间正交
得到基 Φ 后,下一步是把原方程投影到低维空间。设原弱形式为:求 u ∈ V,使得对任意试探函数 v ∈ V 有 a(u, v) = L(v)。降阶近似写作 u ≈ Φq,其中 q ∈ ℝr 是待求的降阶坐标。
Galerkin 投影的做法是:令试探函数也取同一组基,即 v = φj,j = 1..r。代入后得到降阶方程:
Φᵀ A Φ q = Φᵀ b
即 A_r q = b_r, 其中 A_r = Φᵀ A Φ ∈ ℝ^{r×r}, b_r = Φᵀ b ∈ ℝ^r
这里 A 是原离散算子矩阵,b 是载荷向量。Galerkin 投影的几何含义是:降阶解代入原方程后的残差 r = AΦq − b 与整个试探空间 span(Φ) 正交。当原算子 A 对称正定时,Galerkin 投影等价于在子空间上最小化能量泛函,稳定性好、误差有界。COMSOL 中大量物理场(结构力学、传热、静电场)的弱形式都满足这一条件,因此 Galerkin 是默认首选。
三、最小二乘 Petrov-Galerkin:当试探空间与测试空间不同
对流主导问题、含强非对称算子的流动问题中,Galerkin 投影会出现伪振荡甚至发散。原因是残差虽然与试探空间正交,但残差本身可能很大。此时改用 Petrov-Galerkin:试探空间仍为 span(Φ),但测试空间取另一组基 Ψ,要求 ΨT(AΦq − b) = 0,得到 ΨTAΦ q = ΨTb。
若进一步要求残差在最小二乘意义下最小,即 minq ‖AΦq − b‖22,其正规方程为 (AΦ)T(AΦ) q = (AΦ)Tb。这相当于取 Ψ = AΦ,即测试基由算子作用于试探基生成。最小二乘 Petrov-Galerkin 的降阶矩阵为 ΦTATAΦ,条件数约为 Galerkin 的平方,因此对病态问题需要配合基正交化或加权处理。它的优势是:即使 A 非对称、非正定,仍能保证残差最小,适合对流扩散、Navier-Stokes 线性化系统等场景。
四、在 COMSOL 弱形式中实现投影
COMSOL 的弱形式接口(Weak Form PDE)允许用户直接书写弱表达式。默认情况下,试探函数与测试函数同名,例如 test(u) 与 u,此时自动构成 Galerkin 投影。若要实现 Petrov-Galerkin,需要把测试函数与试探函数解耦:试探场用 u 表示,测试函数改用另一个变量名,例如 test(u_test),并在弱表达式中显式写出测试算子。
一个典型的最小二乘 Petrov-Galerkin 弱形式写法如下(以稳态对流扩散为例):
弱形式表达式:
(beta·grad(u) - f) * test(u_test) + kappa*grad(u)·grad(test(u_test))
其中:
u —— 试探场(降阶坐标展开的物理量)
u_test —— 测试场,仅用于生成测试函数
beta —— 对流速度向量
kappa —— 扩散系数
f —— 源项
若要在降阶基上求解,可把 u 写成 sum(q_i * phi_i, i, 1, r) 的形式,其中 phi_i 是从外部导入的 POD 基函数(可通过插值函数或文件导入)。COMSOL 会据此组装出 r×r 的降阶矩阵。实际工程中更常见的做法是:先在 COMSOL 中完成高保真瞬态或参数扫描,导出快照到 MATLAB/Python 做 SVD,再把截断后的基以插值函数形式回填到弱形式中。
五、误差与稳定性判断
降阶模型是否可信,不能只看能量占比。建议同时观察三个指标:一是截断能量 E(r),通常要求 ≥ 99.9%;二是降阶解与高保真解在若干验证参数点上的相对 L2 误差,目标一般小于 1%;三是降阶矩阵的条件数,若超过 1e12 则数值求解会明显失稳。对于 Petrov-Galerkin,条件数约为 Galerkin 的平方,因此 r 不宜取得过大,通常控制在 20~60 之间即可覆盖大多数工程问题的主要模态。
最后要提醒:POD 基是从快照中“学”出来的,它对外推参数非常敏感。若参数区间跨度大,应采用分段 POD 或自适应采样,而不是一味增加 r。理解 SVD 的能量排序、Galerkin 的正交残差条件以及 Petrov-Galerkin 的最小二乘本质,才能在 COMSOL 弱形式中做出正确的投影选择。