


旋转机械的健康管理是工业运维的核心命题。本文以IEEE PHM 2012轴承全寿命数据集为基础,详细介绍一套完整的LSTM-Attention剩余寿命预测方案,涵盖数据预处理、多域特征工程、网络架构设计与模型评估的全流程MATLAB实现。
1. 研究背景与问题定义
在旋转机械系统中,滚动轴承是最常见也最容易发生故障的零部件之一。据统计,约40%~50%的旋转机械故障与轴承退化相关。传统的计划性维护(定期更换)和事后维修策略存在明显的经济性缺陷------要么过早更换造成浪费,要么故障停机带来损失。
剩余使用寿命(Remaining Useful Life, RUL)预测正是解决这一痛点的关键技术。它的核心思路是:利用传感器采集设备运行期间的振动、温度等监测信号,通过对信号特征的建模与分析,提前预判轴承距离失效还有多长时间,从而为维修决策提供量化依据。
早期RUL预测依赖物理模型和经验公式,但实际工况复杂多变,物理模型的泛化能力有限。近年来,深度学习方法在时间序列预测领域展现出了显著优势。本文选择LSTM + Self-Attention的混合架构,理由很直接:
- LSTM擅长捕获时间序列中的长程依赖关系,适合处理轴承从健康到失效的渐进退化过程;
- Self-Attention机制能够让模型在众多的时序特征中自适应地关注对退化预测最关键的部分,抑制噪声干扰。
这套方案在公开数据集上取得了R² = 0.9377、RMSE = 0.0720的预测精度,具备良好的工程参考价值。
2. 数据集简介
本文使用IEEE PHM 2012 Data Challenge轴承全寿命加速退化数据集,由法国FEMTO-ST研究所提供。实验平台在恒定载荷和转速条件下对轴承进行加速寿命试验,同时采集振动和温度信号,直至轴承完全失效。
关键参数如下:
| 参数项 | 取值 |
|---|---|
| 采样频率 | 25.6 kHz |
| 单次采样时长 | 0.1 s(2560个采样点) |
| 采样间隔 | 10 s |
| 信号通道 | 水平振动 + 垂直振动 |
| 实验轴承数量 | 7组(Bearing1_1 ~ Bearing1_7) |
本文选用**水平振动信号(第5列通道)**作为原始输入,训练集为Bearing1_1和Bearing1_2的全寿命数据,测试集为Bearing1_3的全寿命数据。该数据集可以从GitHub直接下载。
3. 技术路线总览
整套方案的技术路线分为五个阶段:
原始振动信号 → 滑动窗口构造 → 多域特征提取 → LSTM-Attention建模 → RUL预测与评估
下面是每个阶段的具体设计思路和实现细节。
4. 数据预处理:为什么要做滑动窗口
原始数据中,每10秒采集一次、每次仅0.1秒(2560点)。如果直接用这0.1秒的数据作为单条训练样本,模型所能"看到"的时间尺度非常有限------它能捕捉的仅仅是毫秒级的局部波动,却无法感知轴承数小时甚至数天范围内的整体退化趋势。
滑动窗口(Sliding Window)便是为解决这一矛盾而引入的。
原理与参数设定:
设窗口大小为 l l l,滑动步长为 s s s。对于一段包含 N N N 条记录的时间序列,可构造的窗口数量为:
n windows = ⌊ N − l s ⌋ + 1 n_{\text{windows}} = \left\lfloor \frac{N - l}{s} \right\rfloor + 1 nwindows=⌊sN−l⌋+1
每个窗口将相邻的 l l l 条记录拼接为一个样本,样本维度变为 l × n features l \times n_{\text{features}} l×nfeatures。
本文设定:
- 窗口大小 l = 3 l = 3 l=3(即聚合 30 秒内的 0.3 秒振动数据)
- 滑动步长 s = 1 s = 1 s=1
RUL标签生成规则:
标签从1线性递减到0(归一化表示),代表从"全新"到"完全失效"的退化过程。对于第 i i i 个窗口,其标签定义为:
y i = 1 − ( i − 1 ) × s + l − 1 N − 1 y_i = 1 - \frac{(i-1) \times s + l - 1}{N - 1} yi=1−N−1(i−1)×s+l−1
这种线性退化假设虽然简单,但在加速寿命试验的恒工况条件下是合理的近似。
5. 特征工程:26维多域特征提取
直接将原始振动信号输入网络会面临两个问题:一是维度高(2560点/条),二是原始幅值受工况波动影响大。因此需要先做特征提取,将原始信号压缩为具有物理意义的统计量。
本文从时域和频域两个维度,共提取了 14 + 12 = 26 个特征。
5.1 时域特征(14个)
时域特征直接对信号的统计分布进行描述,反映振动幅值的大小、离散程度和冲击特性。
| 序号 | 特征名称 | 数学表达式 | 物理含义 |
|---|---|---|---|
| 1 | 均值 | μ = 1 N ∑ i = 1 N x i \mu = \frac{1}{N}\sum_{i=1}^N x_i μ=N1∑i=1Nxi | 信号中心趋势 |
| 2 | 标准差 | σ = 1 N − 1 ∑ i = 1 N ( x i − μ ) 2 \sigma = \sqrt{\frac{1}{N-1}\sum_{i=1}^N (x_i-\mu)^2} σ=N−11∑i=1N(xi−μ)2 | 信号波动程度 |
| 3 | 均方根(RMS) | x r m s = 1 N ∑ i = 1 N x i 2 x_{rms} = \sqrt{\frac{1}{N}\sum_{i=1}^N x_i^2} xrms=N1∑i=1Nxi2 | 振动能量水平 |
| 4 | 方差 | σ 2 = 1 N − 1 ∑ i = 1 N ( x i − μ ) 2 \sigma^2 = \frac{1}{N-1}\sum_{i=1}^N (x_i-\mu)^2 σ2=N−11∑i=1N(xi−μ)2 | 信号离散度 |
| 5 | 峰值 | $x_{peak} = \max( | x_i |
| 6 | 峰峰值 | x p 2 p = max ( x ) − min ( x ) x_{p2p} = \max(x) - \min(x) xp2p=max(x)−min(x) | 信号动态范围 |
| 7 | 偏度 | S = E ( x − μ ) 3 σ 3 S = \frac{E(x-\\mu)\^3}{\sigma^3} S=σ3E(x−μ)3 | 分布对称性 |
| 8 | 峭度 | K = E ( x − μ ) 4 σ 4 K = \frac{E(x-\\mu)\^4}{\sigma^4} K=σ4E(x−μ)4 | 冲击特征敏感指标 |
| 9 | 波形因子 | $SF = \frac{x_{rms}}{\frac{1}{N}\sum | x_i |
| 10 | 峰值因子 | C F = x p e a k x r m s CF = \frac{x_{peak}}{x_{rms}} CF=xrmsxpeak | 冲击程度 |
| 11 | 脉冲因子 | $IF = \frac{x_{peak}}{\frac{1}{N}\sum | x_i |
| 12 | 裕度因子 | $CLF = \frac{x_{peak}}{(\frac{1}{N}\sum\sqrt{ | x_i |
| 13 | 能量 | E = ∑ i = 1 N x i 2 E = \sum_{i=1}^N x_i^2 E=∑i=1Nxi2 | 信号总能量 |
| 14 | 绝对平均值 | $ | \bar{x} |
其中,峭度(Kurtosis) 对轴承早期故障的冲击信号尤为敏感,是RUL预测中最经典的时域指标之一。
5.2 频域特征(12个)
频域特征通过对信号做FFT变换后从频谱中提取,能够反映振动信号在不同频段的能量分布和谱结构变化。
设经过FFT得到的单边幅值谱为 A ( f ) A(f) A(f),归一化后为 p ( f ) = A ( f ) / ∑ A ( f ) p(f) = A(f) / \sum A(f) p(f)=A(f)/∑A(f),频率轴为 f f f:
| 特征 | 公式 |
|---|---|
| 频谱能量 | E s = ∑ A ( f ) 2 / N E_s = \sum A(f)^2 / N Es=∑A(f)2/N |
| 频率中心(重心频率) | f c = ∑ f ⋅ p ( f ) f_c = \sum f \cdot p(f) fc=∑f⋅p(f) |
| 均方频率 | M S F = ∑ f 2 ⋅ p ( f ) MSF = \sum f^2 \cdot p(f) MSF=∑f2⋅p(f) |
| 频率方差 | V f = ∑ ( f − f c ) 2 ⋅ p ( f ) V_f = \sum (f - f_c)^2 \cdot p(f) Vf=∑(f−fc)2⋅p(f) |
| 频率标准差 | σ f = V f \sigma_f = \sqrt{V_f} σf=Vf |
| 频谱峭度 | S K = ∑ ( f − f c ) 4 ⋅ p ( f ) σ f 4 SK = \frac{\sum (f-f_c)^4 \cdot p(f)}{\sigma_f^4} SK=σf4∑(f−fc)4⋅p(f) |
| 频谱偏度 | S S = ∑ ( f − f c ) 3 ⋅ p ( f ) σ f 3 SS = \frac{\sum (f-f_c)^3 \cdot p(f)}{\sigma_f^3} SS=σf3∑(f−fc)3⋅p(f) |
| 频谱平坦度 | S F = ∏ A ( f ) N 1 N ∑ A ( f ) SF = \frac{\sqrtN{\prod A(f)}}{\frac{1}{N}\sum A(f)} SF=N1∑A(f)N∏A(f) |
随着轴承退化加剧,振动频谱会呈现频率中心向高频偏移、频谱能量增大等趋势------这些频域特征恰好为模型提供了捕捉退化规律的关键信息。
6. 数据标准化
不同特征的量纲差异巨大(如能量可达 10 6 10^6 106 量级,偏度仅为个位数),直接用原始特征训练会导致梯度更新不稳定。本文采用Z-score标准化:
x ′ = x − μ train σ train x' = \frac{x - \mu_{\text{train}}}{\sigma_{\text{train}}} x′=σtrainx−μtrain
其中 μ train \mu_{\text{train}} μtrain 和 σ train \sigma_{\text{train}} σtrain 仅从训练集计算得到,测试集沿用同样的参数进行标准化,避免数据泄露。
7. LSTM-Attention网络架构
7.1 为什么选择LSTM
轴承退化是一个典型的长时序依赖问题:当前的振动状态不仅与最近几分钟的数据有关,还受到几小时甚至几天前退化阶段的影响。普通的RNN存在梯度消失/爆炸问题,难以建模这种超长距离依赖。
LSTM(长短期记忆网络)通过引入门控机制解决了这一难题。其核心计算包括三个门:
- 遗忘门: f t = σ ( W f ⋅ h t − 1 , x t + b f ) f_t = \sigma(W_f \cdot h_{t-1}, x_t + b_f) ft=σ(Wf⋅ht−1,xt+bf)
- 输入门: i t = σ ( W i ⋅ h t − 1 , x t + b i ) i_t = \sigma(W_i \cdot h_{t-1}, x_t + b_i) it=σ(Wi⋅ht−1,xt+bi)
- 输出门: o t = σ ( W o ⋅ h t − 1 , x t + b o ) o_t = \sigma(W_o \cdot h_{t-1}, x_t + b_o) ot=σ(Wo⋅ht−1,xt+bo)
记忆单元更新:
C ~ t = tanh ( W C ⋅ h t − 1 , x t + b C ) \tilde{C}_t = \tanh(W_C \cdot h_{t-1}, x_t + b_C) C~t=tanh(WC⋅ht−1,xt+bC)
C t = f t ⊙ C t − 1 + i t ⊙ C ~ t C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t Ct=ft⊙Ct−1+it⊙C~t
h t = o t ⊙ tanh ( C t ) h_t = o_t \odot \tanh(C_t) ht=ot⊙tanh(Ct)
遗忘门决定"丢弃"多少旧信息,输入门决定"吸收"多少新信息,这种精巧的设计使LSTM能够自然地处理从几秒到几小时跨度的退化模式。
7.2 Self-Attention的引入
LSTM虽然擅长序列建模,但它对所有时间步的信息是"一视同仁"地处理的------隐藏状态 h t h_t ht 是对历史信息的压缩,压缩过程中难免丢失细节。
Self-Attention(自注意力)机制则赋予模型一种"自主筛选"的能力:在26维特征中,有些特征(如峭度、RMS)对退化更敏感,有些(如均值)可能受工况波动影响较大。Self-Attention通过对特征维度施加注意力权重,自动放大关键特征的贡献、抑制无关特征的干扰。
核心计算公式:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V Attention(Q,K,V)=softmax(dk QKT)V
其中 Q Q Q(Query)、 K K K(Key)、 V V V(Value)均从同一输入特征向量通过不同的线性变换得到。除以 d k \sqrt{d_k} dk 是为了防止内积过大导致softmax的梯度饱和。
7.3 本文的具体网络结构
层类型 参数 说明
────────────────────────────────────────────────────────
sequenceInput 26维 接收26维特征向量
lstmLayer 100个隐藏单元 输出最后时刻状态
dropoutLayer 20% dropout 防止过拟合
fullyConnectedLayer 50神经元 + ReLU 第一层全连接
dropoutLayer 20% dropout 第二次正则化
fullyConnectedLayer 25神经元 + ReLU 第二层全连接
selfAttentionLayer 4头,128键通道 注意力加权
fullyConnectedLayer 1神经元(输出层) 预测RUL值
regressionLayer --- 回归损失
关键设计考量:
-
两层全连接放在Attention之前: 先将LSTM输出的100维隐藏状态压缩到25维,再送入Attention层。这样做的好处是降低了Attention的计算开销,同时通过非线性变换为Attention提供了更紧凑的特征表示。
-
Dropout位置的选择: 在lstmLayer之后和第一层fc之后分别设置Dropout(0.2),形成"双重正则化",有效抑制了26维特征在训练样本量有限情况下的过拟合倾向。
-
LSTM输出模式为"last": 仅取最后一个时间步的隐藏状态,而非整个序列。因为我们关心的是在观察到所有历史窗口信息后,对当前退化状态的整体判断,而非逐时间步的预测。
8. 训练配置与参数设定
| 参数 | 取值 | 说明 |
|---|---|---|
| 优化器 | Adam | 自适应学习率,收敛稳定 |
| 最大训练轮数 | 150 | 充分迭代 |
| Mini-Batch大小 | 64 | 兼顾训练速度与梯度稳定性 |
| 初始学习率 | 0.005 | 适中起始值 |
| 学习率衰减策略 | Piecewise | 每50轮 × 0.5 |
| L2正则化系数 | 0.001 | 权值衰减,抑制过拟合 |
| 梯度裁剪阈值 | 1.0 | 防止梯度爆炸 |
| 验证集比例 | 20% | 随机划分 |
| 模型选择策略 | best-validation-loss | 取验证集最优模型 |
学习率调度说明:采用分段常数衰减(Piecewise),即每50个epoch将学习率乘以0.5。实际学习率变化曲线为:
- Epoch 1~50:lr = 0.005
- Epoch 51~100:lr = 0.0025
- Epoch 101~150:lr = 0.00125
这种策略在训练初期用较大学习率快速收敛,后期逐步降低学习率以精细调整,是实践中非常有效的方法。
9. 运行环境
| 环境项 | 版本/配置 |
|---|---|
| 操作系统 | Windows 10/11(64位) |
| MATLAB版本 | R2022a及以上(需Deep Learning Toolbox) |
| 关键工具箱 | Deep Learning Toolbox, Statistics and Machine Learning Toolbox, Signal Processing Toolbox |
| 硬件需求 | 建议8GB RAM以上,无GPU亦可运行 |
| 数据集 | IEEE PHM 2012 Data Challenge |
注意: 本代码在CPU环境下即可运行,实测训练耗时约128秒。若配置NVIDIA GPU并安装Parallel Computing Toolbox,训练时间可缩短至20~30秒。
10. 实验结果与分析
10.1 核心指标
在Bearing1_3全寿命测试集上的预测结果:
| 评价指标 | 数值 | 含义 |
|---|---|---|
| RMSE | 0.0720 | 均方根误差,衡量预测值与真实值的偏差 |
| MAE | 0.0603 | 平均绝对误差,对异常值不敏感 |
| R² | 0.9377 | 决定系数(越接近1越好) |
R² = 0.9377 说明模型解释了约93.8%的RUL退化方差,预测性能相当出色。考虑到轴承退化过程中存在一定随机性(尤其是早期健康阶段振动信号无明显变化趋势),这个结果是令人满意的。
10.2 预测曲线解读
从预测对比图可以看出:
- 早期阶段(RUL ≈ 1.0 → 0.8):轴承处于健康状态,振动特征变化缓慢,预测值围绕真实值小幅波动。
- 中期阶段(RUL ≈ 0.8 → 0.3):退化加速,特征变化明显,模型追踪准确,预测值与真实值高度吻合。
- 末期阶段(RUL ≈ 0.3 → 0):接近失效时振动剧烈,预测出现一定偏差(这是合理的,因为末期信号的不确定性本身就很高)。
10.3 残差分析
残差(真实值减预测值)在零线附近对称分布,误差直方图近似正态分布,说明模型没有系统性的预测偏差(不存在始终高估或低估的趋势)。±2σ区间涵盖了绝大多数样本点,进一步验证了模型的稳定性。
11. 工程应用场景
这套方案可直接应用于以下实际场景:
-
风电机组主轴承监测: 风场分布在偏远地区,人工巡检成本极高。通过在线振动监测+RUL预测,可以在轴承失效前2~4周发出预警,合理安排备件和维修窗口。
-
数控机床主轴健康管理: 高端加工中心的主轴轴承一旦失效,不仅维修费用高昂,还可能造成在制品报废。RUL预测为"视情维护"提供了决策依据。
-
轨道交通轴箱轴承监测: 高铁和地铁的轴箱轴承安全等级极高,状态监测结合RUL预测可以将"故障修"升级为"状态修"。
落地注意事项:
- 不同型号、不同工况的轴承,其退化模式和特征分布不同,需要针对具体对象重新训练或微调模型。
- 实际部署时建议加入在线自适应更新机制------用新采集的数据持续微调模型,使预测精度随时间推移保持稳定。
- 振动传感器的安装位置和方向会影响特征值,工程化时需要标准化安装规范。
12. 代码结构说明
本项目的MATLAB代码组织如下,读者可按顺序阅读和运行:
main1_Data.m → 数据加载、滑动窗口、特征提取(运行后生成feature_reconstructedData.mat)
main2_LSTM_Attention.m → LSTM-Attention模型训练、预测、可视化、结果保存
loadBearingData.m → 轴承CSV数据读取函数
create_sliding_window_data.m → 滑动窗口构造函数
feature_extraction.m → 时域/频域特征提取函数
evaluateModel.m → RMSE/MAE/R²评估函数
plotBearingData.m → 原始信号时域绘图函数
运行顺序: 先执行 main1_Data.m 完成数据预处理和特征提取(仅需运行一次),再执行 main2_LSTM_Attention.m 进行模型训练和预测。
13. 总结与展望
本文详细介绍了一套基于LSTM-Attention的轴承剩余寿命预测完整方案,在IEEE PHM 2012数据集上取得了R²=0.9377的预测精度。核心贡献点包括:
- 滑动窗口 + 双域特征工程:将原始振动信号转化为26维具有物理可解释性的统计特征,显著降低了模型的学习难度。
- LSTM + Self-Attention混合架构:兼顾时序建模和特征自适应加权,在中小规模数据集上表现优异。
- 完整的工程化代码:从数据读取到结果可视化的全流程MATLAB实现,可直接复现和修改。
未来改进方向:
- 多传感器融合: 当前仅使用水平振动信号,若同时融合垂直振动和温度信号,可以进一步提升预测精度和鲁棒性。
- 不确定性量化: 在预测RUL的同时给出置信区间,对于安全攸关场景尤为重要(当前代码已包含基于残差方差的置信区间可视化,但更适合采用贝叶斯深度学习等方法做更严格的不确定性建模)。
- 迁移学习: 利用相似型号轴承的先验知识,减少目标轴承所需的训练数据量,加速模型部署。

完整源码私信回复基于LSTM-Attention的轴承剩余寿命预测:从振动信号到RUL的端到端MATLAB实现
推荐阅读:
- IEEE PHM 2012 Data Challenge 官方论文:Nectoux et al., "PRONOSTIA: An experimental platform for bearings accelerated degradation tests."
- Hochreiter & Schmidhuber (1997), "Long Short-Term Memory" --- LSTM开山之作
- Vaswani et al. (2017), "Attention Is All You Need" --- Attention机制奠基论文