-
PHM轴承数据集背景
IEEE PHM 2012轴承数据集是由法国FEMTO-ST研究所提供的经典轴承故障预测与健康管理数据集。该数据集在恒定转速(1800rpm)和负载(4000N)条件下,记录了多个轴承从正常运行到完全失效的全寿命周期振动数据,采样频率为25.6kHz,每10秒采集一次数据。
-
代码主要功能
该代码实现了一个完整的轴承剩余寿命(RUL)预测系统:
• 数据预处理:读取多组轴承振动数据并进行重组
• 特征提取:通过FFT将时域信号转换为频域特征
• 深度学习建模:构建并行Transformer-BiLSTM混合网络
• 寿命预测:预测轴承健康指标并进行剩余寿命估计
• 结果可视化:展示预测结果和特征分布
- 算法步骤
步骤1:数据读取
- 分别读取Bearing1_1、1_2(训练集)和Bearing1_3、1_4(测试集)
- 提取水平振动信号(第5列)
- 每2560个点划分为一个样本
- 保存处理后的数据
步骤2:FFT特征提取 - 对每个样本进行快速傅里叶变换
- 计算频域幅值谱
- 提取频域特征
步骤3:并行Transformer-BiLSTM建模 - 数据归一化和序列化处理
- 构建混合网络架构
- 模型训练与预测
- 结果后处理与可视化
- 技术路线
振动信号 → 数据分段 → FFT频域变换 → 并行Transformer-BiLSTM网络 → 健康指标预测 → 多项式拟合 → 剩余寿命估计

- 运行环境
• 软件平台: MATLAB2024b
• 必要工具箱:
• Deep Learning Toolbox
• Signal Processing Toolbox
• Statistics and Machine Learning Toolbox

matlab
部分源码
rtcContent { padding: 30px; } .lineNode {font-size: 10pt; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; }
tempNet = [
flattenLayer("Name","flatten")
reluLayer("Name","relu")
fullyConnectedLayer(30,"Name","fc")
indexing1dLayer("last","Name","indexing_1")];
net = addLayers(net,tempNet);
tempNet = positionEmbeddingLayer(numChannels,maxPosition,"Name","positionembed");
net = addLayers(net,tempNet);
tempNet = [
additionLayer(2,"Name","addition")
selfAttentionLayer(numHeads,numKeyChannels,"Name","selfattention")
selfAttentionLayer(numHeads,numKeyChannels,"Name","selfattention_1")
indexing1dLayer("last","Name","indexing")];
net = addLayers(net,tempNet);
tempNet = [
concatenationLayer(1,2,"Name","concat")
reluLayer("Name","relu_1")
fullyConnectedLayer(1,"Name","fc_1")];
net = addLayers(net,tempNet);