comtrade文件解析
工作中接触了comtrade这个东西,尤其最近研究故障判断算法,直接接触的就是comtrade波形文件,目前十里研究算法使用python的科学计算包Anaconda
,为了方便获取波形数据和快速查看波形,用python实现了comtrade模块和comtrade波形查看命令行工具。
comtrade介绍
COMTRADE是英文Common format for transient data exchange (COMTRADE) for power systems 的简写,中文一般称为电力系统瞬态数据交换的通用格式。IEEE为了解决数字故障录波装置、数字保护、微机测试装置之间的数据交换问题,与1991年提出了这个标准,并于1999年进行了修订和完善。该标准是一种公用的数据传输格式标准,为不同厂家生产的设备所遵循。每个COMTRADE记录最多包含四个相关的文件。这些文件的文件名相同,但是扩展名不同。四个文件分别是:
- 标题文件(.hdr)
- 配置文件(.cfg)
- 数据文件(.dat)
- 信息文件(.inf)
目前国内产品专检等一些检定机构默认只使用cfg和dat文件,所以这里只讨论cfg和dat文件。
cfg文件
配置文件为一种ASCII文本文件,用于正确地说明数据(.DAT)文件的格式,因此必须以一种具体的格式保存。该文件诠释了数据(.DAT)文件所包含信息,其中包括诸如采样速率、通道数量、频率、通道信息等项。 配置文件第一行中的一个字段识别文件所依照的COMTRADE标准版本的年份(例如1991、1999等)。如果该字段不存在或是空的,则假设文件则遵照标准的最初发行日期(1991)。配置文件还包含识别伴随的数据文件是以ASCII格式还是以二进制格式存储的字段。
dat文件
正如cfg文件中介绍的,dat文件可以是ascii或binary格式。数据文件包含记录中每个采样所有输入通道的值。数据文件包含一个顺序号和每次采样的时间标志。这些采样值除记录模拟输入的数据之外,也记录状态,即表示开/关信号的输入。
解析实现
因为这是一个标准,所以一定是有格式的,首先按照格式解析cfg文件中的每一行文本,对应解析出信息,这些信息用于解析dat文件。刚说的这种格式,可以网上查找相应标准文件,其中很详细的介绍了cfg和dat文件的格式,比如十里手上的IEEE Standard Common Format for Transient Data Exchange (COMTRADE) for Power Systems IEEE Std C37.111-19(密码: hu4x),本文实现的comtrade解析模块根据这个标准只做了cfg解析和二进制的dat文件解析。
实现项目已托管到github平台:comtrade。
另外,为了方便同事进行matlab的算法仿真,十里又用c#编写了comtrade文件转csv文件的小工具,毕竟matlab更容易导入csv文件,该工程也托管到了github平台:ComtradeGo。