基于图数据库的配电网供电范围分析应用研究

2023-03-06 07:56张志浩孙保华张玉林杜红卫
机电信息 2023年3期
关键词:内存标签动态

张志浩 孙保华 韩 韬 张玉林 杜红卫

(1.南瑞集团有限公司(国网电力科学研究院有限公司),江苏 南京 210000;2.国电南瑞科技股份有限公司,江苏 南京 210000)

0 引言

目前,主流、成熟的电网拓扑分析功能程序是基于关系型数据库的结构化数据以及基于内存的关系型、层次型或对象型的实时数据模型开发的。随着配电网智能化的发展以及低压用户侧电网拓扑模型的深入研究,配电网的颗粒度越来越细,设备模型的数量呈爆炸式增长。原先基于关系型数据库或服务器内存的拓扑分析程序在电网模型数据量扩大以及电网信息化、智能化推进的过程中,性能已无法满足大规模的实时数据处理需求。为满足电力企业在电力数据实时分析高效性、复杂的层次拓扑分析方面的需求,需要寻求新的数据模型存储方式[1]。过去几年,非关系型数据存储模式的NoSQL数据库在电网信息化应用中越来越被重视,其非关系型数据存储模式可以避免使用SQL的JOIN操作,具有良好水平扩展性特征[2]。其中图数据库作为近十年来兴起的NoSQL数据库,其独特的节点和关系数据格式与电网拓扑有着天然的结构适应性,它的路径检索等算法在电网实时拓扑分析上有着更加广泛的应用挖掘空间[3]。

本文针对配电网关系型数据模型,使用图数据库Neo4j设计一套配电网拓扑模型创建方法,并基于Neo4j的功能,对供电范围分析应用在图数据库中的实现提供思路探讨与实践。

1 图数据库Neo4j

图数据库Neo4j在全球有着20万的开发人员,具有优秀的生态系统,是业界领先的图数据库与最丰富的图平台解决方案,其高效的查询性能以及高可用性、负载均衡和自动容错的集群技术使得国内很多企业,例如中国电信和华为都选择使用Neo4j。

1.1 数据存储模式

图数据库是以图结构的形式存储数据的数据库,聚焦于数据之间的关系数据。Neo4j发明了标签属性图模型,如图1所示,基本类型包括:

(1)节点。可以用标签来区分节点,标签本身有索引功能。

(2)关系。关系用来表示两个节点的连接属性,具有方向性和标签功能。

(3)属性。属性是节点和关系的键值对附属参数信息,可以通过建立索引提高检索效率。

Neo4j的图查询语言是Cypher,与关系型数据库的sql语言类似,具有创建、匹配、删除、修改、关键字和函数等功能[4]。在Neo4j的官方查询工具里,查询结果均是以图1这种点和边的元素组成,这种数据表现形式对表达节点与节点之间的关系具有天然的解释性,相对于关系型数据库在查询和分析数据的关系结构上有更高的性能,在数据模型的设计和异动更新上有更高的灵活性[5]。

图1 Neo4j标签属性图

1.2 APOC扩展库

APOC扩展库(AwesomeProceduresonCypher)是Neo4j实验室项目之一,是应用最广泛的扩展库。APOC库创建的目的是整合常用函数,减少开发人员的重复性开发。APOC库包含大量程序和函数,其中的路径函数(path)在电网拓扑分析上有巨大的应用潜力。

Neo4j的Cypher查询语言支持按深度查询路径和节点,但未知深度的路径无法查询,且路径深度超过6个节点以后,查询效率很低。APOC的路径函数可以通过条件选择,获取从任意数量起始节点开始,到达设定的终止节点集合的路径,路径里包括该路径上的所有节点、关系及其属性值。APOC的路径函数还可以限制路径节点和关系的标签,并支持白名单和黑名单功能,能够进一步控制路径搜索方向,解决Cypher解决不了的问题。

1.3 图数据科学库

图数据科学库(Graph Data Science Library,GDS)使用内存图算法功能实现各种高级应用,包括路径发现、重要性分析、社区检测、机器学习、相似度分析等。GDS图算法将图数据库中内容有条件地加载到内存中,并在内存中完成计算。因此,分析和图计算不会对现有图数据库中的数据查询造成影响。由于内存图可灵活自由定义,因此内存图可以根据图算法对图结构的要求灵活定义,独立于实际数据库模型,对于在线事务和在线分析,实际上实现了一套数据两个或多个模型,分别支持不同的计算和业务需求,实现了混合计算,实现了对混合业务的支持。

