ICEEMDAN-CMBE特征提取+Bayes-TCN-BiLSTM故障诊断+SHAP可解释分析!MATLAB完整代码









研究背景

本代码集面向旋转机械(如轴承)的故障诊断 任务。基于凯斯西储大学(CWRU)轴承数据中心公开的驱动端振动加速度信号(采样频率12 kHz,转速1797 rpm),通过信号分解‑非线性特征提取‑深度时序分类 的全流程分析,实现不同故障类型(正常、内圈、滚动体、外圈)及不同损伤直径(0.007″、0.014″、0.021″)的10类状态识别 。核心创新在于引入复合多尺度气泡熵(CMBE) 表征ICEEMDAN分解后各IMF的复杂度,并结合贝叶斯优化(BO)的TCN‑BiLSTM混合网络提升分类精度与泛化性。


主要功能

代码文件 主要功能
shujuchuli_1797.m 加载CWRU原始.mat数据,滑动窗口切分(窗长1000,步长1000,每段2048点),生成120样本/类×10类=1200样本的归一化数据集data_total_1797.mat
main.m(特征提取) 对第一个样本可视化ICEEMDAN分解结果、包络谱、峭度、能量熵、频谱 ;对所有样本提取前8个IMF的CMBE特征 (尺度1~10),形成1200×80的特征矩阵feature_vector.mat
main.m(分类建模) 加载特征,划分训练集(每类90样本)与测试集(每类30样本);利用BO优化TCN‑BiLSTM的超参数 ;训练最优模型并评估准确率、绘制混淆矩阵、进行SHAP可解释性分析

算法步骤与技术路线

复制代码
原始振动信号(12000 Hz)
       ↓ [滑动窗口分割]
      每段2048点,120样本/类
       ↓
   ICEEMDAN分解(Nstd=0.1, NR=80, MaxIter=8)
       ↓
   前8个IMF分量
       ↓
复合多尺度气泡熵(CMBE)特征提取(尺度1~10,嵌入维m=2,r=0.15×std)
       ↓
   特征矩阵(1200×80)
       ↓
训练/测试划分(90:30每类)
       ↓
贝叶斯优化TCN‑BiLSTM超参数
(numFilters, filterSize, dropout, numBlocks, bilstmUnits, LR等)
       ↓
   最优TCN‑BiLSTM分类模型
       ↓
准确率评估 + 混淆矩阵 + SHAP特征重要性分析

公式原理

1. ICEEMDAN分解
  • 改进的自适应噪声完备集合经验模态分解 ,在CEEMDAN基础上通过添加局部均值估计抑制残余噪声和伪模态。
  • 对信号( x(t) ),第( k )阶IMF通过以下迭代获得:
    rk−1(t)=x(t)−∑i=1k−1IMF~i(t)IMF~k(t)=1I∑i=1IE1(rk−1(t)+εk−1Ek−1(w(i)(t))) \begin{aligned} r_{k-1}(t) &= x(t) - \sum_{i=1}^{k-1} \widetilde{IMF}i(t) \\ \widetilde{IMF}k(t) &= \frac{1}{I}\sum{i=1}^{I} E_1\left(r{k-1}(t) + \varepsilon_{k-1} E_{k-1}(w^{(i)}(t))\right) \end{aligned} rk−1(t)IMF k(t)=x(t)−i=1∑k−1IMF i(t)=I1i=1∑IE1(rk−1(t)+εk−1Ek−1(w(i)(t)))
    其中Ej(⋅)E_j(\cdot)Ej(⋅)为EMD的第jjj阶模态算子,w(i)(t)w^{(i)}(t)w(i)(t)为白噪声。
2. 复合多尺度气泡熵(CMBE)
  • 气泡熵(Bubble Entropy) 克服了样本熵对参数敏感的缺陷,通过排序模式匹配概率 衡量复杂度。
    • 对序列{xi}\{x_i\}{xi}重构相空间:X_i\^m = \[x_i, x_{i+1}, \\ldots, x_{i+m-1}\]
    • 计算气泡排序模式 :将每个向量映射为排列模式π\piπ
    • 气泡熵定义:
      BE(m)=−∑p(π)ln⁡p(π) BE(m) = -\sum p(\pi) \ln p(\pi) BE(m)=−∑p(π)lnp(π)
  • 复合多尺度扩展 :在尺度τ\tauτ下对序列进行粗粒化平均 (yj(τ)=1τ∑i=(j−1)τ+1jτxiy_j^{(\tau)} = \frac{1}{\tau}\sum_{i=(j-1)\tau+1}^{j\tau} x_iyj(τ)=τ1∑i=(j−1)τ+1jτxi),再计算各尺度下的BE,形成多尺度熵曲线,本代码取前10个尺度值拼接为特征。
