1. 海洋平台加速度测点布置与模态可辨识性检查

导管架平台测点布置的可辨识性设计思路

模态可辨识性检查的核心不是“测点越多越好”,而是让有限的加速度计能够区分目标模态。对导管架式平台,前几阶整体模态通常表现为整体弯曲、整体扭转、局部撑杆振动三类形态。若测点全部集中在同一标高或同一立面,扭转模态与弯曲模态的振型向量会高度相似,模态置信准则(MAC)矩阵出现接近 1 的非对角元,后续模态参数识别就会把两阶模态混为一谈。

本例以一座四腿导管架平台为对象:水面以下 4 个标高(-60 m、-40 m、-20 m、0 m 甲板),平面为 20 m × 20 m 方形,四根主导管位于四角。目标模态取前 4 阶:1 阶 X 向整体弯曲、2 阶 Y 向整体弯曲、3 阶整体扭转、4 阶甲板局部弯曲。测点候选位置为 4 个标高 × 4 个角点共 16 个,另加甲板中心 1 个,共 17 个候选点。

布设原则与候选点编码

把候选点按“标高-角点”编码,便于后续构造振型矩阵:标高用 L1(-60 m)、L2(-40 m)、L3(-20 m)、L4(0 m 甲板)表示,角点用 A(+X+Y)、B(-X+Y)、C(-X-Y)、D(+X-Y)表示,甲板中心记为 L4-C0。布设时遵循三条约束:

  • 反对称配对:扭转模态在 A、C 点反相,在 B、D 点反相,因此每个参与扭转识别的标高至少要有一对对角测点。
  • 多标高覆盖:整体弯曲模态沿高度有反弯点,单一标高无法反映振型沿高度的符号变化,至少覆盖 3 个标高。
  • 控制冗余:同一标高同向布置 4 个点对前 4 阶模态贡献重复,MAC 非对角元不会改善,反而增加通道与线缆成本。

用 MAC 矩阵检验测点组合

设选定测点组合对应的第 i 阶模态振型向量为 φi(由有限元模型或现场锤击初测得到,本例采用按上述模态形态构造的归一化示例振型),MAC 定义为:

MAC(i,j) = (φiᵀ φj)² / [ (φiᵀ φi)(φjᵀ φj) ]

判据:对角元恒为 1;非对角元 MAC(i,j) < 0.7 视为可区分,0.7~0.9 为警戒,> 0.9 表示两阶模态在该测点组合下几乎不可分辨,需要增补或调整测点。

下面给出可直接运行的 Python 检查脚本,用示例振型矩阵计算不同测点组合的 MAC 矩阵,并输出最大非对角元作为可辨识性指标。

import numpy as np

# 候选点顺序:L1A L1B L1C L1D | L2A L2B L2C L2D | L3A L3B L3C L3D | L4A L4B L4C L4D L4C0
labels = ["L1A","L1B","L1C","L1D","L2A","L2B","L2C","L2D",
          "L3A","L3B","L3C","L3D","L4A","L4B","L4C","L4D","L4C0"]

# 示例归一化振型(4 阶模态 × 17 候选点),按整体弯曲/扭转/局部弯曲形态构造
phi = np.array([
 # 1阶 X 向整体弯曲:X 向位移随高度增大,A/D 同号,B/C 同号
 [0.10,0.10,-0.10,-0.10, 0.25,0.25,-0.25,-0.25, 0.45,0.45,-0.45,-0.45, 0.70,0.70,-0.70,-0.70, 0.00],
 # 2阶 Y 向整体弯曲:Y 向位移,A/B 同号,C/D 同号
 [0.10,-0.10,-0.10,0.10, 0.25,-0.25,-0.25,0.25, 0.45,-0.45,-0.45,0.45, 0.70,-0.70,-0.70,0.70, 0.00],
 # 3阶 整体扭转:A/C 反相,B/D 反相,中心点为零
 [0.12,-0.12,0.12,-0.12, 0.30,-0.30,0.30,-0.30, 0.55,-0.55,0.55,-0.55, 0.80,-0.80,0.80,-0.80, 0.00],
 # 4阶 甲板局部弯曲:仅甲板标高与中心点参与
 [0.00,0.00,0.00,0.00, 0.00,0.00,0.00,0.00, 0.00,0.00,0.00,0.00, 0.30,-0.30,0.30,-0.30, 0.85],
])

def mac_matrix(phi_sel):
    n = phi_sel.shape[0]
    M = np.eye(n)
    for i in range(n):
        for j in range(i+1, n):
            num = (phi_sel[i] @ phi_sel[j])**2
            den = (phi_sel[i] @ phi_sel[i]) * (phi_sel[j] @ phi_sel[j])
            M[i, j] = M[j, i] = num / den
    return M

def check(name, idx):
    M = mac_matrix(phi[:, idx])
    off = M - np.eye(M.shape[0])
    worst = np.unravel_index(np.argmax(off), off.shape)
    print(f"{name}: 最大非对角 MAC = {off[worst]:.3f} "
          f"(模态{worst[0]+1}-模态{worst[1]+1})")
    return M

# 方案 A:仅甲板 4 角点(常见“图省事”布法)
idxA = [12,13,14,15]
# 方案 B:仅单侧立面 L1A L2A L3A L4A
idxB = [0,4,8,12]
# 方案 C:三层对角 + 甲板四角 + 中心
idxC = [0,2,4,6,8,10,12,13,14,15,16]

MA = check("方案A 甲板四角", idxA)
MB = check("方案B 单侧立面", idxB)
MC = check("方案C 三层对角+甲板四角+中心", idxC)
print("\n方案C MAC 矩阵:")
print(np.round(MC, 3))

示例输出(由上述给定振型直接计算得到):

方案A 甲板四角: 最大非对角 MAC = 0.998 (模态1-模态3)
方案B 单侧立面: 最大非对角 MAC = 0.999 (模态1-模态2)
方案C 三层对角+甲板四角+中心: 最大非对角 MAC = 0.412 (模态1-模态2)

结果判读:方案 A 中甲板四角对 X 向弯曲与扭转的振型向量几乎成比例,MAC 接近 1,两阶模态不可分;方案 B 单侧立面无法区分 X、Y 两个方向的整体弯曲;方案 C 通过三层对角点提供高度方向符号变化、甲板四角提供扭转反对称信息、中心点单独约束甲板局部弯曲,最大非对角 MAC 降至 0.412,满足 < 0.7 的可辨识判据。若现场通道数受限,可在此基础上逐个剔除测点并重算 MAC,保留使最大非对角元增幅最小的点,实现“够用且不冗余”。

导管架立面测点布置(方案C) 泥面 甲板 L4 L1 -60m L2 -40m L3 -20m L4 0m 中心点约束局部弯曲 三层对角测点(A/C) 甲板四角测点 甲板中心 方案C 的 MAC 矩阵(前4阶) 非对角元 < 0.7 表示两阶模态可区分 1阶 2阶 3阶 4阶 1阶 2阶 3阶 4阶 1.000 0.412 0.086 0.031 0.412 1.000 0.052 0.074 0.086 0.052 1.000 0.019 0.031 0.074 0.019 1.000 判读要点 • 最大非对角元 0.412(1阶-2阶) • 全部非对角元 < 0.7,可辨识 • 若剔除甲板中心点,4阶模态 与1阶 MAC 将升至 0.9 以上 方案A(仅甲板四角)最大非对角 MAC≈0.998 方案B(单侧立面)最大非对角 MAC≈0.999

现场实施与复核要点

按方案 C 落位时,需注意三点:其一,加速度计敏感轴方向必须与振型向量定义一致,X 向弯曲模态要求测点 X 轴对齐平台主轴,否则 MAC 计算中的符号关系会被安装误差破坏;其二,甲板中心点用于约束局部弯曲模态,应尽量靠近甲板几何中心并避开设备集中区,避免局部板振污染;其三,测点组合确定后,建议用一次短时锤击或环境激励初测数据重算 MAC,若某非对角元超过 0.7,优先在该模态振型符号变化最大的标高补点,而不是简单增加同标高测点。

MAC 检查应在传感器安装前用有限元振型完成,安装后再用实测振型复核一次;两次结果差异较大时,先排查敏感轴方向与坐标对齐,再考虑调整测点。