具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下根据附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施仅仅用以解释本发明,并不限定本发明。
如图1所示,一种电网大规模拓扑结构构建方法,包括步骤:
S100:读取电网拓扑关联矩阵表,根据电网拓扑关联矩阵表获取稀疏矩阵。
电网拓扑关联矩阵表是已存现有的数据,其获取过程可以是整个电网的历史数据或者是专家经验数据,具体来说,电网拓扑关联矩阵表会存储于NoSQL数据库中,直接从电网拓扑关联矩阵表中可以读取出稀疏矩阵。
S200:利用MapReduce对所述稀疏矩阵进行处理,获得电网拓扑节点分析结果。
MapReduce(映射-简化)用于大规模数据集(大于1TB)的并行运算,利用MapReduce框架的优异并行处理能力,高效、准确获取电网拓扑节点分析结果。
S300:根据所述电网拓扑节点分析结果,计算电网拓扑岛连接关系,获得电网拓扑网络结果。
具体来说是根据电网拓扑节点分析结果,对行进行分组汇聚,对列进行分组汇聚,计算获得电网拓扑岛连接关系,再根据电网拓扑岛连接关系,获得电网拓扑网络结果。(在下述具体实施例中将详细解释本步骤)
S400:根据电网拓扑网络结果,构建电网大规模拓扑结构。
根据电网拓扑网络结果,清楚获知电网拓扑中各个节点的网络位置,构建电网大规模拓扑结构。
本发明电网大规模拓扑结构构建方法,读取已存的电网拓扑关联矩阵表,获取稀疏矩阵,再利用MapReduce对稀疏矩阵处理,获得电网拓扑节点分析结果,计算电网电网拓扑岛连接关系,获得电网拓扑网络结果,最后根据电网拓扑网络结果构建电网大规模拓扑结构。整个过程中,采用严谨的处理计算和处理过程,确保构建准确,利用MapReduce扩展性的优点,简化矩阵计算复杂度,优化计算终止条件,保证大规模稀疏矩阵计算的快捷性,快速计算大范围电网的拓扑结构,以便准确的分析大电网的拓扑节点和电网拓扑岛,最终高效、精准构建电网大规模拓扑结构。
在其中一个实施例中,所述利用MapReduce对所述稀疏矩阵进行处理,获得电网拓扑节点分析结果具体包括步骤:
利用MapReduce将所述稀疏矩阵自乘;
将所述稀疏矩阵在自乘过程中相关元素组合,形成新的稀疏矩阵;
利用矩阵的稀疏特性,将新的稀疏矩阵进行迭代计算,再对迭代计算结果进行相关元素组合处理,更新稀疏矩阵,直至更新后的稀疏矩阵不再改变,获得最终稀疏矩阵;
根据所述最终稀疏矩阵,获取电网拓扑节点分析结果。
下面用一个具体实施例中,详细说明上述步骤。
矩阵可以看成带有如下3个属性的关系:行下标、列下标和值。因此,可以把矩阵T看成是关系T(I,J,V),其元组为(i,j,vij)。对于大电网的拓扑结构,其矩阵通常非常稀疏(绝大部分元素为0),由于零元素可以被忽略,所以大矩阵特别适合采用关系表示。为了便于存储查询举证数据,将数据保存在NoSQL数据库中,其存储结构如下所示。其中,该表只保存值不为0的数,值为0的则不保存。
电网拓扑关联矩阵表
矩阵T自称可以看作自然连接再加上分组和聚合运算。为了方便描述,我们将矩阵T分为Tl和Tr,即关系Tl(I,J,Vl)和关系Tr(J,K,Vr)的自然连接只有一个公共属性J。对于关系Tl中的每一个元组(i,j,vl)和Tr中的每一个元组(j,k,vr),两个关系的自然连接会产生元组(i,j,k,vl,vr),我们的目标是对元素求积,即产生四个字段的元组(i,j,k,v1∧vr)。之后,便可进行分组和聚合运算,其中I和K是分组属性,V1×Vr的和作为聚合结果。即矩阵乘法可以通过两个Map-Reduce的运算串联来实现。第一轮Map和Reduce中,生成四元组元组(i,j,k,v1∧vr),其中j作为Key,(i,k,v1∧vr)作为Value。之后第二轮Map和Reduce配合,计算(i,k)对应的聚合操作,生成新的元组(i,k)。最后,只保存新出现的元组,已经存在的则不做变动。第三轮Map和Reduce用来优化矩阵迭代,只计算新增元组会影响到的计算,如果没有新元组到达则结束计算。对于新增的元组(i,k),只改变了第i行和第j列的计算结果,其它计算与前一次重复。同时考虑到批量读取性能要优于随机读取。因此,我们只缩小行号,忽略列号。在计算过程中,列号由于没有相应的行号与之对应,不会影响计算结果。第三轮Map和Reduce的作用是整理行号的集合,保证每个行号只出现一次。最后,利用第5个Map读取行号对应的元组集合,分发给第一轮的Map继续迭代计算。
在其中一个实施例中,所述根据所述电网拓扑节点分析结果,计算电网拓扑岛连接关系,获得电网拓扑网络结果具体包括步骤:
读取电网拓扑点链接表;
根据所述电网拓扑节点分析结果和所述电网拓扑点链接表,将同一拓扑节点的行汇聚在一起,将同一拓扑节点的列汇聚在一起,计算电网拓扑岛连接关系;
根据所述电网拓扑岛连接关系,获得电网拓扑网络结果。
下面用一个具体实施例中,详细说明上述步骤。
在拓扑节点分析的基础上,通过对连接点的进一步分析,可以得到网络拓扑结构。拓扑网络分析,主要针对拓扑节点,研究不同拓扑节点之间的电气链接关系,与电网拓扑关联矩阵表类似,我们给出了电网拓扑点链接表记录了除开关和母线之外的连接关系,最终结果将放在电网拓扑结果表之中。其结构均与电网拓扑关联矩阵表相同。具体来说,将算法分为两个阶段。第一阶段对行数据进行分析,将同一拓扑节点的行汇聚在一起,考虑到拓扑节点构成的子矩阵是一个满秩的矩阵,因此通过列号可以知道拓扑节点内所有节点的编号,认为一个拓扑节点内的节点是一个组,用其中编号最小的节点编号作为组编号。第二阶段对列进行汇聚,形成拓扑节点之间的连接关系。与前一阶段类似,通过列号可以知道一个节点的组号,因此我们只需要将分好组的节点,按行号再进行一次分组,就可以知道拓扑节点之间的关联关系。第一阶段采用了多Map汇聚的形式,首先从“电网拓扑关联矩阵表”和“电网拓扑点链接表”中读取数据,以行号为主键进行分组。Reduce阶段,同一个行号的数据会汇聚在一起。这个阶段,我们会用将组编号,拓扑节点内节点的列编号集合,以及与其它关联节点的列编号保存下来。第二阶段,在Map函数内以列编号作为Key,对数据进行分组。然后再Reduce阶段,不同行但是同一列的元素将会汇聚在一起。对于其它关联节点,在第一阶段已经确定了其行号对应的组,而列号所定义的组则可由来自拓扑节点内的节点的列号确定。
如图2所示,在其中一个实施例中,所述S400之后还有步骤:
S500:根据所述电网拓扑网络结果,更新电网拓扑关联矩阵表。
获取到新的数据之后,更新电网拓扑关联矩阵表,数据库的数据更加真实准确反映电网的历史情况,从而提高下次构建电网拓扑的准确性。
如图3所示,一种电网大规模拓扑结构构建系统,包括:
稀疏矩阵获取模块100,用于读取电网拓扑关联矩阵表,根据电网拓扑关联矩阵表获取稀疏矩阵;
拓扑节点分析模块200,用于利用MapReduce对所述稀疏矩阵进行处理,获得电网拓扑节点分析结果;
拓扑网络结果获取模块300,用于根据所述电网拓扑节点分析结果,计算电网拓扑岛连接关系,获得电网拓扑网络结果;
构建模块400,用于根据电网拓扑网络结果,构建电网大规模拓扑结构。
本发明电网大规模拓扑结构构建系统,稀疏矩阵获取模块100读取已存的电网拓扑关联矩阵表,获取稀疏矩阵,拓扑节点分析模块200利用MapReduce对稀疏矩阵处理,获得电网拓扑节点分析结果,拓扑网络结果获取模块300计算电网电网拓扑岛连接关系,获得电网拓扑网络结果,构建模块400根据电网拓扑网络结果构建电网大规模拓扑结构。整个过程中,采用严谨的处理计算和处理过程,确保构建准确,利用MapReduce扩展性的优点,简化矩阵计算复杂度,优化计算终止条件,保证大规模稀疏矩阵计算的快捷性,快速计算大范围电网的拓扑结构,以便准确的分析大电网的拓扑节点和电网拓扑岛,最终高效、精准构建电网大规模拓扑结构。
在其中一个实施例中,所述拓扑节点分析模块具体:
自乘单元,用于利用MapReduce将所述稀疏矩阵自乘;
组合单元,用于将所述稀疏矩阵在自乘过程中相关元素组合,形成新的稀疏矩阵;
迭代单元,用于利用矩阵的稀疏特性,将新的稀疏矩阵进行迭代计算,再对迭代计算结果进行相关元素组合处理,更新稀疏矩阵,直至更新后的稀疏矩阵不再改变,获得最终稀疏矩阵;
分析单元,用于根据所述最终稀疏矩阵,获取电网拓扑节点分析结果。
在其中一个实施例中,所述拓扑网络结果获取模块具体包括:
读取单元,用于读取电网拓扑点链接表;
计算单元,用于根据所述电网拓扑节点分析结果和所述电网拓扑点链接表,将同一拓扑节点的行汇聚在一起,将同一拓扑节点的列汇聚在一起,计算电网拓扑岛连接关系;
获取单元,用于根据所述电网拓扑岛连接关系,获得电网拓扑网络结果。
如图4所示,在其中一个实施例中,所述电网大规模拓扑结构构建系统还包括:
更新模块500,用于根据所述电网拓扑网络结果,更新电网拓扑关联矩阵表。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。