您正在使用IE低版浏览器,为了您的FUTUREAI账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
FUTUREAI 业界
发私信给FUTUREAI
发送

猜测性保护:利用卷积神经收集(CNN)检测传感器毛病

本文作者:FUTUREAI 2019-06-10 14:57
导语:猜测性保护:利用卷积神经收集(CNN)检测传感器毛病 正在本文中,我们将看一个分类成绩。我们将利用Keras创立一个卷积神经收集(CNN)模子,并测验考试对成果停止曲不雅的注释。

猜测性保护:利用卷积神经收集(CNN)检测传感器毛病

正在本文中,我们将看一个分类成绩。我们将利用Keras创立一个卷积神经收集(CNN)模子,并测验考试对成果停止曲不雅的注释。

做者:没有靠谱的猫滥觞:昔日头条|2019-06-03 13:10

预测性维护:使用卷积神经网络(CNN)检测传感器故障

正在机械进修中,跟着工夫的推移,猜测维建的话题变得愈来愈盛行。

正在本文中,我们将看一个分类成绩。我们将利用Keras创立一个卷积神经收集(CNN)模子,并测验考试对成果停止曲不雅的注释。

数据散

我决议从evergreen UCI repository(液压体系的形态监测)中获得机械进修数据散(https://archive.ics.uci.edu/ml/datasets/Condition+monitoring+of+hydraulic+systems#)。

该实验台由一次事情回路战两级热却过滤回路构成,经由过程油箱毗连。体系轮回反复恒定背载轮回(连续工夫60秒)并丈量历程值,比方压力,体积流量战温度,同时定量天改动四个液压元件(热却器、阀门、泵战蓄能器)的形态。

我们能够设想有一个液压管讲体系,该体系周期性天领受到因为管讲内某种液体的改变而发生的脉冲。此征象连续60秒,采取 分歧 Hz频次的传感器(传感器物理量单元采样率,PS1 Pressure bar, PS2 Pressure bar, PS3 Pressure bar, PS4 Pressure bar, PS5 Pressure bar, PS6 Pressure bar, EPS1机电功率, FS1体积流量, FS2体积流量, TS1温度, TS2温度, TS3温度, TS4温度, VS1振动, VS1振动、CE热却服从、CP热却功率、SE服从系数)停止丈量。

我们的烦闷 沉迷的是猜测构成管讲的四个液压元件的情况。那些烦闷 沉迷标前提值以整数值的情势正文(易于编码),并报告我们每一个周期特定组件能否靠近失利。

读与数据

每一个传感器丈量的值正在特定的txt文件中可用,此中每止以工夫序列的情势占用一个周期。

我决议思索去自温度传感器(TS1、TS2、TS3、TS4)的数据,该传感器的丈量频次为1 Hz(每个cicle停止60次不雅察)。

label = pd.read_csv('profile.txt', sep=' ', header=None) data = ['TS1.txt','TS2.txt','TS3.txt','TS4.txt'] df = pd.DataFrame() #read and concat data for txt in data: read_df = pd.read_csv(txt, sep=' ', header=None) df = df.append(read_df) #scale data def scale(df): return (df - df.mean(axis=0))/df.std(axis=0) df = df.apply(scale) 

预测性维护:使用卷积神经网络(CNN)检测传感器故障

关于第一个周期,我们从温度传感器获得那些工夫序列:

预测性维护:使用卷积神经网络(CNN)检测传感器故障

Temperature Series for cicle1 from TS1 TS2 TS3 TS4

机械进修模子

为了捕获 风趣的特性战没有较着的相干性,我们决议采取 一维卷积神经收集(CNN)。那种机械进修模子十分合适对传感器的工夫序列停止阐发,并强迫正在短的牢固少度段中重塑数据。

我挑选了Keras网站上形貌的卷积神经收集(CNN),并更新了参数。该机械进修模子的成立是为了对造热元件的形态停止分类,仅对给出温度工夫序列的数组情势(t_period x n_sensor for each single cycle)做为输进。

n_sensors, t_periods = 4, 60 model = Sequential() model.add(Conv1D(100, 6, activation='relu', input_shape=(t_periods, n_sensors))) model.add(Conv1D(100, 6, activation='relu')) model.add(MaxPooling1D(3)) model.add(Conv1D(160, 6, activation='relu')) model.add(Conv1D(160, 6, activation='relu')) model.add(GlobalAveragePooling1D()) model.add(Dropout(0.5)) model.add(Dense(3, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) BATCH_SIZE, EPOCHS = 16, 10 history = model.fit(X_train, y_train, batch_size=BATCH_SIZE, epochs=EPOCHS, validation_split=0.2, verbose=1) 

预测性维护:使用卷积神经网络(CNN)检测传感器故障

正在那种状况下只要10个epochs,我们可以获得惊人的功效 !

预测性维护:使用卷积神经网络(CNN)检测传感器故障

对测试数据停止猜测,机械进修模子到达0.9909的精确度

预测性维护:使用卷积神经网络(CNN)检测传感器故障

果为经由过程那种方法,我们可以检测并避免体系中能够呈现的毛病。

可视化成果

假如我们念要对体系形态有一个整体的理解,那末检察图形暗示能够会很有效。为了到达那一烦闷 沉迷标,我们从头操纵我们正在上里构建的卷积神经收集(CNN)去造做一个解码器,并从每一个周期的工夫序列中提与特性。利用keras,那能够正在一止Python代码中真现:

emb_model = Model(inputs=model.input, outputs=model.get_layer('global_average_pooling1d_1').output) 

新模子是一个解码器,它领受取分类使命中利用的NN格局不异的输进数据(t_period x n_sensor for each single cycle),并以嵌进情势返回 猜测 ,嵌进情势去自具有相对维数的GlobalAveragePooling1D层(每个轮回有160个嵌进变量)。

利用我们的编码器正在测试数据上计较猜测,采取 手艺去加小尺寸(如PCA或T-SNE)并画造成果,我们能够看到:

tsne = TSNE(n_components=2, random_state=42, n_iter=300, perplexity=5) T = tsne.fit_transform(test_cycle_emb) fig, ax = plt.subplots(figsize=(16,9)) colors = {0:'red', 1:'blue', 2:'yellow'} ax.scatter(T.T[0], T.T[1], c=[colors[i] for i in y_test]) plt.show() 

预测性维护:使用卷积神经网络(CNN)检测传感器故障


Fedora Core 5 Linux体系装置取办理 以Linux为代表的自在硬件及其不变性,逐步正在齐天下崭露锋芒且备受正视。因为能够撑持多种收集情况,因而正在采取 Linux体系之前,必需 熟习各类...

声明:景智AI网尊重行业规范,任何转载稿件皆标注作者和来源;景智AI网的原创文章,请转载时务必注明文章作者和"来源:景智AI网", 不尊重原创的行为将受到景智AI网的追责;转载稿件或作者投稿可能会经编辑修改或者补充,有异议可投诉至:mailto:813501038@qq.com

分享:
相关文章
最新文章