电力领域的COMTRADE格式解析

肖卓2022年9月30日
大约 6 分钟

COMTRADE格式解析

COMTRADE格式介绍

COMTRADE,全称为COMmon format for Transient Data Exchange,是一种用于交换电力系统传递的数字保护、控制和测量设备数据的标准格式。COMTRADE格式由IEEE Std C37.111-1999规范定义,它是一种通用的格式,许多厂家的设备都支持该格式。 COMTRADE格式的文件包括一个头文件和一个数据文件。头文件包含了数据文件的信息,例如每个采样的采样率、通道数、数据类型等等。数据文件包含了每个通道的采样数据,通道可以是电压、电流、信号、故障波形等等。 COMTRADE格式是一种非常灵活的格式,可以适应各种不同的应用场景。它可以同时处理多个通道的数据,并且支持高速采样和低速采样。同时,COMTRADE格式还支持数据压缩和加密,以提高数据传输的效率。

COMTRADE格式详解

COMTRADE格式的文件包括一个配置文件和一个数据文件。头文件包含了数据文件的信息,例如每个采样的采样率、通道数、数据类型等等。数据文件包含了每个通道的采样数据,通道可以是电压、电流、信号、故障波形等等。

COMTRADE格式的头文件包括以下信息:

  • 文件类型:确定文件是配置文件(.cfg)还是数据文件(.dat)。
  • 站名称:标识站点的名称。
  • 通道数:确定数据文件中包含的通道数目。
  • 采样率:数据文件中每个通道的采样率,以赫兹为单位。
  • 采样数:数据文件中每个通道的采样数。
  • 时标:数据文件的起始时间和日期。 数据格式:数据文件中每个采样的数据类型(整数、浮点数等)。
  • 通道信息:每个通道的名称、单位、增益等信息。
  • 事件信息:数据文件中所包含的事件(故障、开关操作等)信息。

COMTRADE格式的数据文件包含以下信息:

  • 数据文件头:数据文件的头部信息,包括每个通道的信息、事件信息等。

  • 数据记录:每个记录包含了每个通道在某个时间点的采样值。

