通过维护电力变压器学习预防性维护方法(之一)

预防性维护是现代工业技术中一种高效的维护方法。借助历史数据和统计模型,可以快速辨别即将损坏的设备,可以大幅降低运营成本。借助开源R软件包,上手简单,方法易学,本文教你分快速入门。

关键词

统计模型,预防性维护方法,相关性距阵图,直方图,电力变压器,设备爆炸的预防,输电线网,供电线路稳定,现代工业加速器,故障概率,统计分析R软件。

一.

普普通通的电力变压器在输电线网中,将高压电降为低压电后传送到普通用户。但是如果不及时维修,它就会爆炸。这是为什么哪?在变压器内,里面装满了散热油。如果没有油,降压产生的巨大热量会让变压器立刻烧毁。但是在高压电环境下,油料会发生化学反应,生成甲烷,乙烷,乙烯,乙炔,氢气,一氧化碳等气体。当这些气体囤积到一定程度时就会引发爆炸。为了保证供电线路稳定,电力公司要在事故未发生时,及时地对变压器检修。 但是,要在成千上万的变压器中找到需要检修的并不容易,不是所有年龄到了的变压器就需要检修。现在我就给大家介绍一种现代工业维护加速器,预防性维护方法。

要研究就一定要有数据。 我们拿到了美国某大电力公司31,031台变压器的检修记录。这些数据记录了变压器的使用时间,是否发生过故障,故障的种类,以及变压器缸中气体的含量。现代仪器可以只提取一点改变压器内部的气体,快速分析出其中的各种气体含量。我们通过分析,要找出哪种气体,或者哪几种气体和变压器故障高度相关。我们还要估测故障概率是如何随时间,随每种气体的变化,而变化的。这可以帮助我们有选择地维修变压器, 而不是只按年龄维修。因为许多变压器即使年龄很高,但只要内部气体还没有达到一定的量,也没有损坏的风险的。

用开源统计分析R软件的“corrplot”包,我们可以很轻松的画一个直观的二位相关系数距阵图。具体的指令可见在结尾下载的R文件。

在这张相关性距阵图上,深蓝色表明正相关,深红色表明负相关。相关的一对变量分别标在对应的行和列上。我们首相应该注意的是与第二行“变压器是否损坏”相关比较高的变量。这几个分别是甲烷,氢气,乙烷和全部气体,也就是说,甲烷,氢气,乙烷和全部气体与变压器损毁正相关性较强。反之,乙烯,乙炔,一氧和二氧化碳含量与变压器是否损毁没有相关性。另外,在各种气体之间,我们也注意到比较高的正相关性。这个土可以很直观地揭示潜在的导致变压器损毁的气体

#################### Readin Rds data
Transformer <- readRDS("data/Transformer.RDS")
my_data <- Transformer[, c(6, 12:19)]

#################### Calculate and display the correlation in correlogram
par(mfrow=c(1,1))
res <- cor(my_data, use = "complete.obs")
corrplot(res, type = "upper", order = "hclust", tl.col = "black", tl.srt = 45)

下面我们再用直方图分析各种气体含量的分布。这里,我们比较一下各种气体含量在损坏变压器和完好变压器中分布的差异。如果哪种气体差异大,那么就说明这种气体可以帮助找到要出故障的变压器。这里红色的是出了故障的变压器,蓝色的是完好的变压器。我们另外画了拟合的密度线来帮助辨识。

#################### histograms of gas levles of transformers (Hydrogen only)
failure <- unlist(my_data %>% filter(Eventual_Failure == 1) %>% select(Hydrogen))
operational <- unlist(my_data %>% filter(Eventual_Failure == 0) %>% select(Hydrogen))

log_failure <- log(failure+2)
log_operational <- log(operational+2)

hist(log_operational, freq=FALSE, col='skyblue', border=F, xlim=c(0, 15), ylim=c(0, 0.4),
     ylab="密度", breaks=seq(0, 15, length.out=16),
     main = "", xlab="log(氢气)")
hist(log_failure, freq=FALSE, add=T, col=scales::alpha('red', 0.25), border=F, 
     breaks=seq(0, 15, length.out=16))
y1 <- density(log_operational, bw=0.7)
y2 <- density(log_failure, bw=0.7)
lines(y1, col = "blue", lty=2, lwd=2)
lines(y2, col = "red", lty=2, lwd=2)
title(main="氢气 (Hydrogen)")

浏览一下我们会发现,有几种气体差异还是比较大的。比如甲烷,发生故障的变压器甲烷含量多介于7-9之间,而完好的多介于0-5之间;又比如乙烷,损坏的变压器乙烷含量多介于5-9之间,而完好的基本小于5。氢气,乙炔和总气体也略微可以分出区别。而一氧化碳,二氧化碳,乙烯,乙炔好像区别不大。这样电力公司只要测量一下甲烷,乙烷,氢气的含量,就可以大概知道变压器是否需要维修了。比如甲烷,如果含量在7-9之间,就应该维修。如果是乙烷,在5-7之间就应该检修了。

总结

但是这样做比较笼统,不够精确。比如,有的变压器即使甲烷含量比较高但依然可以正常工作,乙烷大于5也没有损坏。相反,不少变压器还没有达到某气体的危险程度就已经坏了。有一个重要因素我们还没有考虑进去,这就是变压器本身的使用年龄。在接下来的视频中,我们将介绍如何通过一个统计模型,同时使用年龄和各种气体含量,来更准确地估测设备的故障概率。