变压器DGA数据集解析:从Excel表格到故障诊断模型实践

发布时间:2026/9/2 19:56:20
变压器DGA数据集解析:从Excel表格到故障诊断模型实践 简介这份资源是一套面向电力系统运维与科研人员的变压器故障诊断分析数据集采用DGA技术通过油中溶解气体含量判别设备内部故障类型。压缩包共2000个文件大小约81.36MB核心内容为Excel格式的数据表并包含部分辅助展示与处理文件方便在常规办公或编程环境中使用。已有396人学习适合需要真实样本进行建模与验证的读者。数据集内含357组测量样本覆盖7种故障类型与正常状态并划分为原始数据和归一化数据两个工作表可直接用于特征分析、机器学习分类或故障判据研究。样本涉及H2、CH4、C2H6、C2H4、C2H2等关键气体均为实际运行测量值有助于理解气体产生机理与故障对应关系。 干变电运维的朋友应该都有过这种经历设备巡检时发现油中气体异常马上翻出历史台账对着几列气体浓度数据反复琢磨想知道设备到底怎么了。我自己刚接触DGA数据时也一样手里拿到一份Excel格式的变压器故障诊断分析用数据集第一反应就是这些列到底代表什么怎么从一堆浓度数字里判断出故障类型数据能不能直接用来训练诊断模型这篇文章就围绕“变压器故障诊断分析用DGA数据集Excel格式”展开从数据集结构、诊断原理、Excel工程细节到建模应用把一份看似普通的表格里面藏着的东西讲透。适合变电运维人员、设备状态检测工程师以及对电力设备故障诊断感兴趣的算法同学参考尤其是那些拿到DGA数据却不知道从哪下手的读者。1. DGA数据集到底包含什么一张表的“骨架”与业务逻辑1.1 为什么DGA能成为变压器故障诊断的“首选信号”DGA全称是Dissolved Gas Analysis即油中溶解气体分析。它的原理不复杂变压器内部的绝缘油和绝缘纸在电、热作用下会慢慢分解产生氢气、甲烷、乙烷、乙烯、乙炔等特征气体。不同性质的故障——比如局部放电、过热、电弧放电——分解出的气体种类和比例明显不同。所以检测油中溶解气体的组成和浓度就像给变压器做了一次“血液检测”不用停机拆设备就能推断出内部可能存在的问题。这也是DGA在电力行业地位极高的原因。传统的预防性试验往往需要停电而DGA是带电检测取样方便、成本低廉、灵敏度高。一台220kV主变定期取一次油样做色谱分析就能持续跟踪设备状态。尤其在大规模状态检修推进的今天DGA几乎是所有变压器状态评价里权重最高的一个手段。1.2 一份标准DGA数据表应该长什么样我拿到过的DGA数据集通常包含以下几类字段字段类型典型字段说明设备信息设备编号、电压等级、型号用于区分不同变压器采样信息采样日期、运行时长用于趋势分析和产气速率计算气体浓度H2、CH4、C2H6、C2H4、C2H2、CO、CO2核心特征气体单位μL/L衍生参数总烃、绝对产气速率、相对产气速率部分数据集会直接算好工况信息油温、负载、油品型号辅助诊断但常被忽略标签故障类型/诊断结论只有标注过的数据集才有用于监督学习这个表结构看着简单但每一列背后都有讲究。H2主要和低能放电、局部放电相关CH4、C2H6、C2H4则是热分解的产物链——温度越低饱和烃占比越高温度越高不饱和烃越多。C2H2是电弧放电的标志性气体一出现就要高度重视。CO和CO2反映的是固体绝缘绝缘纸的老化程度。理解这些对应关系是后面所有诊断方法的基础。1.3 为什么是Excel格式而不是数据库很多人问DGA数据量又不小为什么市面上流通的数据集大多是Excel格式原因很实际Excel上手门槛低运维人员、试验班组的老师傅都会用。数据导出后可以直接做透视表、看趋势图、加条件格式。几十台主变的数据几百到几千条记录Excel完全跑得动没必要上数据库。更关键的是很多变电站的油色谱在线监测系统或试验报告系统导出的默认格式就是Excel。所以用Excel作为数据集的载体是工程现场自然选择的结果。2. 从气体浓度到故障结论核心诊断逻辑与数据集的对应关系2.1 特征气体与故障类型的对应关系表我梳理过一份DGA常用特征气体对应表这块内容虽然基础但每次用都有新体会故障类型主导特征气体次要气体典型场景局部放电H2为主CH4少量C2H2几乎为零绝缘气隙放电、电晕低温过热300℃CH4、C2H6CO、CO2过负荷、油道堵塞中温过热300-700℃CH4、C2H4C2H6铁心多点接地、接触不良高温过热700℃C2H4、CH4显著H2、C2H6分接开关接触不良、导体过热电弧放电C2H2、H2很高CH4、C2H4绕组击穿、闪络注意一个关键点实际故障很少是单一气体“独唱”大多是几种气体按不同比例“合唱”。这是因为油裂解是一个热力学过程不同温度区间对应不同的断键反应路径。温度越高分子断键越彻底产出的不饱和烃就越多。记住这条链条——温度决定了产物分布产物分布反推故障性质这才是DGA诊断的核心逻辑。2.2 IEC三比值、罗杰斯比值与大卫三角形知道了特征气体还不够工业界更常用的是比值法。最经典的是IEC三比值法取三组比值C2H2/C2H4、CH4/H2、C2H4/C2H6按编码规则映射到故障类型。举一个我实际算过的例子某110kV主变油样检测出C2H28μL/L、C2H435μL/L、CH430μL/L、H260μL/L、C2H625μL/L。算出三组比值C2H2/C2H40.23对应编码1CH4/H20.5对应编码0C2H4/C2H61.4对应编码0。查找编码组合“100”对应的是电弧放电。后来停电检查确认是分接开关触头烧蚀与诊断结论一致。罗杰斯比值法和大卫三角形法原理类似只是编码区间和分类粒度略有差异。它们最大的价值是把“多组分浓度”降维成“比值组合”再用编码查表工程上简单高效。但对于比值落在编码盲区、或者多故障并存的情况规则方法容易误判。这也是后面说的“为什么还要上机器学习”的原因。2.3 数据集如何支撑上面的诊断方法从数据集到诊断结论流程其实就三步先读浓度再算比值最后对照编码表输出故障类型。对无监督场景把编码规则写成Excel公式就能在表格里直接标注出每一条记录对应的故障类型。对有监督的训练场景数据集里那个“故障类型”列就是模型要学习的标签。你可以把DGA数据集理解成两份资源一份是带标签的历史样本用于训练诊断模型另一份是未标注的现场记录用于验证模型泛化能力。Excel格式恰好让这两类数据能在一个文件里共存用筛选功能就能快速区分。3. Excel工程实践格式兼容、读取报错与日期拼接的坑3.1 脏数据才是最普遍的“隐形杀手”我拿到手的大多数DGA数据集第一件事不是建模而是清洗。常见的脏数据形态有这么几类缺失值有些样本只有6组分缺CO2或C2H6。零值低于检测限的气体被记录为0或空这其实是“未检出”不是真的没有。单位不统一有的表格用μL/L有的用ppm虽然数值上1ppm≈1μL/L但混着用容易看错量级。异常大值个别浓度高得离谱往往是录入或标定错误。我的处理原则是缺失值先查原始记录查不到就剔除不盲目填充零值统一标注为“检出限”或保留为0但要单独作为一类处理单位统一换算后再进模型异常值先判断是真实故障还是录入错误避免把极端工况误删。这里提醒一句DGA数据里的“注意值”比如H2150μL/L、C2H25μL/L只是提示你需要关注不等于故障。真正要结合产气速率和趋势来看——单次浓度高可能是取样误差持续上升才是真问题。3.2 “外部表不是预期的格式”到底是怎么回事不少用ArcGIS或其他外部工具去连Excel文件的人都遇到过这个报错“连接到数据库失败。常规功能故障外部表不是预期的格式”。我第一次遇到时也懵后来排查下来问题出在文件格式和扩展名不匹配。最常见的情况是文件实际上是CSV或文本格式但被改成了.xlsx后缀或者文件是从某个监测系统导出的内部结构不是标准的Excel表格。外部工具读取时按标准Excel格式解析自然就失败了。解决办法很简单用Excel打开这个文件如果提示“文件格式和扩展名不匹配”说明这就是个“伪Excel”。把文件另存为真正的.xlsx格式再重新连接问题基本就解决了。还有一个坑是xls和xlsx的兼容问题。老版本的xls是二进制格式新环境里的工具链往往只支持xlsx。用pandas读xls文件时需要安装xlrd且版本不能太高读xlsx则需要openpyxl。代码层面最常见的报错就是Engine缺失import pandas as pd # xlsx文件需要openpyxl引擎 df pd.read_excel(dga_dataset.xlsx, sheet_nameSheet1, engineopenpyxl) # 老式xls文件需要xlrd引擎 df pd.read_excel(dga_data_2019.xls, enginexlrd)第一次跑通后建议用df.info()和df.head()检查一下列名和数据类型尤其是气体浓度列是不是被读成了字符串这是在工程里最容易踩的隐性问题。3.3 Excel中用“”连接文本与日期的正确处理姿势清洗数据时经常要生成类似“2024-03-15检修前采样”这样的描述性字段很多人会直接写A2采样结果日期变成了45000多这样一串数字。原因很简单Excel里日期的本质是序列数直接拼接会显示底层数值。正确做法是用TEXT函数把日期格式化成字符串再拼接TEXT(A2,yyyy-mm-dd) 检修前采样如果数据要精确到秒格式代码可以写成这样TEXT(A2,yyyy-mm-dd hh:mm:ss) 采样记录这个小细节在做DGA数据整理时特别实用。因为现场采样经常一天多台设备、多个油样生成带时间戳的记录字段后续做趋势分析、时间序列建模时能省去大量手工排序的工作。4. 把Excel数据集变成能用的诊断模型特征工程与建模落地4.1 为什么有了IEC三比值还要训练模型有人可能会问既然IEC三比值法已经写成标准了为什么还要训练模型这个问题的答案用过三比值编码的人都会心一笑。三比值法有个天然短板编码区间固定覆盖不了所有实际工况。当比值落在编码表之外的组合时就会得到“无对应故障”或“编码000”的尴尬结论。而且实际故障往往是复合型的——先过热后发展成放电——这类叠加工况单一编码表很难准确描述。机器学习模型就不一样。随机森林、GBDT这类模型可以从历史样本里学到特征与故障类型之间的非线性边界处理复杂工况时比规则法更占优势。我自己在几百条DGA样本上跑过随机森林效果稳定关键特征集中在H2、C2H2、C2H4以及三组比值上和领域知识高度吻合。4.2 特征构造千万别只喂原始浓度DGA数据建模最大的误区是直接拿7种气体浓度当特征丢进模型。这样做会带来两个问题一是不同容量、不同电压等级的变压器气体浓度量级差异巨大模型容易学到设备容量特征而不是故障特征二是浓度绝对值受工况影响大比值的稳定性比绝对值更好。我常用的做法是同时构造两类特征原始浓度直接标准化再额外生成三组比值和总烃、产气速率等衍生特征。特征构造代码不复杂import pandas as pd df pd.read_excel(dga_dataset.xlsx, engineopenpyxl) # 构造比值特征 df[ratio_1] df[C2H2] / (df[C2H4] 1e-6) # 避免除零 df[ratio_2] df[CH4] / (df[H2] 1e-6) df[ratio_3] df[C2H4] / (df[C2H6] 1e-6) # 总烃 df[total_hydrocarbon] df[[CH4, C2H6, C2H4, C2H2]].sum(axis1)这里给分母加一个极小值是为了避免H2或C2H6为0时出现除零错误。很多人在这个细节上踩坑模型训练直接报错还要回头排查半天。样本不平衡也是DGA数据的常态。故障样本尤其是放电类故障占比往往不到5%。这种情况下直接用准确率评估没有意义——全部预测为“正常”就能拿到95%准确率。要么用SMOTE做过采样要么在模型评估里以F1分数和混淆矩阵为准。还有一个容易忽略的问题切分训练集和测试集时务必按时间顺序切不要随机切分。变压器状态是时序演进的随机切分会导致同一台设备不同时期的数据同时出现在训练集和测试集里相当于“用未来预测过去”评估结果虚高得厉害。4.3 从模型到现场两级诊断结构更稳模型训练出来不等于能直接上岗。我实际部署时倾向采用“规则预筛模型兜底”的两级结构先用IEC三比值等规则方法做初步筛选把能明确判别的故障直接锁定对于比值盲区、边界模糊的样本再交给模型判断。这样既保留了规则方法的可解释性又用模型补上了规则覆盖不全的空白现场运维人员也更容易接受。另外模型输出的故障类型标签要尽量和数据集原表的标签体系保持一致方便和现场试验报告比对验证。不要自己造一套新分类体系否则历史数据接不上模型上线后做一致性校验时会非常痛苦。5. 常见问题速查与现场实操经验5.1 DGA数据集使用典型问题速查表问题产生原因解决办法读Excel报“外部表不是预期的格式”扩展名与真实格式不符用Excel另存为标准xlsx再读取pandas读xls报错xlrd版本过高或未安装安装xlrd1.2.0兼容老xls日期列读出来是整形数Excel日期本质是序列数读取时parse_dates或TEXT格式化气体浓度出现大量0值低于检测限记为0统一标记为“检出限”单独处理三比值编码结果为000比值落在编码盲区结合产气速率趋势或交模型判断同一设备浓度波动大取样、工况或检测误差看趋势和产气速率不看单点5.2 我踩过的几个坑第一单位不统一导致的误判。我收到过一份数据前面的记录用μL/L后面几行被改成mL/m³两个单位数值一致但量纲不同稍不注意就会在特征工程里代入错误数值。所以拿到数据的第一步永远是先看单位说明最好让数据提供方在表头里写清楚。第二用原始浓度做距离度量。早期做聚类分析时直接把7种气体浓度标准化后算欧氏距离结果聚类结果完全被C2H2这种浓度波动大的气体主导。后来改成用比值特征和总烃组合结果才合理。第三轻信“标签”。有些数据集里的故障类型是运行人员根据经验填的没有经过停电检修验证。这类标签本身就是有噪的。训练集里这种情况多了模型学到的不是真实故障规律而是标签噪声。所以能拿到经过实验室色谱分析、并经检修验证的诊断结论做标签才比较可靠。第四忽略产气速率。只看单次浓度容易误判。同一个气体浓度一个月升上去的和一年升上去的严重程度完全不同。数据表里如果有历史日期一定要算一下绝对产气速率——国标推荐的一个简单算法是两次采样浓度差除以时间间隔单位用mL/d或μL/L·d。5.3 数据交接的一个习惯建议最后分享一个个人经验。DGA数据集在运维、试验、检修、算法几个角色之间流转时最怕的就是“裸数据”。我强烈建议在Excel文件里额外加一个“数据字典”工作表写清楚每个字段的含义、单位、取值说明和标签含义。这样即使半年后换人接手也能快速读懂数据。这个习惯帮我在多个项目里省掉了大量的沟通成本比任何技术方案都实在。在我自己看来Excel格式的DGA数据集就像是故障诊断现场和算法模型之间的一座桥。它的格式并不“前沿”却恰恰是现场工程师每天都在用、都看得懂的东西。用好这份数据比盲目追求复杂的模型更实用。本文还有配套的精品资源点击获取