CN116777671A - 基于自动生成拓扑展示的规模化储能资源管理方法及系统 - Google Patents

基于自动生成拓扑展示的规模化储能资源管理方法及系统 Download PDF

Info

Publication number
CN116777671A
CN116777671A CN202310740689.0A CN202310740689A CN116777671A CN 116777671 A CN116777671 A CN 116777671A CN 202310740689 A CN202310740689 A CN 202310740689A CN 116777671 A CN116777671 A CN 116777671A
Authority
CN
China
Prior art keywords
node
resource
nodes
level
energy storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310740689.0A
Other languages
English (en)
Inventor
刘洋
陆秋瑜
谢平平
陈玥
段奇佑
刘轩
易斌
罗嘉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Power Grid Co Ltd
Electric Power Dispatch Control Center of Guangdong Power Grid Co Ltd
Original Assignee
Guangdong Power Grid Co Ltd
Electric Power Dispatch Control Center of Guangdong Power Grid Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Power Grid Co Ltd, Electric Power Dispatch Control Center of Guangdong Power Grid Co Ltd filed Critical Guangdong Power Grid Co Ltd
Priority to CN202310740689.0A priority Critical patent/CN116777671A/zh
Publication of CN116777671A publication Critical patent/CN116777671A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出了一种基于自动生成拓扑展示的规模化储能资源管理方法及系统,该方法包括:获取需管理的储能资源并构建资源管理模型;获取资源管理模型中资源节点集合及各资源节点间的关系集合;基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点;基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示。本发明提出的规模化储能资源管理方法能对资源拓扑图进行自动生成及展示,实现资源拓扑图的可快速高效重新绘制,适用于数据多变、复杂性较高的资源拓扑图的展示。

Description