COMTRADE格式具有以下特点:

  • 支持高速采样和低速采样:COMTRADE格式可以处理高达100万样本/秒的高速采样数据和低速采样数据。

  • 支持多个通道:COMTRADE格式可以处理多个通道的数据,通道可以是电压、电流、信号、故障波形等等。

  • 支持数据压缩和加密:COMTRADE格式支持多种数据压缩和加密算法,以提高数据传输的效率和安全性。

  • 兼容性良好:COMTRADE格式已被广泛采用,许多厂家的设备都支持该格式。

  • 灵活性高:COMTRADE格式非常灵活,可以适应各种不同的应用场景。

    #厂站名称,记录装置的标识编号或名称,版本年号
    110kVxx北站,5635录波器,1999
    #通道总数,模拟通道数量,状态通道数量
    241,81A,160D
    #通道编号,通道名称,通道相,被监视的电路元件,通道单位,fCoefA[变换因子A],fCoefB[变换因子B],fTime[时间偏移],fMin[此模拟量采样记录数据最小值],fMax[此模拟量采样记录数据最大值],通道电压或电流互感器变比一次系数,通道电压或电流互感器变比二次系数,P或S,表明通道转换因子方程fCoefA * X + fCoefB得到的值还原为一次(P)还是二次(S)值的标识
    1,110kVⅠ段母线电压电压Ua,A,110kVⅠ段母线电压电压,V,0.0317994170,0.0000000000,0,-8191,8191,110000.0000000000,100.0000000000,S
    2,110kVⅠ段母线电压电压Ub,B,110kVⅠ段母线电压电压,V,0.0317052193,0.0000000000,0,-8191,8191,110000.0000000000,100.0000000000,S
    3,110kVⅠ段母线电压电压Uc,C,110kVⅠ段母线电压电压,V,0.0317111574,0.0000000000,0,-8191,8191,110000.0000000000,100.0000000000,S
    ...........
    80,厂配母联700#柜电流3Io,N,厂配母联700#柜电流,A,0.0353733636,0.0000000000,0,-8191,8191,2500.0000000000,5.0000000000,S
    81,1-频率曲线, , ,Hz,0.0050000000,0.0000000000,0,-8191,8191,1,1,S
    
    #通道编号:1
    #通道名称:110kVⅠ段母线电压电压Ub
    #通道相:A
    #被监视的电路元件:110kVⅠ段母线电压电压
    #通道单位:V
    #fCoefA[变换因子A]:0.0317994170
    #fCoefB[变换因子B]:0.0000000000
    #fTime[时间偏移]:0
    #fMin[此模拟量采样记录数据最小值]:-8191
    #fMax[此模拟量采样记录数据最大值]:8191
    #通道电压或电流互感器变比一次系数:110000.0000000000
    #通道电压或电流互感器变比二次系数:100.0000000000
    #P或S,表明通道转换因子方程fCoefA * X + fCoefB得到的值还原为一次(P)还是二次(S)值的标识
    
    #其中:实际值y与采样记录数据X的关系:y = fCoefA * X + fCoefB
    #所以实际的最值: Min = fCoefA * fMin + fCoefB;    Max = fCoefA * fMax~ + fCoefB; 
    
    #开关量依次为:通道编号/序号,通道名称,通道相,被监视电路元件,状态通道正常状态,
    1,xx甲线开关分位,NR,110kVxx甲线电流,0
    2,xx乙线开关分位,NR,110kVxx乙线电流,0
    3,x高线开关分位,NR,110kVx高线电流,0
    .......
    159,159#开关量通道,NR, ,0
    160,160#开关量通道,NR, ,0
    
    
    50  #系统电流电压的频率为50Hz
    2   #有两个采样频率
    5000,5501  #第一个采样频率: 在采样率为5000Hz下采了5501个点
    1000,8501  #第二个采样频率: 在采样率为1000Hz下采了8501个点
    15/10/2021,11:46:49.338900  #采样开始时间
    15/10/2021,11:46:49.438900  #采样结束时间
    BINARY  #dat文件记录格式为BINARY(二进制格式), 还有一种是ASCII
    100 #时标倍率因子
    

COMTRADE格式Python处理

使用Python对波形数据进行处理能更好的查看数据的状态,进行分析,下面列一些简单的Python处理comtrade文件的代码

import matplotlib.pyplot as plt
from comtrade import Comtrade

cfgFile = "/abcd.cfg"
datFile = "/abcd.dat"
rec = Comtrade()
rec.load(cfgFile, datFile)
# 模拟通道的数量
analog_count = rec.analog_count

# 循环获取模拟通道的名称
for i in range(analog_count):
    print(rec.analog_channel_ids[i])

# 开关量通道的数量
digital_count = rec.digital_count
# 循环获取开关量通道的名称
for i in range(digital_count):
    print(rec.digital_channel_ids[i])

# 循环输出81个模拟量通道的采集数据
for analog in rec.analog:
    print(analog)

# 打印采集时间
print(rec.time)

# 打印采集的时间戳
print(rec.start_timestamp)

# 处理前三个通道的波形数据,因数据量过大,此处只取前250个点的采集数据
plt.rcParams['font.family'] = 'SimHei'
plt.figure()
plt.plot(rec.time[0:250], rec.analog[0][0:250])
plt.plot(rec.time[0:250], rec.analog[1][0:250])
plt.plot(rec.time[0:250], rec.analog[2][0:250])
plt.legend([rec.analog_channel_ids[0], rec.analog_channel_ids[1],rec.analog_channel_ids[2]])
plt.show()

处理完的图片示例

image-20230309174408637

上次编辑于: 2023/9/23 20:40:17
贡献者: 肖桌
评论
Powered by Waline v2.5.1