基于变分模态分解与深度学习的复杂机械故障诊断系统
项目简介
本项目实现了一套完整的旋转机械故障诊断流程,演示了从信号模拟、信号处理、特征提取到深度学习识别及可视化报告生成的全过程。该系统旨在检测工业场景中(如滚动轴承)的早期微弱故障。
程序完全基于 MATLAB 编写,采用全流程脚本化执行。它首先生成包含复杂噪声和故障冲击的模拟振动信号,随后利用小波变换和变分模态分解(VMD)进行信号净化与分解,提取希尔伯特包络谱特征和时域统计指标,最后通过构建轻量级卷积神经网络(CNN)进行智能化故障分类,并在交互式界面中展示诊断结果。
功能特性
- 高保真信号模拟:内置机械振动信号生成模型,能够模拟包含转频、系统共振、高斯白噪声及周期性故障冲击(如内圈故障)的复杂信号。
- 先进信号降噪:集成小波阈值去噪算法,有效提升原始信号的信噪比。
- 自适应模态分解:采用变分模态分解(VMD)算法,将复杂信号分解为多个带宽受限的本征模态函数(IMF),并包含兼容性处理机制。
- 多维特征提取:结合了时域统计特征(峭度、波峰因子等)与频域特征(希尔伯特包络谱、谱熵)。
- 深度学习诊断:内嵌卷积神经网络(CNN)构建与训练模块,演示了端到端的智能诊断流程。
- 交互式诊断仪表盘:通过 MATLAB 图形化布局,集成显示时域波形、三维时频图、VMD 分解图、包络谱及健康度趋势预测。
核心算法与实现逻辑
本项目的主程序通过以下六个关键步骤实现诊断逻辑:
1. 系统参数初始化与信号模拟
- 信号建模:脚本首先定义采样频率(12kHz)和旋转频率,构建包含周期性冲击成分的故障模型。
- 混合噪声:模拟了因轴承内圈故障引起的衰减振荡信号,并叠加了正弦转频分量和高斯白噪声,以模拟真实的工况环境。
2. 信号预处理(小波去噪)
- 小波变换:使用
db4 小波基对原始信号进行5层分解。 - 阈值处理:利用
ddencmp 获取默认阈值,并采用软阈值策略对信号进行全局去噪,计算并输出去噪前后的信噪比(SNR)增益。
3. 核心算法:变分模态分解 (VMD)
- 参数配置:设置惩罚因子(Alpha=2000)和模态数(K=4),旨在分离低频干扰与高频冲击。
- 智能兼容机制:程序内置检测逻辑。如果当前 MATLAB 环境包含信号处理工具箱中的
vmd 函数,则执行真实的 VMD 分解;若未检测到该函数,则自动切换至基于带通滤波的模拟分解模式,确保程序在不同环境下的可运行性。
4. 特征提取与包络分析
- 成分优选:自动计算各 IMF 分量的能量,选取能量最大的模态作为包含故障信息的目标分量。
- 希尔伯特解调:对优选模态进行希尔伯特变换,求取包络信号并去除直流分量。
- 统计特征:计算目标分量的峭度、有效值(RMS)、波峰因子、脉冲因子以及简化版的排列熵,作为后续 AI 模型的输入依据。
5. 智能化决策 (CNN)
- 网络构建:搭建了一个包含卷积层、批归一化层、ReLU 激活层和最大池化层的轻量化一维卷积神经网络。
- 实时训练演示:程序并在运行时生成模拟训练数据集(包含正常、内圈、外圈等不同类别的特征模式),直接调用
trainNetwork 进行快速训练演示。 - 故障推断:将当前提取的信号特征输入训练好的网络进行分类。包含容错机制,若深度学习工具箱不可用或训练失败,系统将自动降级为基于规则的判定模式输出结果。
6. 可视化与诊断报告
利用
tiledlayout 构建综合诊断面板,包含以下模块:
- 波形对比:展示原始含噪信号与小波去噪后的信号对比。
- 三维时频分析:通过短时傅里叶变换(STFT)绘制信号的三维时频分布图。
- VMD 分解展示:以瀑布图形式直观展示分解后的各 IMF 分量。
- HHT 包络谱:在包络谱中标注自动识别的故障特征频率及其倍频(1x, 2x, 3x)。
- 智能报告栏:显示被测对象信息、转速、AI 预测结论、置信度及关键指标(如峭度)。
- 健康趋势:模拟生成设备健康度的 Sigmoid 下降趋势曲线,展示预测性维护视角。
系统要求
要完全运行本项目的所有功能,建议 MATLAB 环境配置以下工具箱:
- MATLAB R2020a 或更高版本
- Signal Processing Toolbox(用于
vmd、hilbert、spectrogram 等核心函数) - Wavelet Toolbox(用于
wdencmp 等小波去噪函数) - Deep Learning Toolbox(用于
trainNetwork、convolution2dLayer 等深度学习功能)
*注意:如果缺少深度学习工具箱,程序将跳过 AI 训练部分并给出警告,但仍能完成信号处理与特征提取的可视化演示。*
使用方法
- 确保 MATLAB 路径设置正确。
- 直接运行主程序脚本。
- 程序将自动执行数据生成、处理与诊断,并在计算完成后弹出一个包含完整诊断图谱的图形界面窗口。
- 控制台窗口(Command Window)将实时打印处理进度、信噪比提升数据、特征值计算结果以及最终的诊断结论。