跳转至

说明

SSI — Stochastic Subspace Identification:跨阶投票的阻尼专家

构建块 Toeplitz 矩阵,做 SVD 后利用位移不变性提取系统矩阵,对多个模型阶数做扫描投票。数据充足时阻尼最准。

算法直觉

核心思路:从相关函数建大矩阵

与 ERA 类似,SSI 也建一个大矩阵并做 SVD,但 SSI 用的是 Toeplitz 矩阵 (从互相关函数构建的对称块矩阵)。

关键创新是 跨阶投票

阶数 2 → 得到 n 个候选模态
阶数 4 → 得到 n 个候选模态  
阶数 6 → ...
阶数 16 → ...

所有候选 → 聚类 → 稳定出现的模态才是真正的物理模态

这避免了手动选择模型阶数的困难——哪阶的模态反复出现,哪阶就是真的。

Pairwise 变体(SSI-PW)

每次只取 2 个通道建 Toeplitz(2×2 块),对每个通道对都跑一遍,最后对所有候选投票。和 ITD 的"逐对 + 投票"思路一样——对弱模态更鲁棒。

SSI vs ERA

ERA SSI
矩阵类型 Hankel Toeplitz
SVD 一次(定阶) 多次(跨阶投票)
阻尼精度 ** 最高** (数据充足时)
数据需求 中等 更多(≥ 60s 推荐)

算法流程

1. 互相关函数 R[0..20, ch_i, ch_j]

2. 构建块 Toeplitz 矩阵 T[50×50]

3. 对每个阶数 n = 2, 4, ..., 16:
   ├─ T = U·Σ·Vᵀ
   ├─ O_n = U_n·√Σ_n(可观矩阵)
   ├─ A_n = O_up⁺·O_dn(位移不变性→系统矩阵)
   └─ λ = eig(A_n) → 候选模态

4. 池化所有候选 → 聚类投票

5. 投票数最多的模态 → 最终结果

设计详解

1. Toeplitz vs Hankel

ERA (Hankel) SSI (Toeplitz)
矩阵结构 行 = 过去,列 = 未来 行 = 未来,列 = 过去(共轭对称)
SVD 后处理 截断→平衡实现→A 截断→可观矩阵→位移不变性→A
适用噪声 脉冲型 平稳随机
阻尼精度 最高(数据充足时)

Toeplitz 矩阵的列向量本身就是互相关函数,更接近"统计平均",对平稳随机激励更自然。Hankel 处理单条实现(单个样本),对瞬态分量更敏感。

2. 跨阶投票设计

SSI 独特的优势是不需要手动选择模型阶数:

for (order n = 2; n <= 16; n += 2) {
    O_n = U_n · S_n;            // 可观矩阵
    C_n = O_n[0:n_ch, :];        // 输出矩阵(前 n_ch 行)
    O_up = O_n[0:-n_ch, :];      // 去掉最后 n_ch 行
    O_dn = O_n[n_ch:, :];        // 去掉前 n_ch 行
    A_n = pinv(O_up) · O_dn;     // 系统矩阵(位移不变性)
    eig(A_n)  候选模态;
}

所有候选池化 → 10% 频率容差聚类 → 出现次数最多的模态胜出。

为什么 SSI-PW(逐对变体)更鲁棒?

全局 SSI 建一个 n_ch × block_rows 的 Toeplitz,对 5 通道 = 60×60。SSI-PW 每次只建 2 通道的 Toeplitz = 24×24。小矩阵更稳定,弱模态不会被其他通道的强模态淹没。

3. SSI vs ERA 选型

条件 推荐 原因
数据短 (< 30s) ERA Hankel 对短数据更有效
数据充足 (> 60s) SSI Toeplitz 的统计平均更准
阻尼最重要 SSI 跨阶投票 + 统计平均
频率精度最重要 ERA 平衡实现直接输出
## 何时使用 SSI
  • 数据充足(≥ 60s,推荐 120s)
  • 阻尼精度是关键需求
  • 需要跨阶自动选择模型阶数