基于自动生成拓扑展示的规模化储能资源管理方法及系统
技术领域
本发明涉及储能资源管理技术领域,尤其是涉及一种基于自动生成拓扑展示的规模化储能资源管理方法及系统。
背景技术
储能资源模型来源多样化,各个厂站的资源模型不完全一致,导致在储能规模化集群系统建设过程中存在对资源模型建模困难、储能资源模型标准不统一、储能资源模型建模过程缺乏方法论的问题。由于缺乏统一标准和资源模型建模方法论,一个系统中往往会出现多套资源模型以满足不同的功能要求,资源模型与其他业务耦合的现象严重,这导致系统建设组件不能满足可复用要求,使得系统存在重复开发、维护困难,开发效率低等情况。
在规模化储能系统建设中,电力接线图展示通常是其系统的基础功能。一般而言,电力接线图展示通常先由客户提供电力接线图,再由前端研发人员基于电力接线图编写代码将每个资源拓扑图展示出来。当上述技术过程仅适用于绘制数量较少或不常变动的拓扑图,当资源拓扑图数量多、逻辑复杂时,若再基于电力接线图编写代码将每个资源拓扑图进行展示,则存在效率低下、可配置化程度低、每个资源拓扑编码逻辑不统一和维护困难等问题。
发明内容
本发明旨在提供一种基于自动生成拓扑展示的规模化储能资源管理方法及系统,以解决上述技术问题,对资源拓扑图进行自动生成及展示,实现资源拓扑图的可快速高效重新绘制,适用于数据多变、复杂性较高的资源拓扑图的展示。
为了解决上述技术问题,本发明提供了一种基于自动生成拓扑展示的规模化储能资源管理方法,包括以下步骤:
获取需管理的储能资源;
基于需管理的储能资源构建资源管理模型;
获取资源管理模型中资源节点集合及各资源节点间的关系集合;
基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点;
基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;
基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示。
上述方案能对资源拓扑图进行自动生成及展示,实现资源拓扑图的可快速高效重新绘制,适用于数据多变、复杂性较高的资源拓扑图的展示。
进一步地,所述基于需管理的储能资源构建资源管理模型,具体为:将需管理的储能资源的数据信息存储为储能电站信息列表,以储能电站信息列表为基础构建资源管理模型。
进一步地,所述基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:针对每一个资源节点递归循环关系集合,以获取作为每个关系集合终点的资源节点作为关联顶点;基于关联顶点向下构建接线图层级,以包含所有资源节点。
进一步地,所述基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
在接线图层级中,以关联顶点为第一层并循环遍历该关联顶点对应的关系集合,以获取关联顶点的子节点,将子节点作为接线图层级的第二层;
再从子节点出发进行关系集合的循环遍历,寻找子节点的子节点作为第三层;
以此类推,得到包含所有资源节点的接线图层级。
进一步地,所述基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置,具体为:
基于接线图层级确定一二维数组,以记录接线图层级每一层所包含的资源节点;
遍历二维数组,给每个资源节点所在的行和列进行赋值;
将二维数组倒序并将倒序后的第一层子节点开始逐层往下遍历循环,由最底层级自底向上确定每一层父节点的位置,以得到各层级父节点的坐标位置;
通过遍历关系集合以检查倒序后的二维数组是否存在非最底层级的叶子节点并确认其坐标位置,将其坐标存储至二维数组中并对二维数组进行更新;所述叶子节点表示不作为父节点的资源节点;
基于更新后的二维数组,获取非最底层级的叶子节点的父节点及其祖先节点的坐标并进行更新,获取各层级资源节点坐标位置。
本发明提供一种基于自动生成拓扑展示的规模化储能资源管理系统,用于实现一种基于自动生成拓扑展示的规模化储能资源管理方法,包括:
资源获取模块,用于获取需管理的储能资源;
管理模型构建模块,用于基于需管理的储能资源构建资源管理模型;
节点信息获取模块,用于获取资源管理模型中资源节点集合及各资源节点间的关系集合;
接线图层级构建模块,用于基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点;
坐标位置计算模块,用于基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;
拓扑图生成展示模块,用于基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示。
进一步地,所述管理模型构建模块,用于基于需管理的储能资源构建资源管理模型,具体为:在管理模型构建模块中,将需管理的储能资源的数据信息存储为储能电站信息列表,以储能电站信息列表为基础构建资源管理模型。
进一步地,所述接线图层级构建模块,用于基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:在所述接线图层级构建模块中,针对每一个资源节点递归循环关系集合,以获取作为每个关系集合终点的资源节点作为关联顶点;基于关联顶点向下构建接线图层级,以包含所有资源节点。
进一步地,在所述接线图层级构建模块中,所述基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
在接线图层级中,以关联顶点为第一层并循环遍历该关联顶点对应的关系集合,以获取关联顶点的子节点,将子节点作为接线图层级的第二层;
再从子节点出发进行关系集合的循环遍历,寻找子节点的子节点作为第三层;
以此类推,得到包含所有资源节点的接线图层级。
进一步地,所述坐标位置计算模块,用于基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置,具体为:
基于接线图层级确定一二维数组,以记录接线图层级每一层所包含的资源节点;
遍历二维数组,给每个资源节点所在的行和列进行赋值;
将二维数组倒序并将倒序后的第一层子节点开始逐层往下遍历循环,由最底层级自底向上确定每一层父节点的位置,以得到各层级父节点的坐标位置;
通过遍历关系集合以检查倒序后的二维数组是否存在非最底层级的叶子节点并确认其坐标位置,将其坐标存储至二维数组中并对二维数组进行更新;所述叶子节点表示不作为父节点的资源节点;
基于更新后的二维数组,获取非最底层级的叶子节点的父节点及其祖先节点的坐标并进行更新,获取各层级资源节点坐标位置。
附图说明
图1为本发明一实施例提供的一种基于自动生成拓扑展示的规模化储能资源管理方法流程示意图;
图2为本发明一实施例提供的接入点和输出点的设置示意图;
图3为本发明一实施例提供的自动生成拓扑实际效果图;
图4为本发明一实施例提供的一种基于自动生成拓扑展示的规模化储能资源管理系统架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,本实施例提供一种基于自动生成拓扑展示的规模化储能资源管理方法,包括以下步骤:
S1:获取需管理的储能资源;
S2:基于需管理的储能资源构建资源管理模型;
S3:获取资源管理模型中资源节点集合及各资源节点间的关系集合;
S4:基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点;
S5:基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;
S6:基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示。
本实施例能对资源拓扑图进行自动生成及展示,实现资源拓扑图的可快速高效重新绘制,适用于数据多变、复杂性较高的资源拓扑图的展示。
需要说明的是,需管理的储能资源包括但不仅限于发电、输电、配电过程中的物理设备,其资源来源包括但不仅限于电力行业的CIM/E文件、dt文件及其他系统数据库。
进一步地,在获取需管理的储能资源后,还可以将资源转换为统一规范、标准的资源模型,并录入到数据库表中,规范、统一、标准的资源模型包括但不仅限于资源唯一标志、资源名称、资源创建日期等信息,数据库表的设计应该符合第三范式要求,并且可动态增加资源属性,不可限制资源属性的动态增加、删除、或修改等操作,满足可拓展要求。
进一步地,所述基于需管理的储能资源构建资源管理模型,具体为:将需管理的储能资源的数据信息存储为储能电站信息列表,以储能电站信息列表为基础构建资源管理模型。
需要说明的是,所述资源管理模型可针对资源模型的增加、删除、修改及查询进行管理,资源模型的管理不应受到其他业务数据影响,应做到高内聚,松耦合,当其他业务与资源模型管理交互时应做到不需要提供任何业务数据即可查询出资源模型数据。
在本实施例中,步骤S3-步骤S6实质为对资源管理模型的数据展示过程,在电力行业中,本实施例根据输入所有节点集合和节点关系集合,自动生成拓扑关系图,从而大大减少人工手动绘制或程序写死坐标,一旦接线拓扑图有变动更新需要全部重新绘制。
进一步地,所述基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:针对每一个资源节点递归循环关系集合,以获取作为每个关系集合终点的资源节点作为关联顶点;基于关联顶点向下构建接线图层级,以包含所有资源节点。
进一步地,所述基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
在接线图层级中,以关联顶点为第一层并循环遍历该关联顶点对应的关系集合,以获取关联顶点的子节点,将子节点作为接线图层级的第二层;
再从子节点出发进行关系集合的循环遍历,寻找子节点的子节点作为第三层;
以此类推,得到包含所有资源节点的接线图层级。
进一步地,所述基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置,具体为:
基于接线图层级确定一二维数组,以记录接线图层级每一层所包含的资源节点;
遍历二维数组,给每个资源节点所在的行和列进行赋值;
将二维数组倒序并将倒序后的第一层子节点开始逐层往下遍历循环,由最底层级自底向上确定每一层父节点的位置,以得到各层级父节点的坐标位置;
通过遍历关系集合以检查倒序后的二维数组是否存在非最底层级的叶子节点并确认其坐标位置,将其坐标存储至二维数组中并对二维数组进行更新;所述叶子节点表示不作为父节点的资源节点;
基于更新后的二维数组,获取非最底层级的叶子节点的父节点及其祖先节点的坐标并进行更新,获取各层级资源节点坐标位置。
为了进一步阐述本方案的技术实现过程,本实施例提供一种基于自动生成拓扑展示的规模化储能资源管理方法的应用过程。其中,本实施例说明的规模化储能集群系统中资源模型主要包含储能电站信息、储能电站PCS信息、储能电站电池堆信息、储能电站刀闸信息、储能电站变压器信息和储能电站母线信息,其中储能电站信息主要由客户提供excel表格梳理而成,其余信息均通过电网dt文件中获取。
基于获取的储能资源,将储能资源对应的储能电站信息录入到储能电站信息表,储能电站信息表主要包含了储能电站ID(具备唯一性)、电站名称、电站创建日期等字段。具体可以通过dt文件中采集录入到数据库中:储能电站PCS信息主要包含了PCSID、PCS名称、PCS创建日期等字段;储能电池堆信息主要包含了电池堆ID、电池堆名称、电池堆创建日期等字段;储能电站刀闸信息主要包含刀闸ID、刀闸名称、刀闸创建日期等字段;储能电站变压器信息主要包含变压器ID、变压器名称变压器创建日期等字段;储能电站母线信息主要包含母线ID、母线名称、母线创建日期等字段。
在本实施例中,资源模型管理主要针对资源模型的增加、删除、查询等操作进行管理,当储能的其他高级模块需要进行查询、增加、修改、删除资源模型时,只需要将日期参数即可对资源模型进行操作,不需要传其它业务参数即可。
进一步地,步骤S3-步骤S6的目的在于,查询所有储能电站列表信息、以树图形式展示所有储能电站和对应设备信息、储能电站资源拓扑图展示,其具体可以通过以下技术过程实现。
S3:获取资源管理模型中资源节点集合及各资源节点间的关系集合:
{
"data":{
"nodes":[
{"id":"节点A","type":"node"},
{"id":"节点B","type":"node"},
{"id":"节点C","type":"node"},
{"id":"节点D","type":"node"},
{"id":"母线","type":"bus"},
{"id":"节点E","type":"node"},
{"id":"节点F","type":"node"},
{"id":"节点G","type":"node"},
{"id":"节点H","type":"node"},
{"id":"节点I","type":"node"},
{"id":"节点J","type":"node"},
{"id":"节点K","type":"node"}
],
"edges":[
{"source":"节点B","target":"节点D","type":"polyline"},
{"source":"节点A","target":"节点B","type":"polyline"},
{"source":"节点A","target":"节点C","type":"polyline"},
{"source":"节点C","target":"节点D","type":"polyline"},
{"source":"节点D","target":"母线","type":"line"},
{"source":"母线","target":"节点E","type":"line"},
{"source":"母线","target":"节点F","type":"line"},
{"source":"母线","target":"节点G","type":"line"},
{"source":"节点E","target":"节点H","type":"polyline"},
{"source":"节点E","target":"节点I","type":"polyline"},
{"source":"节点F","target":"节点J","type":"polyline"},
{"source":"节点F","target":"节点K","type":"polyline"}
]
}
}
S4:基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点:
首先,递归循环关系集合,最终获取关联顶点。以第一条边为例,起点是节点B,寻找集合里以节点B为终点的关系,获取到{"source":"节点A","target":"节点B","type":"polyline"}这个关系,节点A为节点B的父节点,然后继续寻找以节点A为终点的关系,最终无法找到,因此节点A即为关联顶点。
接着,从关联顶点为第一层,遍历循环关系集合,获取关联顶点的子节点,它们为第二层。然后从第二层的子节点出发,寻找它们各自的子节点,它们就是第三层,以此类推,使用二维数组记录每一层所包含的节点。二维数组如下:
[
[{"id":"节点A","type":"node"}],
[{"id":"节点B","type":"node"},{"id":"节点C","type":"node"}],
[{"id":"节点D","type":"node"}],
[{"id":"母线","type":"bus"}],
[
{"id":"节点E","type":"node"},
{"id":"节点F","type":"node"}
]
[
{"id":"节点H","type":"node"},
{"id":"节点I","type":"node"},
{"id":"节点J","type":"node"},
{"id":"节点K","type":"node"}
]
]
接着,遍历二维数组,给每个节点赋值所在的行和的列下标,具体可表示为:
[
[{"id":"节点A","type":"node","row":1,"column":1}],
[
{"id":"节点B","type":"node","row":2,"column":1},
{"id":"节点C","type":"node","row":2,"column":2}
],
[{"id":"节点D","type":"node","row":3,"column":1}],
[{"id":"母线","type":"bus","row":4,"column":1}],
[
{"id":"节点E","type":"node","row":5,"column":1},
{"id":"节点F","type":"node","row":5,"column":2}
]
[
{"id":"节点H","type":"node","row":6,"column":1},
{"id":"节点I","type":"node","row":6,"column":2},
{"id":"节点J","type":"node","row":6,"column":3},
{"id":"节点K","type":"node","row":6,"column":4}
]
]
至此,目前二维数组是从顶点第一层开始往下直到最底层的顺序来存储,将二维数组倒序,从最底层的叶子节点开始逐层往上遍历循环。由下往上的渲染方式的目的是确定了叶子节点的位置之后,上面的父节点可以通过子节点或者后代节点的位置、个数等因素,更好的定制公式来计算它们的位置。
具体为:S5:基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;
二维数组倒序后的数据如下:
[
[
{"id":"节点H","type":"node","row":6,"column":1},
{"id":"节点I","type":"node","row":6,"column":2},
{"id":"节点J","type":"node","row":6,"column":3},
{"id":"节点K","type":"node","row":6,"column":4}
],
[
{"id":"节点E","type":"node","row":5,"column":1},
{"id":"节点F","type":"node","row":5,"column":2}
],
[{"id":"母线","type":"bus","row":4,"column":1}],
[{"id":"节点D","type":"node","row":3,"column":1}],
[
{"id":"节点B","type":"node","row":2,"column":1},
{"id":"节点C","type":"node","row":2,"column":2}
],
[{"id":"节点A","type":"node","row":1,"column":1}]
]
在倒序后的二维数组中,第一层叶子节点的坐标,根据如下公式计算出坐标(x,y):
x=baseWidth*(资源节点列下标-1)
y=baseHeight*(资源节点所在行数-1)
其中baseWidth是每一列的间距,baseHeight是每一行的间距。由于二维数组已经倒序,因此遍历的时候,第一行的节点就是叶子节点。假设baseWidth为200,baseHeight为100,根据公式可以得出叶子节点的坐标为:
[
[
{"id":"节点H","type":"node","row":6,"column":1,x:0,y:500},
{"id":"节点I","type":"node","row":6,"column":2,x:200,y:500},
{"id":"节点J","type":"node","row":6,"column":3,x:400,y:500},
{"id":"节点K","type":"node","row":6,"column":4,x:600,y:500}
],
......
]
从倒序的二维数组第二行开始,这里的节点都是下一层节点的父节点,也就是说它们可以根据子节点的位置信息来确定它们的位置,其y坐标计算可参见上述过程,而x坐标则是首个子节点与最后一个子节点的x坐标之和再除以2,公式如下:
x=(第一个子节点的x坐标+最后一个子节点的x坐标)/2
"edges":[
{"source":"节点B","target":"节点D","type":"polyline"},
{"source":"节点A","target":"节点B","type":"polyline"},
{"source":"节点A","target":"节点C","type":"polyline"},
{"source":"节点C","target":"节点D","type":"polyline"},
{"source":"节点D","target":"母线","type":"line"},
{"source":"母线","target":"节点E","type":"line"},
{"source":"母线","target":"节点F","type":"line"},
{"source":"母线","target":"节点G","type":"line"},
{"source":"节点E","target":"节点H","type":"polyline"},
{"source":"节点E","target":"节点I","type":"polyline"},
{"source":"节点F","target":"节点J","type":"polyline"},
{"source":"节点F","target":"节点K","type":"polyline"}
]
根据上述关系集合得出,叶子节点H和I的父节点为E,叶子节点J和K的父节点为F,有:
E节点x坐标=(H节点x坐标+I节点x坐标)/2=(0+200)/2=100
F节点x坐标=(J节点x坐标+K节点x坐标)/2=(400+600)/2=500
E和F节点y坐标=baseHeight*(节点所在行数-1)=100*(5-1)=400
最终父节点E的坐标为(100,400),父节点F的坐标为(500,400)。
在本实施例中,若当前资源节点为母线,先获取关联到该资源节点的所有子孙节点,从所有子孙节点种获取x坐标最小与最大的两个节点。母线的x坐标为最小x坐标节点的x坐标,母线的长度为最大x坐标节点的x坐标-最小x坐标节点的x坐标,公式如下:
x=最小x坐标节点的x坐标
size=最大x坐标节点的x坐标-最小x坐标节点的x坐标
从母线的6个子孙节点E、F、H、I、J、K中,节点H的x坐标最小,节点K的x坐标最大,根据公式可以求得:
母线的x坐标=最小x坐标节点的x坐标=节点H的x坐标=0
母线的长度size=最大x坐标节点的x坐标-最小x坐标节点的x坐标=节点K的x坐标-节点H的x坐标=600-0=600
在本实施例中,若当前资源节点所关联的子节点还存在其它的父节点,即出现多个父节点关联同一个子节点的情况。它们的公式如下:
x=(子节点x坐标*父节点个数-(每个父节点下标*baseWidth之和))/父节点个数*(父节点下标+1)
"edges":[
{"source":"节点B","target":"节点D","type":"polyline"},
{"source":"节点C","target":"节点D","type":"polyline"},
{"source":"节点D","target":"母线","type":"line"},
......]
根据关系得知,首先节点D为母线父节点,那么节点D的坐标为(母线size/2,100*2)即为(300,100)。节点B和节点C同为节点D的父节点,因此根据公式求得:
节点B的x坐标为:(300*2-(0*200+1*200))/2*1=200
节点C的x坐标为:(300*2-(0*200+1*200))/2*2=400
接着,再次遍历关系集合,检查是否存在非最底层的叶子节点。有可能会存在一些叶子节点是在非底层的某一层级,此时要确认它们所在的行,然后把节点存储在二维数组对应的行集合里。
"edges":[
{"source":"节点B","target":"节点D","type":"polyline"},
{"source":"节点A","target":"节点B","type":"polyline"},
{"source":"节点A","target":"节点C","type":"polyline"},
{"source":"节点C","target":"节点D","type":"polyline"},
{"source":"节点D","target":"母线","type":"line"},
{"source":"母线","target":"节点E","type":"line"},
{"source":"母线","target":"节点F","type":"line"},
{"source":"母线","target":"节点G","type":"line"},
{"source":"节点E","target":"节点H","type":"polyline"},
{"source":"节点E","target":"节点I","type":"polyline"},
{"source":"节点F","target":"节点J","type":"polyline"},
{"source":"节点F","target":"节点K","type":"polyline"}
]
在上述关系中有一条{"source":"母线","target":"节点G","type":"line"},母线为父节点,它在第4层,那么节点G在第5层。由于总共有6层,而且节点G没有子节点,因此节点G属于非最底层的叶子节点。因此,先把节点G存储在二维数组的第5层数组里:
[
[
{"id":"节点H","type":"node","row":6,"column":1},
{"id":"节点I","type":"node","row":6,"column":2},
{"id":"节点J","type":"node","row":6,"column":3},
{"id":"节点K","type":"node","row":6,"column":4}
],
[
{"id":"节点E","type":"node","row":5,"column":1},
{"id":"节点F","type":"node","row":5,"column":2},
{"id":"节点G","type":"node","row":5,"column":3}
],
[{"id":"母线","type":"bus","row":4,"column":1}],
[{"id":"节点D","type":"node","row":3,"column":1}],
[
{"id":"节点B","type":"node","row":2,"column":1},
{"id":"节点C","type":"node","row":2,"column":2}
],
[{"id":"节点A","type":"node","row":1,"column":1}]
]
最后,再动态调整这些叶子节点的父节点及其祖先节点的x坐标。由于有新的叶子节点加入到所在的行,那么它们的父节点的位置必然会受影响,需要重新调整它的x坐标。由于节点G属于母线的子节点,目前母线的子节点变成3个:节点E、F、G。在上述步骤已经求得节点E和F的x坐标分别为(100,400)和(500,400),可以根据以下公式求出节点G坐标:
节点G的x坐标=左侧相邻节点的x坐标+baseWidth=500+200=700
母线的长度size也要随之而改变,根据上述公式求得:size=0+700=700
母线以上的节点也需要根据情况通过对应的步骤进行调整节点的位置。
至此,可以执行步骤S6:基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示:
设置每个节点的连线接入点和输出点位置。它是由anchorPoint进行设置接入和输出点,anchorPoint本身是一个数组,里面存放着每个点数组,点数组里的是位置信息。除了母线节点以外,一般节点的接入点在节点的正上方,输出点在节点的正下方。如果是母线,它可以同时连接多个子节点,而且输出点位于子节点的正上方,因此母线的输出点就是各个子节点的x坐标。可以根据公式计算anchorPoint:
anchorPoint=[(子节点的x坐标/母线长度),1]
具体可参见图2所示,对于一般资源节点,只需要设置接入点和输出点为正上方和正下方即可:
[
[
{"id":"节点H","type":"node","row":6,"column":1,anchorPoints:[[0.5,0],[0.5,1]]},
{"id":"节点I","type":"node","row":6,"column":2,anchorPoints:[[0.5,0],[0.5,1]]},
{"id":"节点J","type":"node","row":6,"column":3,anchorPoints:[[0.5,0],[0.5,1]]},
{"id":"节点K","type":"node","row":6,"column":4,anchorPoints:[[0.5,0],[0.5,1]]}
],
[
{"id":"节点E","type":"node","row":5,"column":1,anchorPoints:[[0.5,0],[0.5,1]]},
{"id":"节点F","type":"node","row":5,"column":2,anchorPoints:[[0.5,0],[0.5,1]]},
{"id":"节点G","type":"node","row":5,"column":3,anchorPoints:[[0.5,0],[0.5,1]]}
],
[{"id":"母线","type":"bus","row":4,"column":1}],
[{"id":"节点D","type":"node","row":3,"column":1,anchorPoints:[[0.5,0],[0.5,1]]}],
[
{"id":"节点B","type":"node","row":2,"column":1,anchorPoints:[[0.5,0],[0.5,1]]},
{"id":"节点C","type":"node","row":2,"column":2,anchorPoints:[[0.5,0],[0.5,1]]}
],
[{"id":"节点A","type":"node","row":1,"column":1,anchorPoints:[[0.5,0],[0.5,1]]}]
]
由于母线的输出位置位于子节点的正上方,因此根据公式求得anchorPoints:
节点E的母线输出点:[(100/700),1]=[0.14,1]
节点F的母线输出点:[(500/700),1]=[0.71,1]
节点G的母线输出点:[(600/700),1]=[0.86,1]
合并3个数组,最终母线的输出点anchorPoints为[[0.14,1],[0.71,1],[0.86,1]]。最后,根据所有点和线的位置坐标绘制拓扑图及展示,其效果图可参见图3所示。
本实施例提供的方法,可以解决目前规模化储能资源模型管理过程中储能资源模型与其他业务数据边界不清晰、与其他业务数据模块耦合度高等问题,为资源模型提供完整的生命周期管理,包括资源模型的新增、修改、删除、查询;同时,其提供的自动生成拓扑展示方法能够在海量电力资源拓扑图绘制需求下,解决手动生成的低效问题,对资源拓扑图的变更可快速高效重新绘制,并实时将资源拓扑关系准确无误展示在界面上。
请参见图4,本实施例提供一种基于自动生成拓扑展示的规模化储能资源管理系统,用于实现一种基于自动生成拓扑展示的规模化储能资源管理方法,包括:
资源获取模块,用于获取需管理的储能资源;
管理模型构建模块,用于基于需管理的储能资源构建资源管理模型;
节点信息获取模块,用于获取资源管理模型中资源节点集合及各资源节点间的关系集合;
接线图层级构建模块,用于基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点;
坐标位置计算模块,用于基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;
拓扑图生成展示模块,用于基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示。
进一步地,所述管理模型构建模块,用于基于需管理的储能资源构建资源管理模型,具体为:在管理模型构建模块中,将需管理的储能资源的数据信息存储为储能电站信息列表,以储能电站信息列表为基础构建资源管理模型。
进一步地,所述接线图层级构建模块,用于基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:在所述接线图层级构建模块中,针对每一个资源节点递归循环关系集合,以获取作为每个关系集合终点的资源节点作为关联顶点;基于关联顶点向下构建接线图层级,以包含所有资源节点。
进一步地,在所述接线图层级构建模块中,所述基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
在接线图层级中,以关联顶点为第一层并循环遍历该关联顶点对应的关系集合,以获取关联顶点的子节点,将子节点作为接线图层级的第二层;
再从子节点出发进行关系集合的循环遍历,寻找子节点的子节点作为第三层;
以此类推,得到包含所有资源节点的接线图层级。
进一步地,所述坐标位置计算模块,用于基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置,具体为:
基于接线图层级确定一二维数组,以记录接线图层级每一层所包含的资源节点;
遍历二维数组,给每个资源节点所在的行和列进行赋值;
将二维数组倒序并将倒序后的第一层子节点开始逐层往下遍历循环,由最底层级自底向上确定每一层父节点的位置,以得到各层级父节点的坐标位置;
通过遍历关系集合以检查倒序后的二维数组是否存在非最底层级的叶子节点并确认其坐标位置,将其坐标存储至二维数组中并对二维数组进行更新;所述叶子节点表示不作为父节点的资源节点;
基于更新后的二维数组,获取非最底层级的叶子节点的父节点及其祖先节点的坐标并进行更新,获取各层级资源节点坐标位置。
本实施例提供的系统,构建简单,实现方便,其用于实现一种规模化储能资源管理方法,能对资源拓扑图进行自动生成及展示,实现资源拓扑图的可快速高效重新绘制,适用于数据多变、复杂性较高的资源拓扑图的展示。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.基于自动生成拓扑展示的规模化储能资源管理方法,其特征在于,包括以下步骤:
获取需管理的储能资源;
基于需管理的储能资源构建资源管理模型;
获取资源管理模型中资源节点集合及各资源节点间的关系集合;
基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点;
基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;
基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示。
2.根据权利要求1所述的基于自动生成拓扑展示的规模化储能资源管理方法,其特征在于,所述基于需管理的储能资源构建资源管理模型,具体为:
将需管理的储能资源的数据信息存储为储能电站信息列表,以储能电站信息列表为基础构建资源管理模型。
3.根据权利要求2所述的基于自动生成拓扑展示的规模化储能资源管理方法,其特征在于,所述基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
针对每一个资源节点递归循环关系集合,以获取作为每个关系集合终点的资源节点作为关联顶点;
基于关联顶点向下构建接线图层级,以包含所有资源节点。
4.根据权利要求3所述的基于自动生成拓扑展示的规模化储能资源管理方法,其特征在于,所述基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
在接线图层级中,以关联顶点为第一层并循环遍历该关联顶点对应的关系集合,以获取关联顶点的子节点,将子节点作为接线图层级的第二层;
再从子节点出发进行关系集合的循环遍历,寻找子节点的子节点作为第三层;
以此类推,得到包含所有资源节点的接线图层级。
5.根据权利要求4所述的基于自动生成拓扑展示的规模化储能资源管理方法,其特征在于,所述基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置,具体为:
基于接线图层级确定一二维数组,以记录接线图层级每一层所包含的资源节点;
遍历二维数组,给每个资源节点所在的行和列进行赋值;
将二维数组倒序并将倒序后的第一层子节点开始逐层往下遍历循环,由最底层级自底向上确定每一层父节点的位置,以得到各层级父节点的坐标位置;
通过遍历关系集合以检查倒序后的二维数组是否存在非最底层级的叶子节点并确认其坐标位置,将其坐标存储至二维数组中并对二维数组进行更新;所述叶子节点表示不作为父节点的资源节点;
基于更新后的二维数组,获取非最底层级的叶子节点的父节点及其祖先节点的坐标并进行更新,获取各层级资源节点坐标位置。
6.基于自动生成拓扑展示的规模化储能资源管理系统,其特征在于,包括:
资源获取模块,用于获取需管理的储能资源;
管理模型构建模块,用于基于需管理的储能资源构建资源管理模型;
节点信息获取模块,用于获取资源管理模型中资源节点集合及各资源节点间的关系集合;
接线图层级构建模块,用于基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点;
坐标位置计算模块,用于基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置;
拓扑图生成展示模块,用于基于各层级资源节点坐标,确定每个资源节点连线接入点和输出点位置并根据所有资源节点和连线位置自动生成拓扑图并进行展示。
7.根据权利要求6所述的基于自动生成拓扑展示的规模化储能资源管理系统,其特征在于,所述管理模型构建模块,用于基于需管理的储能资源构建资源管理模型,具体为:
在管理模型构建模块中,将需管理的储能资源的数据信息存储为储能电站信息列表,以储能电站信息列表为基础构建资源管理模型。
8.根据权利要求7所述的基于自动生成拓扑展示的规模化储能资源管理系统,其特征在于,所述接线图层级构建模块,用于基于关系集合获取资源节点集合中的关联顶点,并基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
在所述接线图层级构建模块中,针对每一个资源节点递归循环关系集合,以获取作为每个关系集合终点的资源节点作为关联顶点;
基于关联顶点向下构建接线图层级,以包含所有资源节点。
9.根据权利要求8所述的基于自动生成拓扑展示的规模化储能资源管理系统,其特征在于,在所述接线图层级构建模块中,所述基于关联顶点向下构建接线图层级,以包含所有资源节点,具体为:
在接线图层级中,以关联顶点为第一层并循环遍历该关联顶点对应的关系集合,以获取关联顶点的子节点,将子节点作为接线图层级的第二层;
再从子节点出发进行关系集合的循环遍历,寻找子节点的子节点作为第三层;
以此类推,得到包含所有资源节点的接线图层级。
10.根据权利要求9所述的基于自动生成拓扑展示的规模化储能资源管理方法,其特征在于,所述坐标位置计算模块,用于基于接线图层级,由最底层级自底向上计算各层级资源节点坐标位置,具体为:
基于接线图层级确定一二维数组,以记录接线图层级每一层所包含的资源节点;
遍历二维数组,给每个资源节点所在的行和列进行赋值;
将二维数组倒序并将倒序后的第一层子节点开始逐层往下遍历循环,由最底层级自底向上确定每一层父节点的位置,以得到各层级父节点的坐标位置;
通过遍历关系集合以检查倒序后的二维数组是否存在非最底层级的叶子节点并确认其坐标位置,将其坐标存储至二维数组中并对二维数组进行更新;所述叶子节点表示不作为父节点的资源节点;
基于更新后的二维数组,获取非最底层级的叶子节点的父节点及其祖先节点的坐标并进行更新,获取各层级资源节点坐标位置。
CN202310740689.0A 2023-06-20 2023-06-20 基于自动生成拓扑展示的规模化储能资源管理方法及系统 Pending CN116777671A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310740689.0A CN116777671A (zh) 2023-06-20 2023-06-20 基于自动生成拓扑展示的规模化储能资源管理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310740689.0A CN116777671A (zh) 2023-06-20 2023-06-20 基于自动生成拓扑展示的规模化储能资源管理方法及系统

