一、时序预测问题
设备故障往往有前兆,如振动加剧、温度升高、电流异常等。LSTM能学习时间序列中的长期依赖关系,提前预警。
二、数据准备
import pandas as pdimport numpy as np# 加载历史数据df = pd.read_csv('sensor_data.csv')# 特征:温度、振动、电流、压力# 标签:是否故障(0/1)# 构建时间窗口sequences = []labels = []window_size = 60 # 60分钟数据for i in range(window_size, len(df)): sequences.append(df[['temp','vib','current','pressure']].iloc[i-window_size:i]) labels.append(df['fault'].iloc[i])
三、LSTM模型构建
import tensorflow as tfmodel = tf.keras.Sequential([ tf.keras.layers.LSTM(64, return_sequences=True, input_shape=(60, 4)), tf.keras.layers.LSTM(32), tf.keras.layers.Dense(16, activation='relu'), tf.keras.layers.Dense(1, activation='sigmoid')])model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
四、模型训练
# 训练模型history = model.fit(X_train, y_train, validation_split=0.2, epochs=50, batch_size=32)# 评估模型loss, acc = model.evaluate(X_test, y_test)print(f'准确率: {acc:.4f}')
五、预测结果
# 预测未来故障概率predictions = model.predict(X_new)# 阈值判断if predictions > 0.7: print('警告:设备可能在24小时内发生故障!')
六、关键特征分析
通过特征重要性分析发现:
- 振动信号对故障预测贡献最大
- 温度升高是轴承故障的前兆
- 电流波动反映电机健康状态
关注【一路福利】,获取LSTM故障预测完整项目!