轴承剩余寿命预测 | 基于BP神经网络的轴承剩余寿命预测MATLAB实现!

研究背景

该代码基于IEEE PHM 2012数据挑战赛的轴承全寿命加速退化实验数据,旨在利用数据驱动方法预测滚动轴承的剩余使用寿命(RUL)。实验中轴承在恒定负载下持续运行至失效,期间通过水平/竖直加速度传感器以25.6 kHz采样频率每隔10秒采集0.1秒的振动信号。传统方法难以对多工况、多特征的退化趋势建模,而BP神经网络作为经典的非线性回归模型,能够从手工设计的时频域特征中学习退化规律,为预测性维护提供决策支持。

主要功能

  1. 数据预处理与特征提取:批量读取7组轴承全寿命振动信号,通过滑窗方式生成时间序列样本,并提取每组窗内信号的时域和频域统计特征,构造训练/测试特征集。
  2. RUL预测建模:基于BP神经网络构建从特征到RUL的回归模型,使用Bearing1-1和Bearing1-2的训练数据学习退化映射,对Bearing1-3的测试数据输出连续RUL预测值。
  3. 性能评估与可视化:计算均方根误差(RMSE)、平均绝对误差(MAE)、决定系数(R²),绘制预测值与真实值对比、误差分布、特征重要性排序、训练性能曲线等多维分析图表。

算法步骤

  • 数据加载:遍历指定路径下的CSV文件,读取水平振动信号(通道5),每组文件包含2560个采样点。
  • 滑窗构造 :以窗口大小window_size=3(即30秒内共0.3秒数据)和步长stride=1,沿时序滑动生成样本X,对应标签Y为寿命百分比标签(从1线性递减至0)。
  • 特征提取 :对每个样本应用feature_extraction函数(选择'time-freq'模式),提取包括均方根、峰峰值、峭度、频谱能量等时频域特征,形成高维特征向量。
  • 数据划分与标准化:指定轴承1‑2为训练集,轴承1‑3为测试集;基于训练集计算均值与标准差,对特征进行Z-score归一化。
  • BP网络训练 :创建单隐藏层前馈网络,隐藏层神经元数15,激活函数默认tansig/purelin,训练算法为Levenberg‑Marquardt (trainlm)。训练时70%样本用于参数更新,15%验证,15%测试,引入早停机制防止过拟合。
  • 预测与评估:用训练好的网络预测测试集RUL,计算RMSE、MAE、R²,并基于置换法评估特征重要性(打乱某一特征后MSE的增加量)。
  • 结果可视化与保存:绘制6个子图,保存预测结果及模型文件。

技术路线

振动信号采集 → 滑窗分割与时序标签赋值 → 手工时频域特征工程 → Z-score归一化 → BP神经网络回归建模 → 预测性能评估与解释 → 预测性维护辅助决策。

该路线属于"特征工程+浅层神经网络"的两阶段范式,依赖领域知识设计特征,模型结构轻量且可解释性较强。

公式原理

  • Z-score标准化 :x′=x−μσx' = \frac{x - \mu}{\sigma}x′=σx−μ,μ\muμ为训练集特征均值,σ\sigmaσ为标准差,使特征缩放至均值为0、标准差为1的分布。
  • BP网络前向传播 :隐藏层输出 h=f(W1x+b1)h = f(W_1 x + b_1)h=f(W1x+b1),输出层 y^=W2h+b2\hat{y} = W_2 h + b_2y^=W2h+b2,fff为双曲正切tansig函数。
  • 损失函数 :均方误差 MSE=1N∑i=1N(yi−y^i)2MSE = \frac{1}{N}\sum_{i=1}^N (y_i - \hat{y}_i)^2MSE=N1∑i=1N(yi−y^i)2,训练通过LM算法(结合梯度下降与高斯‑牛顿法)最小化MSE。
  • 性能指标
    RMSE = 1N∑(yi−y^i)2\sqrt{\frac{1}{N}\sum (y_i - \hat{y}_i)^2}N1∑(yi−y^i)2 ;
    MAE = 1N∑∣yi−y^i∣\frac{1}{N}\sum |y_i - \hat{y}_i|N1∑∣yi−y^i∣;
    R² = 1−∑(yi−y^i)2∑(yi−yˉ)21 - \frac{\sum (y_i - \hat{y}_i)^2}{\sum (y_i - \bar{y})^2}1−∑(yi−yˉ)2∑(yi−y^i)2。
  • 置换重要性 :对第(j)个特征随机打乱,计算预测MSE增量 ΔMSEj=MSEperm−MSEbase\Delta MSE_j = MSE_{\text{perm}} - MSE_{\text{base}}ΔMSEj=MSEperm−MSEbase,增量越大表示该特征越重要。

参数设定

参数名称 设定值 说明
滑窗大小 window_size 3 单次输入包含3个连续采集段(共0.3秒/30秒跨度)
滑窗步长 stride 1 每次滑动1个采集段
隐藏层神经元数 15 平衡拟合能力与过拟合风险
训练函数 trainFcn trainlm Levenberg‑Marquardt算法,收敛快
数据划分比率 70%训练 / 15%验证 / 15%测试 用于训练过程中的内部验证
最大迭代轮数 1000 防止无限循环
性能目标 goal 1e-6 MSE目标值
验证失败最大次数 max_fail 50 早停触发条件
随机种子 rng(42) 固定 保证结果可重复
训练集轴承 1-1, 1-2 --
测试集轴承 1-3 --
特征提取模式 'time-freq' 提取时频域特征
振动通道 水平加速度(第5列) --

运行环境

  • 软件:MATLAB(R2020b及以上版本)。
  • 数据:需下载PHM 2012数据集并放置在代码同级目录。

应用场景

  • 工业预测性维护:实时监测旋转机械(轴承、齿轮箱)的振动信号,评估当前健康状态并预测剩余可用寿命,指导备件更换与维保计划。
  • 故障诊断与健康管理(PHM):在航空航天、轨道交通、风电等关键装备中,通过数据驱动方法实现从定期维护到视情维护的转变。
  • 算法基准测试:本代码可作为PHM领域浅层回归模型的基线,用于与其他深度学习、集成学习方法对比RUL预测精度。

完整源码私信回复轴承剩余寿命预测 | 基于BP神经网络的轴承剩余寿命预测MATLAB实现!

相关推荐
Harvy_没救了1 小时前
【大模型】AI大模型的“三板斧”
人工智能
ClouGence1 小时前
豆包收费之后,我找到了更好用的 AI 工具
前端·人工智能·后端·ai·ai编程·ai写作
dfsj660111 小时前
第八章:注意力机制的诞生
人工智能
老刘说AI1 小时前
Embedding不是魔法:把文字变成数字的底层逻辑
人工智能·python·语言模型·embedding·ai编程
Haibakeji1 小时前
党建信息化平台建设和传统党务管理系统开发有什么区别
人工智能·软件构建·软件需求
chatexcel1 小时前
ChatExcel动态教案功能解析:AI生成课件、动画互动与教学内容结构化
人工智能
龙侠九重天1 小时前
DeepSeek V4 深度解析:从架构创新到开发者生态的全面解读
人工智能·深度学习·架构·大模型·llm·deepseek·deepseek v4
小撒的私房菜1 小时前
Day 3:多工具时代,Agent 自己选——加入计算器和时间工具
人工智能·后端
威联通网络存储1 小时前
QNAP 边缘计算底座:车间 IoT 容器化部署方案
人工智能·python·物联网·边缘计算