2. 南京南瑞信息通信科技有限公司, 南京 211106
2. NARI Group Corporation Information & Communication Technology Co. Ltd., Nanjing 211106, China
电网拓扑数据[1]记录了电网网络拓扑结构, 既包括厂站内设备连通关系, 又包含厂站线路连通关系, 并在此基础上产生了海量的电网运行数据. 电网拓扑数据是整个电网运行中营、配、调等业务管理的基础数据, 对这些数据进行高效分析极大地支撑了电网营、配、调的实际业务应用. 电力系统拓扑分析[2]的主要目的是根据电网开关元件的状态来归并用于分析计算的逻辑节点, 以及识别相互孤立的子系统. 不少文献直接利用深度优先搜索[3]和广度优先搜索[4]、因果映射[5]、关联矩阵[6]和基于节点融合生成全部树[7]等方法来进行拓扑连通性分析. 文献[8-10]提出了基于图像数据库的拓扑分析. 上述文献为本文提供了基础研究方法和成果,遗憾的是这些工作仅支持CIM标准的模型数据, 并不支持调控云平台的面向对象的结构化标准模型数据, 调控云平台的设备模型、设备物理连接点号及拓扑模型按照面向对象的结构化建模方法设计, 其中设备模型是基于元数据的通用数据对象建模和存储, 连接点号按厂站ID+电压等级+设备编号的规则结构化存储, 拓扑模型分区域、分类型存储全网设备的连接点号. 此外, 上述工作目前只支持相互孤立的拓扑孤岛分析而不支持供区分析应用.
近年来, 随着调控云平台的不断建设和完善, 模型数据云平台中存储了电网模型及拓扑数据, 这也为电网供区分析提供了基础数据支撑. 不同于之前的工作, 调控云实现了电网模型的对象化定义及存储. 文献[11]提出调控云整体框架并对调控云应用进行展望. 基于上述工作, 文献[12]提出面向调控云的电力调度通用数据对象结构化建模方法及其应用. 文献[13]提出了基于调控云的电网模型数据纵向互联和信息共享的研究, 文献[14]提出基于调控云的服务多用户按需使用的网络分析应用服务模式, 文献[15]介绍了调控云的电网模型数据的管理策略. 上述文献[11-15]为本文提供了基础研究方法和成果, 遗憾的是暂未研究调控云模型数据云平台中电网供区分析的相关工作. 因此在调控云的大背景下, 需要一种支持调控云模型的电网供区分析方法. 本文主要贡献如下:
(1)提出了调控云电网供区分析模型, 包括调控云设备模型、拓扑网络模型、节点模型和边模型及供区模型;
(2)提出一种基于调控云模型的电网供区分析方法, 包括厂站母线分组分析、母线直供线路分析、母联断路器分析及电网供区分析;
(3)通过全息电网接线图展示应用对本文提出的方法进行实用化验证.
2 基于调控云的电网供区模型 2.1 调控云模型在调控云模型中, 一次设备称为厂站内部元件,包括单端点元件(如母线、接地刀闸、发电机、并联电容、并联电抗等)、双端点元件(如断路器、隔离开关、交流线路等)或可等值为多个双端点元件的多端点(如变压器等). 在由若干元件连成的区域中, 不包含任何输电线路元件的整体区域称为厂站. 每个输电线路元件的2个端点属于2个不同的厂站. 为了有效地支持电网拓扑分析, 调控云模型(DCloudDeviceModel)可以定义成一个多元组<设备ID (deviceId), 设备对象编码(objectCode), 设备名称(deviceName), 设备电压等级(voltageType), 所属厂站(stId), 所属厂站名称(stName)>, 其中设备对象编码包括母线(1301)、断路器(1321)、隔离开关(1322)、接地刀闸(1323)等.
2.2 调控云拓扑网络在电网拓扑分析中, 将电气单端点元件映射为顶点, 双端点映射为边. 此时, 电网拓扑分析实际上是一个拓扑网络多次连通性判断问题. 为了有效地支持电网拓扑分析, 调控云拓扑网络定义成一个无向图, 即一个节点和边组成的集合. 每个节点和边都有自己的属性, 具体定义规则如下:
(1)节点(DCloudTopologyNodeModel)定义成一个多元组<节点号(nodeId), 关联模型信息列表(relatedDeviceInfoList), 厂站ID (stId) >.
(2)边(DCloudTopologyLinkModel)定义成一个多元组<设备ID (deviceId), 首端节点号(firstNodeId), 末端节点号(secondNodeId), 关联模型信息(relatedDeviceInfo), 厂站ID (stId), 是否断开(isClose)>.
2.3 调控云供区模型按照 CIM 术语, 电网拓扑分析就是将厂站内单端点元件(如母线、接地刀闸、发电机、并联电容、并联电抗等)所组合成的拓扑节点集合, 再根据网络中双端点元件(如断路器、隔离开关等)所组合成的拓扑边及边的合(CLOSE)/开(OPEN)状态, 将有连通的拓扑节点和边归并到一个拓扑岛中. 理论上该拓扑岛中的节点和边所对应的模型具备相同电压等级, 且来自于不同电压等级的厂站, 此时高电压等级(比如500 kV)的厂站就为低电压等级(比如220 kV)的厂站提供电源点, 这个拓扑岛就被称为整个电网中的一个的供区. 因此, 调控云供区模型(AreaInfoModel)可以定义成一个多元组<供区名称, 供区电压等级, 最高电压等级站信息列表, 厂站及站内母线信息列表, 厂站及站内母线分组及母线直连线路列表>. 其中, 供区名称通常取最高电压等级厂站的名称.
3 电网供区分析由于深度优先算法、广度优先算法、Dijkstra算法等属于图论的经典算法, 本文这里不再赘述, 下面主要细述调控云电网拓扑数据上的供区应用分析.
3.1 厂站母线分组分析同一个厂站内, 两条相同电压等级的母线之间通常都设置母联断路器, 如果此断路器断开, 两条相同电压等级的母线就解列运行. 此时, 同一厂站内的两条母线会给不同的供区提供电源点, 即厂站分裂运行. 厂站的分裂形式, 具体表现为站内母线的成组情况, 母线成组分析具体算法CalculateBusBarGroup(stId,voltagetype)如下:
(1)根据厂站和电压等级, 获取厂站内该电压等级所有的母线列表;
(2)针对每一对母线组, 判断两母线是否可达;
(3)如果两母线可达则加入到一个分组中, 即该两母线为同一个供区供电;
(4)如果两母线不可达则厂站发生分裂, 将两条母线分别加入不同的分组中, 即该两母线分别为不同的供区供电;
(5)重复(2)~(4), 直到所有的母线组都分析结束;
(6)返回母线分组.
其中, 判断两母线是否可达需要搜索遍历电网拓扑图, 为了提高分析效率, 增加约束条件如下:
(1)如果遍历的当前节点为目标端母线节点, 则返回false;
(2)如果遍历的当前节点对应设备的所属厂站与下一条出边对应设备的所属厂站不同, 则返回false.
如图1所示, 当#1母联和#2母联断路器处于“开”状态, 其他断路器和隔离开关都是“合”状态, 则正母I段和正母II段为一个母线组, 副母I段和副母II段为一个母线组.
3.2 母线直供线路分析
当厂站发生分裂时, 同一个厂站会为不同的供区供电, 为了可视化电网供区, 即厂站及线路连接关系, 需要根据厂站内母线找到该母线直供的线路, 即厂站经过该母线送点上网, 并通过直供线路输电供电. 根据厂站内母线ID获取其直供线路的具体算法CalculateBusDirectLineGroup(busbarId, voltageType)如下:
(1)根据母线获取所属厂站信息;
(2)根据厂站ID和电压等级, 获取母联断路器;
(3)根据厂站ID和电压等级, 获取该厂站连接的线路列表;
(4)在满足在同一厂站内, 只经过断路器或者隔离开关, 遍历拓扑网络, 得到母线和线路所有可达的路径列表;
(5)如果路径列表不为空, 且路径中包含非母联断路器的断路器, 则该线路为母线的之功线路, 否则不是;
(6)如果路径列表为空, 表示该母线和线路不可达;
(7)返回直供线路列表.
如图2所示, I母的直供线路为线路1, II母的直连线路为线路2.
3.2.1 母联断路器分析
母联断路器是两条母线电气联系的纽带, 如果母联断路器是合闸状态, 则母线并列运行, 如果母联断路器是断开状态, 则母线解列运行. 当母线并列运行的时候, 两条母线可以同时为各自直供的线路供电, 为了计算母线直供线路, 需要筛除那些经过母联断路器之后再上网的线路, 计算母联断路器的具体算法CalculateBusbarBreaker(stId,voltagetype)如下:
(1)设置该站内该电压等级所有的设备都是联通状态;
(2)找到该站内该电压等级所有的母线;
(3)针对每两个母线, 在满足在同一厂站内, 只经过开关或者刀闸, 遍历拓扑网络, 得到所有可达的路径列表;
(4)如果路径列表不为空, 且路径中包含断路器, 则该断路器为母联断路器.
其中, 步骤(3)中, 计算两条母线之间所有可达的路径需要搜索遍历电网拓扑图, 为了提高分析效率, 增加约束条件如下:
(1)如果遍历的当前节点为目标母线节点, 则返回false;
(2)如果遍历的当前节点是母线,且不是源端母线节点和目标端母线节点,则返回false;
(3)如果遍历的当前节点对应设备的所属厂站与下一条出边对应设备的所属厂站不同, 则返回false;
(4)如果遍历的当前节点对应设备既不是断路器也不是隔离开关, 则返回false.
如图3所示, I母和II母的母联断路器为#1母联.
3.3 电网供区分析
电网供区分析即根据供区电压等级与供区中最高电压等级的厂站电压等级的获取所有的电网供区列表. 供区分析算法伪代码如算法1所示.
算法1. CalculateAreaGroup(areavoltageType, maxvoltageType)
1. network = intililizeNetwork();
2. vector = findConnectedComponentVector(network);
3. for(i=0; i<vector.size(); i++){
4. HashSet<Node> nodeHashSet = vector.get(i);
5. for(DCloudTopologyNodeModel node: nodeHashSet){
6. if(node.relatedDeviceInfoList contains buabar
&& areaVoltageType == buabar.voltageType){
7. stidBusbarGroup.add(node.stId, buabar.deviceId);
8. CalculateBusDirectLineGroup(buabar.deviceId, buabar.voltage-Type);
9. CalculateBusBarGroup(stId, buabar.voltageType);
10. }
11. }
12. }
13. for(j=0; j<stidBusbarGroup.size(); j++){
14. st = stidBusbarGroup.get(i).key;
15. if(maxvoltageType == st.voltageType){
16. maxvoltagetypestidlist.add(st.stId);
17. areaName.add(st.stName);
18. }
19. }
具体算法步骤如下:
(1)首先, 初始化网络拓扑. 先将调控云模型表及拓扑表数据一次性从关系型数据库中加载到MongoDB内存数据库缓存中, 再从内存数据库缓存中初始化调控云拓扑节点和边, 并根据节点和边构造出调控云拓扑网络并基于该拓扑网络进行供区分析, 同时周期性的读取设备开或者关的实时状态并叠加到拓扑网络上.
(2)基于网络拓扑得到所有网络分组向量. 基于用户请求时的拓扑网络状态, 计算出该网络所有的联通子网向量, 每个向量中包括互相连接的节点和边;
(3)对联通子网向量进行供区分析. 针对每个子网向量判断所有的节点, 如果节点包含母线, 则取母线的电压等级作为该供区的电压等级. 判断每个节点的入边和出边, 获得入边和出边对应设备的所属厂站. 判断厂站的电压等级为最大电压等级, 则表示该厂站为该供区供电. 将其加入到供区的最高电压等级厂站信息列表中. 同时分析厂站及站内母线分组(厂站分裂)和直连线路情况. 如果一个站内有多个母线分组, 说明该供区里的厂站存在分裂.
(4)返回供区列表.
由上述步骤可知, 供区分析算法的复杂度主要取决于步骤(3)的计算复杂度, 步骤(3)中的计算通过结合传统深度优先的图遍历方法与电网的实际拓扑特性, 在搜索过程中进行可行性剪枝, 从而减少不必要的节点与边遍历进而提高分析效率. 供区分析算法的复杂度取决于电网拓扑图的存储结构, 当用邻接表存储时, 其时间复杂度为O(N+E), 空间复杂度为O(N). 在实际生产环境中, 如图4所示, 电网拓扑具备不同厂站通过线路互联互通, 同一厂站内相同电压等级通过母线互联互通, 不同电压等级通过变压器变压之后互联互通的特性. 因此在计算供区时, 对电压等级、所属厂站这些条件进行约束, 从而达到可行性剪枝的优化. 电压等级约束即供区中互联的设备均为相同电压等级, 比如计算220 kV的供区, 则厂站母线分组分析、母线直供线路分析、母联断路器分析过程中, 遍历电网拓扑发现电压等级非220 kV的节点或者边直接返回, 从而减少同一厂站内其他电压等级的节点或者边的搜索. 所属厂站约束即遍历电网拓扑过程中所搜索的节点或边属于同一厂站, 比如母联断路器分析过程中, 遍历电网拓扑发现其他厂站的节点或边直接返回, 从而减少其他厂站的节点或边的搜索.
4 实验验证本文以某地区电网的调控云真实厂站模型及拓扑数据作为实验对象. 该电网拓扑包含 491座厂站, 1337条线路, 3061条母线, 16055个断路器, 39971个隔离开关, 形成了 28108个拓扑节点和26452条拓扑边. 分别采用本文带有约束条件的方法和传统的深度优先的图遍历方法对该电网进行供区分析, 实验结果如图5及图6所示. 由图5和图6可见, 采用本文的方法时, 在进行供区分析时, 增加对拓扑节点和边的条件约束, 比如只允许在同一个厂站内、只能经过断路器或者隔离开关等等, 与传统的方法相比, 会大幅减少多余节点或者边的搜索时间, 从而缩短供区分析时间及减少内存分配字节数. 同时, 随着厂站或者母线个数的增加, 本文方法分析所需时间更少, 内存分配字节数更小, 优势更加明显.
此外, 本文采用Java语言开发了一套基于调控云模型的电网供区分析程序, 并应用到实际生产的应用中, 实际应用表明该方法不仅具有很高的效率, 而且具有很好的通用性. 下一节将简单介绍该应用.
5 系统应用在调控云的电网拓扑结构上, 叠加断路器、隔离开关的真实状态, 自动进行供区分析包括分析线路空充、厂站分裂运行等, 并基于开源图形组件实现电网供区信息的图形化展示, 即全息电网接线图.
全息电网接线图如图7所示, 每个供区展示了供区内的厂站、线路等信息, 同时分别用不同的颜色标记进行区分.
6 结束语
本文研究了基于调控云的电网供区分析技术. 定义了调控云供区分析数据模型, 设计了电网供区分析方法, 包括厂站母线分组分析、母线直供线路分析、母联断路器分析等. 为了评价该方法的有效性和效率性, 本文针对某地区电网的调控云真实数据进行实验分析. 分析结果表明, 与传统方法相比, 本文提出的方法分析效率更高. 同时, 利用本文所提出的方法实现了一套供区图形化展示应用, 可直观展示所有的供区信息.
[1] |
刘娜. 电网拓扑结构分析研究. 科技资讯, 2008(20): 14. DOI:10.3969/j.issn.1672-3791.2008.20.010 |
[2] |
梅念, 石东源, 段献忠. 基于图论的电网拓扑快速形成与局部修正新方法. 电网技术, 2008, 32(13): 35-39. |
[3] |
徐俊明. 图论及其应用. 2版. 合肥: 中国科学技术大学出版社, 2004.
|
[4] |
Yehsakul PD, Dabbaghchi I. A topology-based algorithm for tracking network connectivity. IEEE Transactions on Power Systems, 1995, 10(1): 339-346. DOI:10.1109/59.373954 |
[5] |
高晓萍, 阎欣, 单渊达. 一种基于因果映射的电力系统拓扑结构识别方法. 电力系统自动化, 1997, 21(11): 29-30. DOI:10.3321/j.issn:1000-1026.1997.11.012 |
[6] |
王湘中, 黎晓兰. 基于关联矩阵的电网拓扑辨识. 电网技术, 2001, 25(2): 10-13, 16. DOI:10.3321/j.issn:1000-3673.2001.02.003 |
[7] |
吴文传, 张伯明. 基于图形数据库的网络拓扑及其应用. 电网技术, 2002, 26(2): 14-18. DOI:10.3321/j.issn:1000-3673.2002.02.004 |
[8] |
蒋厚明, 孙昊, 孔震. 一种基于图形数据库的快速电力网络拓扑分析方法. 计算机系统应用, 2012(12): 173-176. DOI:10.3969/j.issn.1003-3254.2012.12.039 |
[9] |
周爱华, 裘洪彬, 高昆仑, 等. 基于图数据库的电网拓扑分析技术研究. 电力信息与通信技术, 2018, 16(8): 23-27. |
[10] |
李广野, 李伟, 王丽霞, 等. 基于图数据库的电网拓扑搜索引擎研究. 信息技术, 2019, 43(5): 155-158. |
[11] |
许洪强. 调控云架构及应用展望. 电网技术, 2017, 41(10): 3104-3111. |
[12] |
许洪强. 面向调控云的电力调度通用数据对象结构化设计及应用. 电网技术, 2018, 42(7): 2248-2254. |
[13] |
徐浩, 武毅, 董向明, 等. 基于调控云的电网调控数据信息共享的研究. 湖北电力, 2018, 42(5): 17-24. |
[14] |
王淼, 常乃超, 王磊, 等. 基于调控云的网络分析服务架构. 电网技术, 2018, 42(8): 2659-2665. |
[15] |
徐家慧, 寿增, 殷智, 等. 调控云电网模型数据管理策略. 中国科技信息, 2018(15): 84-86. DOI:10.3969/j.issn.1001-8972.2018.15.030 |