一种PFO数据格式与XLS的接口转换方法与流程

文档序号:19564203发布日期:2019-12-31 16:27阅读:332来源:国知局
一种PFO数据格式与XLS的接口转换方法与流程

本发明属于电力系统分析应用领域,具体涉及bpa软件导出的pfo数据格式与xls数据格式之间的接口转换方法。



背景技术:

基于windows操作系统的psd-bpa潮流和暂态稳定及人机界面程序自从1997年底推出以来,在电力系统规划设计、运行调度以及教学科研等部门得到了极为广泛的应用。随着bpa程序在国外和国内的大量实践应用,人们对程序的继续开发和完善不断地提出新的要求,使得bpa在美国和中国都得到了新的发展。

bpa软件包主要由潮流和暂态稳定程序构成,具有计算规模大、计算速度快、数值稳定性好、功能强等特点。潮流计算程序主要功能有:基本的潮流计算功能,计算电压、功率等;自定义输出功能;负荷静态特性模拟功能;发电机功率特性控制功能;节点p-v、p-q、q-v曲线计算功能;节点、线路、损耗灵敏度分析;n-1开断模拟;区域联络线功率控制。暂态稳定程序是用于分析电力系统在稳态下受到各种干扰时的系统动态行为的有力工具。可以用来模拟电力系统的运行和控制;计算短路电流;研究特高压直流输电、风电及facts装置等,在大电网稳定分析计算方面有广泛的作用。

目前,bpa可以实现的计算规模已经很大,并且仍在迅速增长。节点数目已经达到20000个,支路数量可以达到80000条;在直流线路的容纳方面,它可以包含100条直流线路以及50多条多段直流线路;可以包含100多个交换功率区域,300个分区,各分区间可有500多条功率交换联络线。

bpa软件包存在一个显著的特点,就是bpa网络数据以卡片形式输入,数据必须严格按规定的格式录入,否则软件无法识别。交流节点数据卡通常填写b卡,可选的节点类型为pq节点、pv节点、vθ节点。线路数据卡通常采用l卡,需要填写额定电流和电阻、电抗、对地电导g/2、对地电纳b/2的标幺值。变压器数据卡一般采用t卡或r卡,需要填写额定容量、等值电阻r、漏抗x、等值电导g、激磁电纳b的标幺值、变比。

psd-bpa软件具有较强的操作性以及亲切的人机交互界面,这使得其逐渐在电力系统中普及应用。很多电力公司和研究所都使用bpa软件搭建不同地区的电网模型进行仿真研究,在对这些地区电网潮流计算结果进行分析时,需要从bpa软件中导出电网以pfo数据格式保存的潮流计算结果。以pfo数据格式保存的潮流计算结果包含各个发电机的出力、各条线路上的潮流以及流经各个变压器的潮流。

然而电力系统工作人员实际上最为关心的是电网各个分区的损耗以及薄弱环节,如电压越界节点,负载率较高线路和变压器等。若通过人工的方法将这些工作人员较为关心的指标从pfo文件中逐一提取到xls文件,需要较大的工作量,不仅耗费时间长、效率低,而且极容易出现各种各样的错误,导致人力物力的浪费。因此,寻求一种智能的接口转化方法,将pfo格式数据中的重要信息提取到格式整齐、简洁明了的xls文件中是非常有必要的。



技术实现要素:

本发明的目的在于提供一种pfo数据格式与xls的接口转换方法,该方法旨在解决bpa潮流计算结果pfo文件冗余信息较多、难以直观得到所需关键信息的问题。

为达到上述目的,本发明采用了以下技术方案:

1)在程序中读入电力系统分析平台bpa的潮流计算结果pfo文件;

2)经过步骤1)后,对所述潮流计算结果的可用信息进行抽取;

3)将抽取得到的可用信息保存为xls数据格式。

所述程序选自具有文件读取能力的编译程序,例如c++程序。

所述步骤2)具体包括以下步骤:

确定所述pfo文件中包含可用信息的数据列表的起始和结束位置,然后根据数据列表结构将对应可用信息提取并存储至结构体数组中。

通过匹配所述数据列表表头所在行中特定位置的特征字符串(具有唯一性),从而确定所述数据列表的起始位置。

对于所述数据列表结束位置的判定方法为:如果所述数据列表为不包含空行的连续型列表,则自起始位置读取至第一个空行时即达到该连续型列表的结束位置;如果所述数据列表为包含空行的非连续型列表,则自起始位置读取到下一数据列表内容时即达到该非连续型列表的结束位置。

所述数据列表包括电压越界列表、系统损耗数据列表、重载线路列表以及重载变压器列表中的一种或多种。

所述可用信息包括电压越界信息、系统损耗信息、重载线路信息以及重载变压器信息中的一种或多种。

本发明的有益效果体现在:

本发明所述pfo数据格式与xls的接口转换方法可以作为一个接口程序,使bpa软件与多种可以识别xls文件格式的软件有效结合,可以应用于电网的规划与运行等领域,使计算变得更方便,具有工程实用价值。

进一步的,在分析电网薄弱环节或者计算网络损耗时,都需要在bpa潮流计算结果pfo文件中进行查找。如果使用人工统计信息,不仅难以快速地定位到所需信息上,而且耗费时间、极易出错。本发明跳过bpa潮流计算结果pfo文件中的控制语句以及各条线路上的潮流分布等大量不需要的信息部分,将电力系统工作人员所关心的定位于电压越界列表、分区损耗列表、重载线路列表以及重载变压器列表内的关键信息快速、准确、有效地导入到格式整齐的xls文件中,无需人工统计信息,大大提高了计算的效率,具有较强的工程实用性。

附图说明

图1是本发明所述接口转换方法的流程框图。

具体实施方式

下面结合附图和实施例对本发明做详细说明。以潮流计算为例,但本发明具有一般性。

在电力系统分析软件psd-bpa(以下简称bpa)中打开需要计算的数据文件(dat格式),设置bpa程序所在路径以及数据文件的执行路径。然后执行bpa潮流程序,如果潮流计算结果收敛,则会在数据文件的执行路径处生成潮流计算结果pfo文件。该pfo文件中包含潮流计算结果的全部信息,如潮流结果的收敛性、待求网架各条线路上的潮流、各个节点的电压以及各个变压器上的潮流等。由于pfo文件是bpa软件自动生成,其格式是固定的,但是电力系统工作人员难以直观找到所需关键信息,因此需要对其进行转换。以下提供了由bpa软件导出的pfo文件到格式整齐的xls文件的格式转化方法。下面做具体说明:

1.pfo文件导出

在bpa软件中导出pfo文件是进行数据格式转化的准备工作,数据导出的正确与否直接关系到后面数据格式转化的正确性和准确性。下面是导出pfo文件的基本步骤:

1)在bpa软件中打开所需计算的dat文件,设置bpa软件所在路径以及dat文件所在路径,在dat文件中对输出控制语句进行调整,使得其计算结果文件内信息存储格式为指定的格式。给定的输出控制语句如表1所示:

表1

2)在做好准备工作后点击bpa软件中“执行bpa潮流程序”按钮,此时bpa将完成对输入数据dat文件的潮流计算,并将潮流计算结果的全部信息存储到dat文件所在路径下的一个新生成的pfo文件中。

3)将得到的pfo文件重命名为“结果”,到此,便完成了pfo文件的导出工作。

2.pfo文件格式转化

在得到上面的pfo文件之后,就对其进行格式转化。本发明利用c++程序编写了接口转化程序,流程如图1所示,具体步骤如下:

a、完成对电压越界列表的定位,该定位是通过判别pfo格式数据中的某一行的第1-5个字符是否为“*低”来实现的。在给定的输出控制语句下,电压越界列表的表头为“*低电压和过电压节点数据列表”,通过对其中特定位置“*低”五个字符的识别可以唯一定位到该列表。

电压越界列表中,电压越界节点的分区名在第12-13列、节点名在18-25列、节点额定电压在第27-32列、节点类型在第35列、节点实际电压在第42-47列、节点电压标幺值在第50-55列、电压下界在第60-65列、电压上界在第68-73列、标志电压偏高或者偏低的信息(表明越界电压值的正负)在第78-84列。根据分区名的不同,可以通过对分区名的判别来实现分区统计电压越界节点的数目,并通过对第78列字符(该列字符为“—”或“”,若为“—”则表明电压偏低;若为“”表明电压偏高)的判断来统计电压偏低节点及电压偏高节点的数目。

