电网系统支路搜索方法、系统及电子设备
技术领域
本发明涉及一种电网系统支路搜索方法及系统。
背景技术
电力系统拓扑分析是电力能量(生产、传输、使用)流动过程中,对用于转换、保护、控制这一过程的元器件在电力系统分析中认为阻抗近似为0的元器件状态的分析,目的是形成便于电网分析与计算的模型,它界于底层和高层之间。就调度自动化而言,底层信息(如SCADA)是拓扑分析的基础,高层应用(如状态估计、安全调度等)是拓扑分析的目的。可见,电力系统在实时运行中,这些元器件的状态变化决定了运行方式的变化。如何依据厂站实时信息快速、准确地跟踪这些变化,是电力系统运行控制和风险分析中需要解决的一个基础而关键的问题。
电网拓扑分析可分为电网厂站拓扑分析及电网系统拓扑分析,电网厂站拓扑分析时厂站内双端元器件表示为图的边,单端元器件处理为图的顶点,分析后厂站划分为若干母线节点,双端元器件如断路器开关等为支路;电网系统拓扑分析是以厂站作为母线节点,交流线路作为支路,分析后得到的母线-支路模型是厂站拓扑分析之后的进一步分析。
目前对电力系统拓扑分析的方法主要有:深度搜索法、广度搜索法、关联矩阵法等。深度/广度搜索法原理简单,但是对复杂网络略显不足;关联矩阵法计算量大,对于大型电网计算效率偏低。
现有的电力系统拓扑分析技术大多都是采用深度/广度搜索法与关联矩阵法,关联矩阵法是将电网各个器件以顶点和支路的形式存在矩阵再进行计算的方法,关联计算量较大,对于大型电网系统的解析效率偏低,广度/深度搜索法是根据节点的连接关系沿支路依次搜索的方法,对于复杂结构的电网的解析能力不足。
发明内容
有鉴于此,有必要提供一种电网系统支路搜索方法、系统及电子设备,其能够针对电网拓扑的结构特点,实现动态快速的支路分析,提高解析效率。
本发明提供一种电网系统支路搜索方法,该方法包括如下步骤:a.对ftp端最新的CIM/E文件进行解析;b.整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表,所述构建拓扑所需的数据表包括:器件ID表与连接关系表;c.根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图;d.根据上述构建的图,合并相互连接的开关断路器,计算出厂站拓扑的支路;e.根据计算出的厂站拓扑的支路构建厂站拓扑图,并且计算出各个厂站内部的电气岛;f.根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,计算出系统拓扑的支路;g.根据计算出的系统拓扑的支路,得到系统拓扑的母线-支路模型,并根据所述母线-支路模型构建系统拓扑。
该方法在步骤g之后还包括:根据上述构建的系统拓扑,进行深入分析应用,所述深入分析应用包括:电气岛识别、潮流计算、风险评估。
进一步地,所述的步骤c具体包括:c1,对顶点与边进行映射处理,每个ID映射一个长整形数字,将器件的ID作为该顶点的属性,其中:所述顶点代表元器件,所述边代表元器件的连接关系;c2,通过SparkContext与SparkConf进入Spark,读取点和边的数据,并以RDD的方式进行存储;c3,通过点的RDD和边的RDD构建电网系统拓扑图。
进一步地,所述的步骤d具体包括:d1,设置每个顶点发出的消息为该顶点的类型,进行第一个超级步,如果接收的消息为双端元器件的顶点,则将该点设置为活跃状态,如果接收的消息为单端元器件时,则将该点设置为未激活状态,进行下一个超级步;
d2,重复步骤d1,进行迭代,并在迭代时记录整个路径的节点编号。当所有点都处于未激活状态时,结束迭代;
d3,收集结果,将互相连接的双端元器件作为一条支路,支路两旁的单端元器件作为顶点,转化为边的RDD和点的RDD。
进一步地,所述的步骤f具体包括:f1,根据CIM模型中的连接关系,得到电气岛与线路的连接关系;
f2,以电气岛、交流线路以及电气岛内部与线路相连的开关作为点,开关与线路,电气岛与开关,电气岛不通过开关与线路的连接关系作为边,构建Graph图;
f3,类似于步骤c2与c3,对线路与线路上的双端元器件进行合并整合,采用Pregel框架计算出支路。
本发明提供一种电网系统支路搜索系统,该系统包括解析模块、整理模块、图构建模块、支路计算模块、电气岛计算模块、系统拓扑构建模块,其中:所述解析模块用于对ftp端最新的CIM/E文件进行解析;所述整理模块用于整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表,所述构建拓扑所需的数据表包括:器件ID表与连接关系表;所述图构建模块用于根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图;所述支路计算模块用于根据上述构建的图,合并相互连接的开关断路器,计算出厂站拓扑的支路;所述电气岛计算模块用于根据计算出的厂站拓扑的支路构建厂站拓扑图,并且计算出各个厂站内部的电气岛;所述支路计算模块还用于根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,计算出系统拓扑的支路;所述系统拓扑构建模块用于根据计算出的系统拓扑的支路,得到系统拓扑的母线-支路模型,并根据所述母线-支路模型构建系统拓扑。
该系统还包括:分析应用计算模块,用于根据上述构建的系统拓扑,进行深入分析应用,所述深入分析应用包括:电气岛识别、潮流计算、风险评估。
进一步地,所述CIM/E文件由电网调控中心提供。
进一步地,所述的图构建模块具体用于:对顶点与边进行映射处理,每个ID映射一个长整形数字,将器件的ID作为该顶点的属性,其中:所述顶点代表元器件,所述边代表元器件的连接关系;通过SparkContext与SparkConf进入Spark,读取点和边的数据,并以RDD的方式进行存储;通过点的RDD和边的RDD构建电网系统拓扑图。
进一步地,所述的系统拓扑构建模块具体用于:根据CIM模型中的连接关系,得到电气岛与线路的连接关系;以电气岛、交流线路以及电气岛内部与线路相连的开关作为点,开关与线路,电气岛与开关,电气岛不通过开关与线路的连接关系作为边,构建Graph图;对线路与线路上的双端元器件进行合并整合,采用Pregel框架计算出支路。
本发明还提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述电网系统支路搜索方法的以下操作:
对ftp端最新的CIM/E文件进行解析;
整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表,所述构建拓扑所需的数据表包括:器件ID表与连接关系表;
根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图;
根据上述构建的图,合并相互连接的开关断路器,计算出厂站拓扑的支路;
根据计算出的厂站拓扑的支路构建厂站拓扑图,并且计算出各个厂站内部的电气岛;
根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,计算出系统拓扑的支路;
根据计算出的系统拓扑的支路,得到系统拓扑的母线-支路模型,并根据所述母线-支路模型构建系统拓扑。
本发明针对解析效率低与解析复杂电网能力不足的问题,针对电网拓扑的结构特点,提出一种基于GraphX的电网系统支路搜索技术。本发明一方面通过电网CIM/E文件解析构建基于GraphX的电网拓扑结构,一方面通过GraphX组件中的相关算法对电网拓扑中的支路进行计算分析。本发明能够实现动态快速的支路分析,提高解析效率,同时对于连接情况复杂的电网系统有着较好的适用性。
附图说明
图1为本发明电网系统支路搜索方法的流程图;
图2为本发明电网系统支路搜索系统的硬件架构图;
图3为本发明实施例一个Pregel算法的标准应用示意图;
图4是本发明实施例的电网系统支路搜索方法的硬件设备结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
参阅图1所示,是本发明电网系统支路搜索方法较佳实施例的作业流程图。
步骤S1,检测ftp端CIM/E文件的更新,对更新后的CIM/E文件进行解析。其中:
CIM/E文件通常是由电网调控中心提供,得到所述CIM/E文件后,通过ftp服务器上传到大数据服务器上。由于CIM/E文件通常是十五分钟更新一次,本实施例通过脚本文件shell来定期检测所述CIM/E文件的更新,在获取更新状态后立刻执行解析程序。
得到CIM/E文件的更新结果之后,采用基于Java的Dom4J API对CIM/E文件进行分析处理,以得到电网拓扑连接的数据。所述数据主要包括:CIM/E文件中的核心包、拓扑包以及E文件中描述的开关通断状态。
步骤S2,整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表。在本实施例中,将所述CIM/E文件转换导出为XML文件,将XML文件按照特定字段导入到数据库,如oracle中。其中:所述构建拓扑所需的数据表包括:器件ID表与连接关系表。具体而言:
CIM模型中描述拓扑关系的方式是物理节点-电气节点-物理节点的方式。本实施例对解析出来的拓扑包和核心包数据进行处理分析,得到器件ID-器件ID的连接关系。
步骤S3,根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图。
需要说明的是:构建GraphX图,需要的数据为顶点与边,顶点代表元器件,边代表的是元器件的连接关系。本实施例以器件ID作为顶点,器件ID-器件ID作为边,构建图。
图的构建过程中,需要剔除掉CIM/E文件中一些虚拟的电器元器件如虚拟厂站中的元器件与一些虚拟开关等。对于在E文件中描述为断开的断路器与刀闸,也需要进行剔除与过滤。
具体包括如下步骤:
步骤S31,由于GraphX图不支持字符串作为顶点ID,所以对顶点与边进行映射处理,给每个ID映射一个长整形数字,器件的ID作为该顶点的属性。在本实施例中,所述映射是指将字符串对应成数字ID号。
步骤S32,通过SparkContext与SparkConf进入Spark,读取点和边的数据,并以RDD的方式进行存储。
步骤S33,通过点的RDD和边的RDD构建电网系统拓扑图。
在本实施例中,构建电网系统拓扑图的过程就是将点和边输入到GraphX图中的过程。
步骤S4,根据上述构建的图,采用Pregel框架,合并相互连接的开关断路器,计算出厂站拓扑的支路。具体包括:
步骤S41,设置每个顶点发出的消息为该顶点的类型,进行第一个超级步,如果接收的消息为双端元器件的顶点,则将该点设置为活跃状态,如果接收的消息为单端元器件时,则将该点设置为未激活状态,进行下一个超级步;
步骤S42,重复步骤S41,进行迭代,并在迭代时记录整个路径的节点编号。当所有点都处于未激活状态时,结束迭代;
步骤S43,收集结果,将互相连接的双端元器件作为一条支路,支路两旁的单端元器件作为顶点,转化为边的RDD和点的RDD。
步骤S5,根据计算出的厂站拓扑的支路构建厂站拓扑图,并且根据GraphX中的Connected Components算法计算出各个厂站内部的电气岛。
具体包括:
步骤S51,对步骤S43中的顶点RDD与边RDD,构建Graph图,采用GraphX框架中的Connected Components算法将网络中的子图进行分类处理,得到每个厂站中的子图,所述子图称为厂站内部的电气岛,在系统拓扑分析中,每个厂站内的电气岛都作为一个母线节点。
步骤S52,收集电气岛的数据,将电气岛中的元器件添加为电气岛的属性。
步骤S6,根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,利用Pregel框架,计算出系统拓扑的支路。具体包括:
步骤S61,电气岛的属性中有电气岛的开关与母线等,根据CIM模型中的连接关系,得到电气岛与线路的连接关系。
步骤S62,以电气岛、交流线路以及电气岛内部与线路相连的开关作为点,开关与线路、电气岛与开关、电气岛不通过开关与线路的连接关系作为边,构建Graph图。
步骤S63,类似于步骤S32与S33,对线路与线路上的开关等双端元器件根据线路关系进行合并整合,采用Pregel框架计算出支路。
步骤S7,在Pregel的支路计算完毕之后,收集结果。得到系统拓扑的母线-支路模型,并根据母线-支路模型构建系统拓扑。其中:
所述母线为步骤S51中的电气岛,所述边为步骤S63中计算出的支路。至此,系统拓扑构的母线-支路模型构建完毕。
步骤S8,根据上述构建的系统拓扑,进行电气岛识别、潮流计算、风险评估等深入分析应用。
参阅图2所示,是本发明电网系统支路搜索系统10的硬件架构图。该系统包括:解析模块101、整理模块102、图构建模块103、支路计算模块104、电气岛计算模块105、系统拓扑构建模块106以及分析应用计算模块107。
所述解析模块101用于检测ftp端CIM/E文件的更新,对更新后的CIM/E文件进行解析。其中:
CIM/E文件通常是由电网调控中心提供,得到所述CIM/E文件后,通过ftp服务器上传到大数据服务器上。由于CIM/E文件通常是十五分钟更新一次,本实施例通过脚本文件shell来定期检测所述CIM/E文件的更新,在获取更新状态后立刻执行解析程序。
得到CIM/E文件的更新结果之后,采用基于Java的Dom4J API对CIM/E文件进行分析处理,以得到电网拓扑连接的数据。所述数据主要包括:CIM/E文件中的核心包、拓扑包以及E文件中描述的开关通断状态。
所述整理模块102用于整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表。在本实施例中,将所述CIM/E文件转换导出为XML文件,将XML文件按照特定字段导入到数据库,如oracle中。其中:所述构建拓扑所需的数据表包括:器件ID表与连接关系表。具体而言:
CIM模型中描述拓扑关系的方式是物理节点-电气节点-物理节点的方式。本实施例对解析出来的拓扑包和核心包数据进行处理分析,得到器件ID-器件ID的连接关系。
所述图构建模块103用于根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图。
需要说明的是:构建GraphX图,需要的数据为顶点与边,顶点代表元器件,边代表的是元器件的连接关系。本实施例以器件ID作为顶点,器件ID-器件ID作为边,构建图。
图的构建过程中,需要剔除掉CIM/E文件中一些虚拟的电器元器件如虚拟厂站中的元器件与一些虚拟开关等。对于在E文件中描述为断开的断路器与刀闸,也需要进行剔除与过滤。
具体包括:
由于GraphX图不支持字符串作为顶点ID,所以对顶点与边进行映射处理,给每个ID映射一个长整形数字,器件的ID作为该顶点的属性。在本实施例中,所述映射是指将字符串对应成数字ID号。
通过SparkContext与SparkConf进入Spark,读取点和边的数据,并以RDD的方式进行存储。
通过点的RDD和边的RDD构建电网系统拓扑图。
在本实施例中,构建电网系统拓扑图的过程就是将点和边输入到GraphX图中的过程。
所述支路计算模块104用于根据上述构建的图,采用Pregel框架,合并相互连接的开关断路器,计算出厂站拓扑的支路。具体包括:
所述支路计算模块104设置每个顶点发出的消息为该顶点的类型,进行第一个超级步,如果接收的消息为双端元器件的顶点,则将该点设置为活跃状态,如果接收的消息为单端元器件时,则将该点设置为未激活状态,进行下一个超级步;
重复上一步,进行迭代,并在迭代时记录整个路径的节点编号。当所有点都处于未激活状态时,结束迭代;
收集结果,将互相连接的双端元器件作为一条支路,支路两旁的单端元器件作为顶点,转化为边的RDD和点的RDD。
所述电气岛计算模块105用于根据计算出的厂站拓扑的支路构建厂站拓扑图,并且根据GraphX中的Connected Components算法计算出各个厂站内部的电气岛。具体包括:
所述电气岛计算模块105对所述支路计算模块104的顶点RDD与边RDD,构建Graph图,采用GraphX框架中的Connected Components算法将网络中的子图进行分类处理,得到每个厂站中的子图,所述子图称为厂站内部的电气岛,在系统拓扑分析中,每个厂站内的电气岛都作为一个母线节点。
所述电气岛计算模块105收集电气岛的数据,将电气岛中的元器件添加为电气岛的属性。
所述支路计算模块104还用于根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,利用Pregel框架,计算出系统拓扑的支路。具体包括:
电气岛的属性中有电气岛的开关与母线等,所述支路计算模块104根据CIM模型中的连接关系,得到电气岛与线路的连接关系。
以电气岛、交流线路以及电气岛内部与线路相连的开关作为点,开关与线路、电气岛与开关、电气岛不通过开关与线路的连接关系作为边构建Graph图。
对线路与线路上的开关等双端元器件根据线路关系进行合并整合,采用Pregel框架计算出支路。
所述系统拓扑构建模块106用于在Pregel的支路计算完毕之后,收集结果。得到系统拓扑的母线-支路模型,并根据母线-支路模型构建系统拓扑。至此,系统拓扑构的母线-支路模型构建完毕。
所述分析应用计算模块107用于根据上述构建的系统拓扑,进行电气岛识别、潮流计算、风险评估深入分析应用。
图4是本发明实施例的电网系统支路搜索方法的硬件设备结构示意图,如图4所示,该设备包括一个或多个处理器以及存储器。以一个处理器为例,该设备还可以包括:输入装置和输出装置。
处理器、存储器、输入装置和输出装置可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的处理方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置可接收输入的数字或字符信息,以及产生信号输入。输出装置可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任一方法实施例的以下操作:
对ftp端最新的CIM/E文件进行解析;
整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表,所述构建拓扑所需的数据表包括:器件ID表与连接关系表;
根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图;
根据上述构建的图,合并相互连接的开关断路器,计算出厂站拓扑的支路;
根据计算出的厂站拓扑的支路构建厂站拓扑图,并且计算出各个厂站内部的电气岛;
根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,计算出系统拓扑的支路;
根据计算出的系统拓扑的支路,得到系统拓扑的母线-支路模型,并根据所述母线-支路模型构建系统拓扑。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例提供的方法。
本发明实施例提供了一种非暂态(非易失性)计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行以下操作:
对ftp端最新的CIM/E文件进行解析;
整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表,所述构建拓扑所需的数据表包括:器件ID表与连接关系表;
根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图;
根据上述构建的图,合并相互连接的开关断路器,计算出厂站拓扑的支路;
根据计算出的厂站拓扑的支路构建厂站拓扑图,并且计算出各个厂站内部的电气岛;
根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,计算出系统拓扑的支路;
根据计算出的系统拓扑的支路,得到系统拓扑的母线-支路模型,并根据所述母线-支路模型构建系统拓扑。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行以下操作:
对ftp端最新的CIM/E文件进行解析;
整理CIM/E文件解析后的数据,得到构建拓扑所需的数据表,所述构建拓扑所需的数据表包括:器件ID表与连接关系表;
根据上述得到的构建拓扑所需的数据表,以器件ID表与连接关系表作为点和边构建图;
根据上述构建的图,合并相互连接的开关断路器,计算出厂站拓扑的支路;
根据计算出的厂站拓扑的支路构建厂站拓扑图,并且计算出各个厂站内部的电气岛;
根据上述各个厂站内部的电气岛,与交流线路以及交流线路上的开关断路器,计算出系统拓扑的支路;
根据计算出的系统拓扑的支路,得到系统拓扑的母线-支路模型,并根据所述母线-支路模型构建系统拓扑。
本发明公开了一种基于GraphX的电网系统支路搜索技术,首先对描述电网拓扑的CIM/E文件进行解析处理,然后将解析结果进行提取分析构建Graph拓扑图,然后根据Spark框架中的GraphX组件,对电网拓扑图进行分割,最后发布到分布式系统上进行并行计算,得到系统中的支路模型。本发明通过基于内存并行计算的图计算方法,以并行计算的方式对电网拓扑进行高速的拓扑分析,能够实现动态快速的支路分析。
Connected Components算法是图论中的一种经典算法,它能够找到拓扑结构中的连通子图即电网系统中的拓扑岛,通常由广度优先搜索法或者深度优先搜索法来进行实现。GraphX中的Connected Components算法采用了改进的Pregel并行图计算框架,它以顶点作为基础进行操作,但它不会在单个顶点上进行消息遍历,而是将顶点的多个Ghost副本收到的消息聚合后,发送给Master副本,再使用vprog函数来更新点值。这种框架避免了传统Pregel框架中超级节点的问题,对于连接情况复杂的电网系统有着较好的适用性。本发明采用Connected Componets算法识别系统拓扑中的母线节点。
Pregel是Google提出的大规模分布式图计算平台,专门用来解决网页链接分析、社交数据挖掘等实际应用中涉及的大规模分布式图计算问题。Pregel在概念模型上遵循BSP模型,整个计算过程由若干顺序执行的超级步(Super Step)组成,系统从一个“超级步”迈向下一个“超级步”,直到达到算法的终止条件,图3描述了一个Pregel算法的标准应用。在厂站拓扑中,本发明通过Pregel框架来实现支路计算即开关合并,将连续相连的若干个开关合并成为一个开关以减少系统中支路的数量;在系统拓扑中,采用Pregel框架能实现线路与线路侧开关的合并,以计算出系统拓扑的支路。
虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。