2 基于Neo4j的配电网拓扑模型构建

电力系统模型数据遵循CIM/E标准,以关系表的形式描述电力系统内的对象。在CIM/E标准下,导电设备通过相同的节点号形成静态连接,通过实际开关状态形成动态连接。图数据库设计上,以静态连接拓扑为主,在静态连接拓扑上做动态连接拓扑构建,并遵循以下原则:

(1)最大化提高拓扑搜索效率;

(2)设备之间尽可能减少环状连接关系,尽可能使用星型连接关系;

(3)最大化减少节点的创建;

(4)最大化减少关系的创建;

(5)考虑电气接线图通用性。

2.1 静态拓扑构建

将电力系统模型对象转换为节点,节点的标签为对应对象的设备类型,属性为对应对象CIM/E中的属性值。根据电力系统模型对象的内在特性,再次将对象分为导电类设备和容器类设备,并对相应节点附上对应的标签。

为减少关系的创建和环状连接,需将CIM/E中的节点号实体化成节点,电气设备与节点号的节点相连,形成“设备—节点号—设备”的构建形式。

导电类设备节点的物理连接关系,根据CIM/E中的节点号形成静态的节点关系[6-7]。考虑到电力系统图数据库模型设计原则,此种方式建立起的模型存在大量环状连接,图2为变电站内母线与其连接的断路器结构图。母线与其相连的断路器均存在相同节点号,同理断路器之间也存在相同节点号,也须建立图数据库的连接关系。此种方式建立的图数据库模型,存在诸多冗余关系的创建和大量环路的形成,不符合设计原则,也不符合实际物理模型含义。

图2 站内母线与断路器连接模型构建

图3为从变电站母线到配网单辐射线路模型构建示意图。采用“设备—节点号—设备”的构建形式就不会出现在一个节点号连接3个及以上设备时,上述设备相互交叉连接的情况,尽可能避免了实际不存在的环状连接。

图3 静态单辐射配网线路示例

容器类设备包含电压等级、区域、厂站、配网线路、配电环网柜等,这些设备没有电气连接关系,故不建立电气连接的节点关系。

2.2 动态拓扑构建

动态拓扑的图数据库模型设计,保留现有节点与关系的元素,在此基础上叠加新标签类型的关系,即在现有静态拓扑图上,创建一种与静态物理连接标签不同的、代表动态拓扑连接的具有新标签的关系。动态拓扑关系构建逻辑为:

(1)引入电力系统实时开关遥信状态。

(2)默认在所有静态拓扑连接关系上建立动态拓扑连接关系。

(3)监听并解析开关实时遥信状态。根据开关类设备的分合状态,将处于分状态的开关设备节点与其静态拓扑连接的节点号节点的动态拓扑连接删除,将处于合状态的开关设备节点,创建与其静态拓扑连接的节点号节点的动态拓扑连接。

此种创建方式的好处在于可以在一张图上叠加静态和动态拓扑的连接状态,减少了模型节点的创建,可以在一张图上叠加不同规则的电气岛连通性分析,如图4所示。

图4 动态单辐射配网线路示例

3 基于Neo4j的供电范围分析应用

本节基于Neo4j图数据库的配电网拓扑模型,提出动态拓扑下的供电路径检索方法,并提出两个使用场景下的应用。

3.1 配网动态拓扑连通子图及案例分析

根据电网实际物理连接和开关的分合位置,可以将配网部分的线路划分成若干个连通子图。用连通子图划分配网电力设备,有助于分析在不同运行方式下停电影响的用户负荷数量。实现策略是使用GDS图科学的连通性分析计算方法,具体实现步骤如下:

(1)配网标签初始化。将所有配网导电设备节点和节点号节点赋予配网标签。

(2)内存子图提取。使用GDS图投影功能,根据配网标签和动态拓扑连接关系创建投影到内存子图。

(3)连通分量计算。使用GDS图弱连通分量计算,使每个节点获得其对应的连通分量id,并从内存图反写图库。

本文使用东部沿海某省的主网变电站模型数据及其某市的配网模型数据,按照第2节的拓扑模型构建方法构建图数据库模型数据。其中,共创建了3304130个节点和4 980 330条关系,涉及变电站9 853个、母线27 712个、配网线路5 092个、配网变压器63 723个。图数据库的运行环境如表1所示。

表1 运行环境

案例分析如下:

将某市的所有配网导电设备节点及其节点号节点赋予“DMS”标签,定义动态拓扑连接关系类型名为“POWER_CONNECT”,并以此创建内存图,cypher执行语句示例如下,执行结果如表2所示。