b、获得各个分区电压越界节点数目后便可以定义若干个结构体数组,每个结构体数组的大小为所属分区电压越界节点数目。结构体的成员包括分区名、节点名、节点额定电压、节点类型、节点实际电压、节点电压标幺值、电压下界、电压上界以及越界电压值。用定义的结构体数组逐一存储各分区的电压越界信息。

c、完成对系统损耗数据列表的定位,该定位是通过判别pfo格式数据中的某一行的第6-9个字符是否为“照分”来实现的。在给定的输出控制语句下,系统损耗数据列表的表头为“*按照分区顺序的系统损耗数据列表”,通过对其中特定位置“照分”四个字符的识别可以唯一定位到该列表。

系统损耗数据列表中,分区名在第4-5列、“小结”二字占用第12-15列的四个字符、线路有功损耗在第29-35列、线路无功损耗在第37-43列、变压器有功损耗在第48-54列、变压器无功损耗在第57-63列、直流换流器有功损耗在第67-73列、直流换流器无功损耗在77-83列、分区内总有功损耗在第86-92列、分区内总无功损耗在第96-102列,根据分区名的不同,可以通过对分区名的判别统计各个分区内不同类型的损耗。

d、定义一个用于存储各个分区系统损耗的结构体数组,该结构体数组的大小表示分区的数目。结构体的成员包括分区名、“小结”、线路有功损耗、线路无功损耗、变压器有功损耗、变压器无功损耗、直流换流器有功损耗、直流换流器无功损耗、对应分区内总有功损耗以及总无功损耗。用该结构体数组逐一存储各个分区的系统损耗信息。

e、完成对重载线路列表的定位,该定位是通过判别pfo格式数据中的某一行的第6-9个字符是否为“路负”来实现的。在给定的输出控制语句下,重载线路列表的表头为“*线路负载超过额定值80.0%的数据列表”,通过对其中特定位置“路负”四个字符的识别可以唯一定位到该列表。

重载线路列表中,线路首端节点名在第4-11列、首端节点电压在第12-18列、线路末端节点名在19-26列、末端节点电压在第27-33列、线路电流在第37-44列、额定电流在第46-53列、电流比例在第56-63列、视在功率在第64-71列、额定视在功率在第73-80列、视在功率比例在第87-92列、功率因数在第94-101列、角度在第102-108列。

f、统计得到重载线路数目后便可以定义用于存储重载线路信息的结构体数组,该结构体数组的大小为重载线路的数目。结构体成员包括首端节点名、首端节点电压、末端节点名、末端节点电压、线路电流、额定电流、电流比例、视在功率、额定视在功率、视在功率比例、功率因数以及角度。用该结构体数组逐一存储重载线路信息。

g、完成对重载变压器列表的定位,该定位是通过判别pfo格式数据中的某一行的第8-11个字符是否为“器负”来实现的。在给定的输出控制语句下,重载变压器列表的表头为“*变压器负载超过额定值80.0%的数据列表”,通过对其中特定位置“器负”四个字符的识别可以唯一定位到该列表。

重载变压器列表中,a侧节点名在第4-11列、a侧节点电压在第12-18列、b侧节点名在第19-26列、b侧节点电压在第27-33列、视在功率在第35-42列、额定视在功率在第46-52列、功率比例在第56-61列、功率因数在第64-69列。

h、统计得到重载变压器数目后便可以定义用于存储重载变压器信息的结构体数组,该结构体数组的大小为重载变压器的数目。结构体成员包括a侧节点名、a侧节点电压、b侧节点名、b侧节点电压、视在功率、额定视在功率、视在功率比例以及功率因数。用该结构体数组逐一存储重载变压器信息。

i、对于某一数据列表结束的判定:上述列表中,如果列表为连续型列表(即不包含空行的列表),则遇到空行时该连续型列表的读取结束;如果列表为非连续型列表(即包含空行的列表),则遇到下一列表内容时该非连续型列表的读取结束。

基于此,获得了分别存储着电压越界信息、系统损耗信息、重载线路信息、重载变压器信息的结构体数组。将各个结构体数组内储存的信息分别导出到不同的xls文件中,即完成pfo文件格式转化为xls。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1