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