






1. 研究背景
本代码面向旋转机械轴承故障诊断问题,基于凯斯西储大学(CWRU)公开的轴承振动数据。原始数据包含正常状态以及内圈、滚动体、外圈故障三种类型,每种故障又包含0.007、0.014、0.021英寸三种损伤直径,分别在1750 rpm、1772 rpm、1797 rpm三种转速下采集。代码通过信号分解、熵特征提取和机器学习分类,实现对轴承不同故障状态的自适应识别。
2. 主要功能
- 数据预处理:将长时振动信号分割为固定长度的样本,形成训练/测试集。
- 特征提取:利用ICEEMDAN 将振动信号分解为多个本征模态函数(IMF),并对每个IMF计算复合多尺度气泡熵(CMBE),构建特征向量。
- 故障分类:采用最小二乘支持向量机(LSSVM) 进行多分类,并引入灰狼优化算法(GWO) 自动寻优LSSVM的正则化参数
gam和核参数sig2,提升分类准确率。 - 结果可视化:绘制原始信号、IMF分量、包络谱、频谱、峭度图、能量熵图、混淆矩阵及分类结果散点图。
3. 算法步骤
-
数据加载与分帧
- 加载各.mat文件中的驱动端加速度信号(
DE_time)。 - 使用滑动窗口(窗口起点间隔
w=1000点,每帧长度s=2048点)截取样本,每个状态产生m=120个样本。 - 合并所有状态的样本,生成总数据矩阵
data(1200×2048)。
- 加载各.mat文件中的驱动端加速度信号(
-
ICEEMDAN分解
- 对每个样本进行ICEEMDAN分解,参数:噪声标准差
Nstd=0.1,噪声添加次数NR=80,最大分解层数MaxIter=8。 - 保留前8个IMF分量(不足则补零)。
- 对每个样本进行ICEEMDAN分解,参数:噪声标准差
-
复合多尺度气泡熵提取
- 对每个IMF计算CMBE,尺度因子
maxScale=10,嵌入维数m=2,相似容限r = r_factor * std(x),r_factor=0.15。 - 每个样本得到
8 IMF × 10 尺度 = 80维特征向量。
- 对每个IMF计算CMBE,尺度因子
-
数据集划分
- 每个状态120个样本,取前90个训练、后30个测试。
- 特征归一化(
mapminmax)。
-
LSSVM基准分类
- 采用RBF核,
OneVsOne多分类编码,默认gam=1.2,sig2=1.5。 - 训练模型,预测测试集,计算准确率并绘制混淆矩阵。
- 采用RBF核,
-
GWO优化LSSVM参数
- 设置种群规模
popsize=15,最大迭代maxgen=30,参数搜索范围[1e-8, 1e8]。 - 以测试集准确率为适应度函数,寻优最佳
gam和sig2。 - 用最优参数重新训练LSSVM,输出优化后的分类结果与收敛曲线。
- 设置种群规模
4. 技术路线
振动信号 → ICEEMDAN分解 → IMF分量 → 复合多尺度气泡熵 → 特征向量 → LSSVM分类 → GWO参数优化 → 故障识别结果。
5. 公式原理
- ICEEMDAN:改进的完全自适应噪声集合经验模态分解,通过添加有限幅值的白噪声并取平均,抑制模态混叠,获得物理意义明确的IMF。
- 气泡熵(Bubble Entropy):基于信号排序模式("气泡")的复杂度度量,对时间序列中相邻值的增减顺序进行编码并计算香农熵。复合多尺度则先对原始序列进行粗粒化(多尺度),再计算各尺度下气泡熵的均值,以反映信号在不同时间尺度上的不规则性。
- LSSVM :将标准SVM的不等式约束改为等式约束,损失函数采用平方误差,将二次规划问题转化为线性方程组求解,计算效率更高。分类决策函数为:
y(x)=sign(∑i=1NαiK(x,xi)+b)y(\mathbf{x}) = \text{sign}\left( \sum_{i=1}^{N} \alpha_i K(\mathbf{x}, \mathbf{x}_i) + b \right)y(x)=sign(∑i=1NαiK(x,xi)+b)
其中核函数K(\\mathbf{x}_i, \\mathbf{x}_j) = \\exp(-\| \\mathbf{x}_i - \\mathbf{x}_j \|\^2 / (2\\sigma\^2)) 。 - GWO:模拟灰狼群体捕食行为,通过α、β、δ、ω四类狼的包围、狩猎和攻击机制更新位置,迭代寻优目标函数的最小值(此处转化为最大化分类准确率)。
6. 参数设定
| 模块 | 参数 | 值 | 说明 |
|---|---|---|---|
| 数据分割 | w |
1000 | 滑动窗口步长 |
s |
2048 | 样本长度 | |
m |
120 | 每类样本数 | |
| ICEEMDAN | Nstd |
0.1 | 噪声标准差 |
NR |
80 | 噪声添加次数 | |
MaxIter |
8 | 最大分解层数 | |
| CMBE | maxScale |
10 | 最大尺度因子 |
m |
2 | 嵌入维数 | |
r_factor |
0.15 | 相似容限系数 | |
| LSSVM | 核函数 | RBF | 径向基函数 |
| 编码 | OneVsOne | 一对多编码 | |
| GWO | popsize |
15 | 种群规模 |
maxgen |
30 | 最大迭代次数 | |
lb, ub |
[1e-8, 1e8] | 参数搜索范围 |
7. 运行环境
- 软件:MATLAB(R2024b及以上版本)。
- 数据文件 :
97.mat、105.mat......236.mat等CWRU原始数据文件需存放于当前路径或子文件夹中。
8. 应用场景
- 工业旋转机械健康监测:如电机、风机、压缩机、汽轮机等设备的轴承故障诊断。
- 智能运维系统:可嵌入到在线监测平台,实时采集振动信号,自动提取特征并分类,实现故障早期预警与类型识别。
- 学术研究:验证新的信号分解方法(ICEEMDAN)与熵特征(CMBE)在机械故障诊断中的有效性,对比不同优化算法对分类器性能的提升作用。