3. TCN‑BiLSTM网络
  • 时间卷积网络(TCN) 由膨胀因果卷积残差块构成,感受野随层数指数增长。
    • 膨胀卷积输出:F(s)=(x∗df)(s)=∑i=0k−1f(i)⋅xs−d⋅iF(s) = (x *{d} f)(s) = \sum{i=0}^{k-1} f(i) \cdot x_{s-d\cdot i}F(s)=(x∗df)(s)=∑i=0k−1f(i)⋅xs−d⋅i
  • 双向长短期记忆网络(BiLSTM) 捕捉前后双向时序依赖:
    h→t=LSTM(xt,h→t−1)h←t=LSTM(xt,h←t+1)Ht=h→t;h←t \begin{aligned} \overrightarrow{h}t &= \text{LSTM}(x_t, \overrightarrow{h}{t-1}) \\ \overleftarrow{h}t &= \text{LSTM}(x_t, \overleftarrow{h}{t+1}) \\ H_t &= \\overrightarrow{h}_t; \\overleftarrow{h}_t \end{aligned} h th tHt=LSTM(xt,h t−1)=LSTM(xt,h t+1)=h t;h t
  • 组合方式:TCN提取局部时序模式 → 展平为序列特征 → BiLSTM建模全局依赖 → 全连接分类。
4. 贝叶斯优化(BO)
  • 采用高斯过程代理模型 + 期望提升(EI)采集函数
    EI(x)=Emax⁡(f(x)−f∗,0) EI(x) = \mathbb{E}\\max(f(x) - f\^\*, 0) EI(x)=Emax(f(x)−f∗,0)
    通过历史观测迭代更新后验分布,平衡探索与利用,以最小化验证损失为目标寻优。

参数设定

模块 参数名称 设定值/范围 说明
数据预处理 滑动窗口w 1000 窗口移动步长
样本长度s 2048 单个样本点数
ICEEMDAN 信噪比Nstd 0.1 噪声标准差系数
噪声添加次数NR 80 集合平均次数
最大层数MaxIter 8 提取前8个IMF
CMBE特征 最大尺度maxScale 10 多尺度因子
嵌入维m 2 相空间重构维度
相似容限系数r_factor 0.15 阈值 = 0.15×std(x)
BO优化 numFilters 8,32 整数 TCN卷积核数量
filterSize 2,6 整数 卷积核尺寸
dropoutFactor 0.05,0.3 Dropout比率
numBlocks 1,3 整数 TCN残差块数量
bilstmUnits 32,128 整数 BiLSTM隐藏单元数
InitialLearnRate 1e-4, 1e-2 对数 Adam初始学习率
LearnRateDropFactor 0.5,0.9 分段学习率衰减因子
训练设置 最大轮次MaxEpochs 120(最终训练) BO阶段为20
小批量大小 30 Mini‑Batch Size
学习率下降周期 50 每50轮衰减一次

运行环境

  • 软件平台:MATLAB R2024b

应用场景

  • 工业预测性维护:对旋转设备(电机、风机、泵)的轴承进行在线状态监测与故障预警。
  • 故障诊断算法研究 :作为信号分解‑熵特征‑深度分类范式的验证案例,可扩展至齿轮箱、往复机械等其他振动信号分析。

完整代码私信回复ICEEMDAN-CMBE特征提取+Bayes-TCN-BiLSTM故障诊断+SHAP可解释分析!MATLAB完整代码

相关推荐
Deep-w9 小时前
【MATLAB】基于离散 LQR 的车辆横向轨迹跟踪控制方法研究
开发语言·算法·matlab
ghie909010 小时前
基于 MATLAB 的序贯蒙特卡洛概率假设密度多目标跟踪实现
开发语言·matlab·目标跟踪
Evand J12 小时前
【MATLAB例程】自适应渐消扩展卡尔曼滤波(AFEKF)三维雷达目标跟踪|效果已调优,附下载链接和运行结果,代码直接运行即可
开发语言·算法·matlab·目标跟踪·卡尔曼滤波·自适应滤波·代码定制
RickyWasYoung15 小时前
【Matlab】科研绘图配色-极简版
开发语言·matlab
简简单单做算法2 天前
基于DNA算法的遥感图像加解密matlab仿真
计算机视觉·matlab·dna算法·遥感图像加解密
Naiva2 天前
【数学+MATLAB实验室】第一阶段_函数和图像(一次、二次、指数、对数、正弦、余弦、平移、缩放、叠加)
开发语言·matlab
简简单单做算法2 天前
基于Logistic-Map混沌序列的数字信息加解密算法matlab仿真
matlab·混沌序列·logistic-map·数字信息加解密
简简单单做算法2 天前
基于混沌加密的遥感图像加密算法matlab仿真
图像处理·计算机视觉·matlab·混沌加密·遥感图像加密
fengfuyao9854 天前
基于MATLAB的HHT变换完整实现(含EMD分解与三维时频谱生成)
开发语言·算法·matlab
Deep-w4 天前
【MATLAB】基于 MATLAB 的直流电动机双闭环调速系统建模与仿真
开发语言·算法·matlab