基于神经网络的变压器故障分类诊断

引言

本文基于BP神经网络对变压器的故障进行分类和诊断。变压器根据五种特征气体对应四种故障类型(高能放电、低能放电、过热和正常)。对已知类型的训练样本进行计算,构造BP神经网络,然后对测试样本进行分类。该方法的正确率达88%。
变压器是电力系统中分布广泛、造价昂贵、结构复杂的电气设备,担负着电能传送和电压转换的重任,其正常运行直接影响了整个电力系统的安全性和稳定性。对油浸式变压器来说,随着运行的持续,油与中间的固体有机材料会逐渐老化和分解,由于不同的故障类型,产生的气体含量和比例也不同,所以可利用对油中气体的分析,来判断故障类型。本文已知50个训练数据和25个测试样本。并通过对训练数据进行BP神经网络的模型建立,来对测试样本进行故障诊断。

数据

部分数据

思路介绍

这是我们模式识别的作业,书上是用BP神经网络做的,然后我就在Python里面找到了MLPRegressor这个库,这个库的意思是多层感知器,我用的是回归的,因为书上思路是将四类进行编码,比如说第一类就是1000,第二类就是0100,第三类是0010,第四类是0001,然后呢五种气体,所以输入值是5,我这里采用了一层神经网络,多了反而效果不好。输出就是四个值的连续的数,找到里面的最大值,他就属于哪一类。

代码

import pandas as pd
from sklearn.neural_network import MLPRegressor
data = pd.read_excel('样本数据.xlsx')
label = pd.read_excel('类别.xlsx')
data_tr = data.iloc[0:50,1:6]
label_tr = label.iloc[0:50,:]
data_te = data.iloc[50:,1:6]
model = MLPRegressor(activation='logistic',solver='lbfgs',
	alpha=0.01,hidden_layer_sizes=(30),random_state=1,max_iter=500,learning_rate_init=0.05)
model.fit(data_tr,label_tr)    # 模型训练
pre = model.predict(data_te)   # 模型预测
k=[0]*25  # 存放类别
cnt = 0   # 计算正确个数
for i in range(25):
    k[i] = list(pre[i]).index(max(pre[i]))+1   
    if k[i] == data.iloc[i+50,7]:
        cnt += 1
acc = cnt/25

结果

真实类别预测类别
22
22
21
21
22
22
11
11
33
33
33
33
33
33
33
33
33
33
33
33
33
44
44
43
44

如果我没打错的话,上面25个测试样本里面应该是错3个,所以正确率为88%。
如果有什么错误欢迎指出,也欢迎讨论。

  • 2
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhanghp947

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值