表2 内存图创建

CALL gds.graph.project(#{graphName},'DMS','POWER_CONNECT',{validateRelationships:false})YIELD nodeCount,relationshipCount,projectMillis;

使用GDS的WCC算法计算内存图的弱连通分量,并在图库的节点上新建属性“dms_dync_component_id”,反写连通分量id至此属性中,cypher执行语句示例如下,执行结果如表3所示。

表3 连通分量计算

CALL gds.wcc.write(#{graphName},{writeProperty:"dms_dync_component_id",concurrency:16,writeConcurrency:16})YIELD nodePropertiesWritten,componentCount,computeMillis,writeMillis;

利用GDS的连通分量计算方法可以快速划分和更新动态拓扑连通子图。动态拓扑连通子图的意义在于可以快速区分多个导电设备是否属于同一电气岛,为拓扑网络快速分析和某个特定设备是否入网的判断速度更快,从而整体提高拓扑计算效率。

3.2 配网设备供电下游及案例分析

当一个配网开关跳闸后,调度人员和供电服务指挥人员关注的是开关影响的下游停电范围造成的影响,所以对停电范围的快速、准确定位是非常重要的。利用Neo4j的路径搜索进行双向检测可以快速定位开关下游方向和开关下游范围。

基于Neo4j的配网设备供电下游分析策略如下:(1)获取导电设备两端节点号节点。

(2)分别查询两端节点号到主网母线设备的动态路径是否存在,若都存在,则为环网状态的设备,该设备没有下游;若都不存在,则该设备为孤岛状态,没有上游;若其中一个节点号能找到主网母线设备,则另一个节点为下游侧的节点号。

(3)根据下游的节点号,使用APOC.PATH路径检索函数,搜寻下游所有动态连通的设备。

案例分析如下:

随机选取某市一条配网线路,该线路共含有1 111个电气设备和1 075个节点号节点。选取目标配网开关设备A,通过如下cypher语句获取开关两端节点号节点,计算耗时15 ms。

match (:DMS_CB_DEVICE{id:#{devId}})-[:CONNECT_WITH]-(n)return n;

使用电源点路径探索方法,对每一个上述节点号,往非选中配网开关方向搜索母线设备,使用的cypher语句如下,区分上下游节点号,计算耗时578 ms。

call apoc.path.spanningTree(#{ndId},{relationship Filter:'POWER_CONNECT',blacklistNodes:[#{devId}],endNodes:#{busId},limit:1})YIELD path RETURN length(path);

找到下游侧节点号后,使用供电范围探索方法,往非选中配网开关方向搜索全部设备,使用的cypher语句如下,计算耗时256 ms。

call apoc.path.spanningTree(#{ndId},{relationship Filter:'POWER_CONNECT',blacklistNodes:[#{devId}]})YIELD path RETURN path;

实际应用查询效果展示图如图5所示。

图5 供电下游查询示例

使用传统基于内存的拓扑分析方法对相同配网设备A进行供电下游分析,与基于图数据库的供电下游分析做对比,执行时间结果如表4所示。

表4 拓扑分析耗时

从表4对比可以看出,基于图数据库的分析方法对供电下游分析的效率有明显提升。虽然从时间提升的绝对值上看,约0.6 s的提升不是很明显,但本文的数据建模暂未考虑配网变压器下游低压用户侧的数据模型信息。在后续系统建设中将低压侧拓扑模型并入主配网拓扑模型后,模型设备数量又将呈几何式增长。此时传统分析方法的计算效率将大大降低,而Neo4j支持集群式部署方式,使其能够支撑千亿、万亿以上数据节点的数据库建模,并且在此基础上仍能保证12 ms的查询效率。使用Neo4j的图数据库的电网拓扑供电下游分析将在未来拥有更好的应用场景。

4 结语

图数据库的数据可视化功能能够更为直观地表达电力系统的拓扑结构,其查询模式与电网拓扑应用有着天然的适配性。基于图数据库的电网资源模型分析是未来电网信息化的研究方向,本文提出了基于图数据库Neo4j的配电网拓扑模型构建方法,并在此基础上提出了基于Neo4j的供电范围分析的方法应用。基于某省主配网模型的实际测试表明,本文的图数据库建模和供电范围分析方法能够明显提升分析效率,在电力系统的分析领域有着广阔的应用前景。

猜你喜欢
内存标签动态
国内动态
国内动态
国内动态
动态
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
让衣柜摆脱“杂乱无章”的标签
内存搭配DDR4、DDR3L还是DDR3?