【异常检测】基于Autoencoder的工业传感器故障诊断

一、异常检测问题背景

工业传感器故障会导致错误的控制决策,造成产品质量问题或设备损坏。Autoencoder能自动学习正常模式,检测异常数据。

二、Autoencoder原理

输入 → Encoder(压缩) → 潜在空间 → Decoder(重建) → 输出训练目标:重建误差最小化正常数据 → 低误差异常数据 → 高误差

三、数据收集

# 正常工况数据采集from opcua import Clientimport pandas as pdclient = Client('opc.tcp://192.168.1.100:4840')client.connect()# 采集温度、压力、振动等正常数据

四、模型构建

import tensorflow as tfclass Autoencoder(tf.keras.Model):    def __init__(self):        super().__init__()        self.encoder = tf.keras.Sequential([            tf.keras.layers.Dense(32, activation='relu'),            tf.keras.layers.Dense(16, activation='relu'),            tf.keras.layers.Dense(8),  # 潜在空间        ])        self.decoder = tf.keras.Sequential([            tf.keras.layers.Dense(16, activation='relu'),            tf.keras.layers.Dense(32, activation='relu'),            tf.keras.layers.Dense(3),        ])    def call(self, x):        encoded = self.encoder(x)        decoded = self.decoder(encoded)        return decodedmodel = Autoencoder()

五、训练与阈值设置

# 只用正常数据训练model.compile(optimizer='adam', loss='mse')model.fit(normal_data, normal_data, epochs=100)# 计算正常数据的重建误差阈值threshold = np.percentile(errors, 99)

六、在线检测

# 实时异常检测def detect_anomaly(new_data):    reconstruction = model.predict(new_data)    error = np.mean((new_data - reconstruction)**2)    return error > threshold, error

关注【一路福利】,获取Autoencoder异常检测完整代码!

上一篇 【机器视觉】Halcon与Python混合编程实战
下一篇 【时序预测】LSTM神经网络在设备故障预警中的应用