Publications (1)

Publication Number Publication Date
CN116777671A true CN116777671A (zh) 2023-09-19

Family

ID=87987355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310740689.0A Pending CN116777671A (zh) 2023-06-20 2023-06-20 基于自动生成拓扑展示的规模化储能资源管理方法及系统

Country Status (1)

Country Link
CN (1) CN116777671A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117874984A (zh) * 2024-03-13 2024-04-12 武汉易晨创想科技有限公司 基于cim模型的配网拓扑图形生成方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117874984A (zh) * 2024-03-13 2024-04-12 武汉易晨创想科技有限公司 基于cim模型的配网拓扑图形生成方法及装置
CN117874984B (zh) * 2024-03-13 2024-05-28 武汉易晨创想科技有限公司 基于cim模型的配网拓扑图形生成方法及装置

Similar Documents

Publication Publication Date Title
CN107402976B (zh) 一种基于多元异构模型的电网多源数据融合方法及系统
CN109947859B (zh) 配电网绘图建模方法、系统、存储介质和计算机设备
CN110866320B (zh) 一种智能台区图形自动生成方法及系统
CN110618983A (zh) 基于json文档结构的工业大数据多维分析与可视化方法
CN105447253B (zh) 一种三维工艺数据的集成方法
CN107194533B (zh) 一种配电网全信息模型构建方法及系统
CN109933311A (zh) 一种信息系统创建方法及相关装置
CN102855332A (zh) 一种基于图形数据库的图形配置管理数据库
CN116777671A (zh) 基于自动生成拓扑展示的规模化储能资源管理方法及系统
CN104317864A (zh) 一种基于iec61850逻辑节点的信息模型自动识别的方法
CN102375827A (zh) 一种对版本化的电网模型数据库进行快速加载的方法
CN114048204A (zh) 基于数据库倒排索引的北斗网格空间索引方法和装置
CN113762724A (zh) 一种基于bim技术协同设计和管理输变电工程的方法
CN112395721A (zh) 一种适用于配电网的快速绘图建模方法
CN106503811A (zh) 一种基于大数据的基础设施全生命周期管理方法
CN111897971A (zh) 一种适用于电网调度控制领域的知识图谱管理方法及系统
CN107146165B (zh) 一种配网规划数据管理方法及系统
CN105426601A (zh) 一种基于bim的多样性设计方案汇报方法及其系统
CN114443656A (zh) 一种可定制的自动化数据模型分析工具及其使用方法
CN113722564A (zh) 基于空间图卷积能源物资供应链的可视化方法及装置
CN118152393A (zh) 基于wbs的bim模型管理方法、装置、电子设备和存储介质
CN101430731A (zh) 基于二维表的产品族可视化设计和产品配置的方法
CN107480364B (zh) 工程建设信息管理的bim模型动态组织方法
CN116431611A (zh) 一种基于自定义规则的自动化数据处理模块开发方法
CN115982177A (zh) 一种基于树形维度的数据归集的方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination