LSTM 预测性维护实战:剩余寿命误差只有 12 个周期
LSTM 预测性维护实战剩余寿命误差只有 12 个周期【免费下载链接】Predictive-Maintenance-using-LSTMExample of Multiple Multivariate Time Series Prediction with LSTM Recurrent Neural Networks in Python with Keras.项目地址: https://gitcode.com/gh_mirrors/pr/Predictive-Maintenance-using-LSTMPredictive-Maintenance-using-LSTM 把 LSTM 预测性维护做成了两件小事一个模型判断发动机在未来 30 个周期内会不会坏另一个模型估算它还能撑多少个周期。数据用的是 NASA 涡轮发动机退化数据集仓库里已附带训练好的模型和验证图表跑起来就能出故障预警。先看输入一台发动机的 25 个字段数据来自 NASA C-MAPSS 涡轮风扇发动机数据集分三个文件存放训练集 PM_train.txt收录发动机运行到失效的全程记录用来生成故障标签测试集 PM_test.txt在役发动机数据、不标失效时刻用来做最终评估真值文件 PM_truth.txt提供每台测试发动机的真实剩余周期用来反推 RUL每一行对应一台发动机在一个运行周期的快照设备 ID、周期数、3 个运行设置参数setting1-3和 21 路传感器读数s1-s21。代码先给每行算出 RUL剩余使用寿命——该发动机最大周期减去当前周期再用 MinMaxScaler 把所有数值特征压到 [0,1]这样 21 路传感器不会因量纲不同而互相干扰。数据集样本每个周期的 3 个设置参数与 21 路传感器读数共同构成 LSTM 故障预警的输入序列一个管预警一个管计时双模型的分工项目把预测拆成两个问题各用一个 LSTM 回答二分类预警——这台发动机 30 个周期内会不会坏RUL 小于等于 30 的样本标 1其余标 0输出是 0/1 报警信号适合直接触发维护工单。回归算寿命——它还能再撑几个周期目标就是 RUL 本身输出层改线性激活、损失函数用均方误差并自定义了 R² 指标输出具体数字方便安排备件和停机窗口。两个模型共用同一套骨架两层 LSTM、中间夹 dropout只有最后一层不同。model.add(LSTM(units100, return_sequencesTrue, input_shape(50, nb_features))) model.add(Dropout(0.2)) model.add(LSTM(units50)) model.add(Dropout(0.2)) model.add(Dense(units1, activationsigmoid)) # 回归模型此处改为线性输出样本按 50 个周期的滑动窗口切分最多训练 100 轮、批量 200靠 EarlyStoppingpatience10防止过拟合ModelCheckpoint 把最优版本存成 .h5。5 条命令跑通 LSTM 设备故障预警项目在 Python 3.6 TensorFlow 1.3.0 Keras 2.1.1 pandas 0.20.3 scikit-learn 0.19.0 的老栈上开发先按 README 声明的版本装好环境再依次执行git clone https://gitcode.com/gh_mirrors/pr/Predictive-Maintenance-using-LSTM cd Predictive-Maintenance-using-LSTM pip install tensorflow1.3.0 keras2.1.1 pandas0.20.3 scikit-learn0.19.0 cd src/lstm python binary_classification.py python regression.py第一个脚本负责预警模型的训练与评估第二个负责剩余寿命模型。跑完会在 Output 目录生成 .h5 模型文件、预测对比图和训练曲线无需额外配置。指标怎么读100% 召回和平均偏差 12 个周期二分类模型在测试集上的结果是准确率 0.97、精确率 0.92、召回率 1.0、F1 0.96。翻译成维护场景凡真实会在 30 周期内失效的发动机一台都没有漏报实现零漏报召回率 1.0每发出 100 次报警约 92 次是真故障、8 次是误报精确率 0.92误报只多花一次检查成本故障预警对比模型输出的 0/1 预测蓝与真实故障标签绿逐行吻合验证了 LSTM 预警的可靠性回归模型 MAE 12、R² 0.7965预测的剩余寿命平均只偏 12 个周期且能解释 RUL 约 80% 的波动。对传感器带噪声的物理退化过程这个精度足够支撑提前安排一次停机维护的决策。剩余寿命预测对比蓝线是模型预测的 RUL绿线是真实剩余周期两条线几乎重叠三个容易踩的坑 ⚠️环境踩坑代码使用 Keras 2.x 的旧 API直接放进 TensorFlow 2.x 环境大概率报错。按 README 声明的版本搭建环境是最省心的路线。窗口误读50 个周期是输入窗口不是预测未来 50 个周期。预警时域是 30 个周期回归输出的是全部剩余周期三者别混为一谈。测试集没有失效时刻PM_test.txt 本身不记录发动机何时坏掉代码是靠 PM_truth.txt 反推出真实剩余周期才能打标签。换成自己的数据时务必准备好对应的真值文件。如果你想亲手把数据到故障预警的完整链路跑一遍或者想改造参数、换用自己的传感器数据这套 LSTM 预测性维护实现可以直接上手模型与验证图表开箱即用。完整实现见 src/lstm/跑起来试试 【免费下载链接】Predictive-Maintenance-using-LSTMExample of Multiple Multivariate Time Series Prediction with LSTM Recurrent Neural Networks in Python with Keras.项目地址: https://gitcode.com/gh_mirrors/pr/Predictive-Maintenance-using-LSTM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考