基于MATLAB的随机子空间法(SSI)结构模态参数识别系统
项目简介
本项目是一个基于MATLAB开发的高效运行模态分析(OMA)工具箱,专门利用协方差驱动的随机子空间识别(SSI-COV)算法处理环境激励下的振动响应数据。系统不仅包含核心识别算法,还内置了一个3自由度(3-DOF)剪切框架结构的数值仿真模块,用于生成测试数据以验证算法的有效性。
该系统能够完成从数据生成、信号预处理、系统定阶、稳定图计算、模态参数自动拾取到结果可视化的全流程分析,适用于桥梁、建筑及机械设备的在线模态参数识别。
功能特性
- 结构动力学仿真:内置3层剪切框架模型,能够模拟白噪声激励下的结构加速度响应,并支持添加指定比例的测量噪声。
- 信号预处理:具备去直流、去趋势项以及基于巴特沃斯滤波器的数字低通滤波功能,有效提升信噪比。
- SSI-COV核心算法:基于Toeplitz矩阵和奇异值分解(SVD)的协方差驱动随机子空间算法,支持自动计算多阶次模型。
- 智能稳定图分析:自动生成稳定图,依据频率、阻尼比和模态置信度(MAC)三重判据识别物理模态,剔除虚假模态。
- 模态自动拾取:基于频率直方图统计和聚类分析算法,自动从稳定极点中提取结构的固有频率、阻尼比和振型。
- 多维结果可视化:提供奇异值谱、稳定图、MAC矩阵热力图以及三维结构振型动画的交互式展示。
系统要求
- MATLAB R2018b 或更高版本
- Control System Toolbox(控制系统工具箱)
- Signal Processing Toolbox(信号处理工具箱)
详细功能与实现逻辑
本项目的主程序通过流水线式的处理逻辑实现了模态参数识别,具体涵盖以下关键环节:
1. 环境初始化与结构仿真
程序首先进行环境清理并固定随机种子以保证结果可复现。随后构建一个3自由度(3-DOF)剪切模型:
- 物理参数:各层质量1000kg,层间刚度2e6 N/m,采用瑞利阻尼模型。
- 激励与响应:施加高斯白噪声激励,利用
lsim函数计算加速度响应。 - 噪声模拟:在纯净响应信号中叠加5% RMS水平的高斯测量噪声,模拟真实环境干扰。
2. 信号预处理
为确保识别精度,对采集的原始加速度信号进行以下处理:
- 去趋势:依次去除信号的直流分量(常数项)和线性趋势项,消除零漂和积分误差。
- 数字滤波:应用4阶巴特沃斯低通滤波器,截止频率设为15Hz(高于结构固有频率范围),以滤除高频噪声干扰。
3. SSI-COV 算法实现
这是系统的核心处理模块,通过以下步骤建立状态空间模型:
- 相关函数计算:利用FFT技术加速计算输出信号的互相关函数矩阵,构建相关函数序列。
- Toeplitz矩阵构建:基于计算出的相关函数,组建Toeplitz矩阵。
- SVD分解:对Toeplitz矩阵进行奇异值分解,提取信号子空间。
- 多阶次循环计算:在设定的阶次范围(2至40阶)内循环,每一步从SVD结果中截断得到可观测矩阵,进而提取系统矩阵A和C。
4. 模态参数提取与稳定性判据
程序通过特征值分解将离散时间状态矩阵转换为连续时间的频率和阻尼比,并应用以下逻辑生成稳定图:
- 物理极点筛选:仅保留正阻尼、正频率且频率小于奈奎斯特频率一半的极点,同时剔除阻尼比大于0.2的异常值。
- 稳定性判定:将当前阶次极点与上一阶次极点进行对比,设定如下严格容差:
* 频率偏差 < 1%
* 阻尼偏差 < 5%
* MAC值 > 0.98
- 状态标记:根据满足判据的程度,将极点标记为不稳定(红色)、部分稳定(蓝色)或全参数稳定(绿色)。
5. 模态自动聚类与拾取
系统摒弃了手动选点的繁琐,采用统计学方法自动提取模态:
- 直方图统计:对所有判定为“稳定”的极点进行频率分布直方图统计。
- 峰值检测:寻找出现频率超过阈值(如在至少5个模型阶次中出现)的频率段。
- 聚类平均:对落入同一频率容差范围内的极点进行聚类,计算其频率和阻尼比的平均值。
- 振型提取:对聚类内的所有振型向量进行SVD分解,取第一主作为最终识别的模态振型。
6. 结果校验与可视化
最终输出模块包含四个可视部分:
- 奇异值谱:展示系统能量分布,辅助判断模型定阶。
- 稳定图:直观展示不同阶次下极点的稳定性分布,验证自动拾取的准确性。
- MAC矩阵:计算识别出的各阶模态之间的模态置信度判据,验证模态的正交性(对角线趋近1,非对角线趋近0)。
- 3D振型图:基于预定义的传感器几何坐标,绘制结构未变形图与第一阶模态振型的叠加对比图,直观展示结构振动形态。
使用方法
直接运行主函数即可启动全流程分析。程序运行结束后,Matlab终端将打印识别出的频率和阻尼比列表,并弹出一个包含四个子图的综合分析窗口。用户可以通过修改代码头部的结构物理参数或噪声水平来测试算法在不同工况下的鲁棒性。