轴承剩余寿命预测 | 基于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实现!

相关推荐
小道士写程序4 小时前
自然语言处理NLP - 第3章 从字符到Token:机器的输入长什么样
人工智能·机器学习
Mr数据杨4 小时前
钻石价格预测实战 从 Kaggle 回归赛题看结构化数据建模落地
人工智能·数据分析·kaggle竞赛
Mr数据杨4 小时前
从 Kaggle 到实战的多标签文本分类案例拆解
人工智能·数据分析·kaggle竞赛
福昕办公4 小时前
智能体手机落地,Agent 正在从“云端调用“走向“长进软件本体“
人工智能·智能手机
DolphinScheduler社区4 小时前
把 Apache DolphinScheduler 变成 Agent 的“手和脚”:从调度平台到自然语言数据入口
人工智能·开源·apache·agent·技术分享·海豚调度·大数据工作流调度
weixin_446260855 小时前
基于熵的选择性智能体引导:从非完美视觉语言模型教师学习自主策略
人工智能·学习·语言模型
夜雪一千5 小时前
如何写一个数据分析 Skill
人工智能·数据挖掘·数据分析
桃西西呀5 小时前
RAG 接个向量库就完事?从切块到重排的 7 步流水线,我替你踩了 8 个深坑
人工智能·llm·ai编程
YOLO数据集集合5 小时前
无人机屋顶与地物分割数据集 | 屋顶分割 航拍识别 城市规划 材质分类 实例分割9036期
人工智能·分类·无人机·材质·中国城市建筑·建筑识别
zhangfeng11335 小时前
CodeBuddy‑CLI 默认授权(权限模式)命令行参数
人工智能·ai编程