您的位置:首页 > 其它

基于FO图形库实现电网动态拓扑着色研究与分析

2016-06-05 10:17 399 查看

1概述

       电网动态拓扑着色是一种电力系统高级应用系统,拓扑分析是电力专业的重要组成部分,是电力自动化分析的基础,它直接反映了自动化系统的电力设备建模,提供了系统的实时运行网络结构,并可以以动态着色的方式,给用户提供一种直观的方式来了解系统的运行模式。

2数据结构

       拓扑分析本质上就是分析设备之间的连接关系,在此基础上形成设备之间的电气连接关系。而电力系统中设备(尤其是开关设备)的状态(开合等)是不断变化的,这就造成设备之间的电气连接关系是不断变化的。如何建立适应电力系统这种特点的数据结构就成为了关键所在。

       理论上利用基本数据结构(数组、队列、栈等)和动态数据结构(链表、树、图等)都可实现拓扑分析,但由于连接关系不断变化的特点,很显然动态的数据结构更适合进行拓扑分析。

       链表是最常用的动态数据结构,根据其中对象的左链域和右链域(双重链表)就可表达系统中与某个设备相连的左设备和右设备。

3名词定义

3.1 定义:Node(连接点,端子)

      连接点作为一个基础图形或者组合图形的端点,作为被设置的图形一部分图元。用连接线可以把不同图形的之间端点实现关联,并且放置停靠点的图形移动时,连接线相应地跟着移动。

3.2 定义:Link(连接线)

       用于连接端点的线段,不可以自反连接。连接线具有方向性。端口图形通过连接线相连,一个端口图形作为连接线的起点端子,另一个端口图形连接线的终点端子。

3.3 定义:From,To(图形连接方向)

       From方向表示从图形本身出发指向邻居目标图形所连接的路径,To方向表示从邻居图形指向本身图形所连接的路径。

 


图3.3-1 FROM方向
 


图3.3-2 TO方向
 


表3.3-3 本文规范电力设备方向

3.4 定义:Source(源)

       Source主要由电力设备和隔离刀闸串联一起所形成的分支链路,Source只是虚拟的分支链路,不包括连接线和连接点端子。它内部的电力设备的分合能够决定相应的另一侧母联供电状态。

       如果Source是母线电源的输入流,那么该Source是母线的From分支;如果母线是Source电源的输入流,那么该Source是母线的To分支。


 
图3.4 接线图中各种分支布局
Trunk1母线From方向的源:
l  Source1:断路器,隔离刀闸。

Trunk2母线From方向的源:

l  Source3: 隔离刀闸,断路器,变压器,小车,断路器。

Trunk1母线To方向的源:
l  Source2:隔离刀闸。

3.5 定义:Trunk(母线)

      Trunk用于输入各个分支进线并向其他支路输出电压的导线。Trunk与Trunk之间以Switch隔离刀闸和Break断路器开关接通,主要包括1个断路器,2个隔离刀闸,2个接地刀闸组合而成。

 


图3.5-1 Trunk母线
1)Trunk与Branch映射关系:
      拓扑算法初始化时,Trunk将与Branch形成MAP映射关系。
 


图3.5-2 Trunk1(Branch1-1,Branch1-2), Trunk2(Branch2-1)
 

3.6 定义:Bridge(母联开关)

       Bridge用于连接两条母线的电力设备。我们规定Bridge最终收敛两条Trunk母线,也即两条Trunk母线之间连接的终点是Bridge,相互之间不允许跨界。

 


图3.6 Bridge

3.7 定义:Switch-1(母联隔离刀闸)

      Switch-1母联隔离刀闸用于连接两条母线的电力设备。这类刀闸的分合会改变上游或下游的电路带电状态。

 


图3.7-1 Switch-1
1)Bridge与switch映射关系:
      拓扑算法初始化时,Bridge将与switch-1形成MAP映射关系。
 


图3.7-2 Bridge(switch1,switch2)
2)Bridge与trunk映射关系:
      拓扑算法初始化时,Bridge将与trunk形成MAP映射关系。
 


图3.7-3 Bridge(Trunk1,Trunk2)

3.8 定义:Switch-2(接地刀闸)

      Switch-2接地刀闸常与断路器配套使用的电力设备。这类刀闸的分合不会改变上游和下游的电路带电状态。
 


图3.8 Switch-2
 

3.9 定义:Car(小车)

      Car小车用于隔离两端接线的电力设备。小车推进,与电源端接通;小车拉开,与电源端分离。这类设备的分合会改变的电路带电状态,它通常与断路器开关配套使用。

 


图3.9 Car

3.10 定义:Break(断路器开关)

       Break断路器开关用于隔离两端接线的电力设备。倒闸与电源端接通;拉闸与电源端分离。这类设备的分合会改变的电路带电状态,它通常与小车配套使用。

 


图3.10 Break

4 FO图形库链路函数

4.1 GetAllFromLinks

int GetAllFromLinks(CFODrawShapeList &listLinks )

Return a list of links that from this shape Return the link lines this---->,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listLinks
Specifies A Value.
Remarks
Returns the specified value.
 


图4.1 GetAllFromLinks关系

4.2 GetAllLinkFromShapes

int GetAllLinkFromShapes(CFODrawShapeList &listShapes )

Get all shapes that links that from this shape. Return node shapes this---->,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listShapes
Specifies A Value.
Remarks
Returns the specified value.
 


图4.2 GetAllLinkFromShapes关系

4.3 GetAllLinks

int GetAllLinks(CFODrawShapeList &listLinks )
Return a list of links that links with this shape Return the link lines ---->this---->,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listLinks
Specifies A Value.
Remarks
Returns the specified value.


 
图4.3 GetAllLinks关系

4.4 GetAllLinkShapes

int GetAllLinkShapes(CFODrawShapeList &listShapes )

Get all shapes that links with this shape. Return the node shapes's count. ---->this---->,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listShapes
Specifies A Value.
Remarks
Returns the specified value.
 


图4.4 GetAllLinkShapes关系

4.5 GetAllLinkToShapes

int GetAllLinkToShapes(CFODrawShapeList &listShapes )

Get all shapes that links that to this shape. Return node shapes. ---->this,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listShapes
Specifies A Value.
Remarks
Returns the specified value.
 


图4.5 GetAllLinkToShapes关系

4.6 GetAllToLinks

int GetAllToLinks(CFODrawShapeList &listLinks )

Return a list of links that to this shape Return the link lines ---->this,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listLinks
Specifies A Value.
Remarks
Returns the specified value.
 


图4.6 GetAllToLinks关系

4.7 GetShapesLinked

int GetShapesLinked(CFODrawShapeList &listShapes )

Returns a list of all node shapes that links together 1---->2----->this----->1--->2 Returns all node shapes that linked from or to here. listShapes -- list of shapes.,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listShapes
Specifies A Value.
Remarks
Returns the specified value.
 


图4.7 GetShapesLinked关系

4.8 GetShapesLinkedFrom

int GetShapesLinkedFrom(CFODrawShapeList &listShapes )

Retrieve node shapes that are linked from this shape. this----->1--->2 Return the nodes that linked from here listShapes -- list of shapes.,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listShapes
Specifies A Value.
Remarks
Returns the specified value.


 
图4.8 GetShapesLinkedFrom关系

4.9 GetShapesLinkedTo

int GetShapesLinkedTo(CFODrawShapeList &listShapes )

Retrieve node shapes that are linked to this shape. 1---->2----->this Return the nodes that linked to here. listShapes -- list of shapes.,
This function is a public member of class CFODrawPortsShape, you can visit it freely.
This member function is also a virtual function, you can Override it if you need,
Defined in: FODrawPortsShape.cpp
Return Value
Returns a int type value.
See Also
CFODrawShapeList &listShapes
Specifies A Value.
Remarks
Returns the specified value.
 


图4.9 GetShapesLinkedTo关系

5拓扑过程分析

 


图5 简化的模型区域
     如图3.4所示,拓扑关系中的设备和导线很多,关系也比较复杂,下列具体描述了接线图左侧内部设备清单:
1)       
Source1内部连接的电力设备:
Break(进线开关),Switch-2(接地刀闸),Switch-1(隔离刀闸);
2)       
Trunk1内部连接的电力设备:
Source1(进线),Source2(母联),Source3(出线);
3)       
Bridge1内部连接的电力设备:
Switch-1(左侧隔离刀闸),Switch-2(左侧接地刀闸);
Switch-1(右侧隔离刀闸),Switch-2(右侧接地刀闸)。
4)       
Source2内部连接的电力设备:
Switch-1(隔离刀闸),Switch-2(接地刀闸),Break(开关),Car(小车),Break(开关)。
         上述每个电力设备的开关的分合,都会对另一侧或上下游的电路的分合产生影响。为了有利于我们拓扑程序分析过程简洁化,建立如图4的三种模型区域:源区域,母线区域,母联开关区域。

       图形与图形之间的连接关系,可能出现首尾相连的情况。为了避免在拓扑过程中出现的死循环,尤其是递归过程,我们为每个图元对象定义一个“visit”布尔型的标志位。遍历之前,首先把图形的“visit”标志位清空“false”,当遍历到此图形时,标志位置位“true”。遍历过程中判断此时的图形是否被访问过,图形访问标志为“false”,过程继续,否则中断返回。

5.1 建立拓扑关系

       我们分析电力系统的设备,可以认为每种设备都有一个或多个端子,因此将它们分为单端元件、两端元件和多端元件:

1)单端元件:并联电容器、负荷、发电机

2) 两端元件:导线、开关、刀闸

3) 多端元件:母线、变压器

       两个设备相连则表示它们之间的一对端子连接在一起。连接在一起的端子形成一个连接点,称之为节点(Node)。系统中任何一个设备(除孤立设备外)都会与一个或多个节点连在一起。我们就可以根据设备与节点之间的关系得到整个系统的拓扑连接。考虑图的数据结构,节点就表示为图中的顶点,与节点相连的设备就表示为图中与顶点相连的边。

       分析电力系统中的设备,还可以得到以下的特点:只有开关(包括刀闸)具有开合的特点,而导线、变压器、母线等都只有连通的特点。实际上,正是由于开关的分合造成电力系统的电气连通关系改变。因此,将电力系统中的设备归为两类:开关设备与支路设备。在程序中相应地形成两个表:节点开关表和节点支路表。根据这两张表,对于任何节点就可搜索到与之相连的设备。

       进行拓扑分析时,根据设备的实时状态,从发电机(或者是电源点母线段)开始进行搜索,利用节点开关表和节点支路表,将通过支路相连的设备和闭合的开关连接的设备归纳一起形成电气岛(Island)。

       进行电气岛着色时,根据电气岛的划分,每个电气岛内的设备的电气状态是一样的,无论是带电与否还是故障、检修等。着色过程中唯一不同的是环网状态,在着色时对环网设备进行了特殊处理。

1) 环网、设备电气方向的判断

      根据各个设备相连的节点离电源的层次判断。从电源点(层次为0)开始向下搜索设备,每经过一个设备(如是开关设备,必须为合状态),节点层次加一,根据设备两端节点的层次号大小可以得到设备的电气方向以及环网与否。

2) 检修、故障的判断

      根据设备上挂检修牌和故障牌来处理,如果某电气岛内有检修牌或故障牌,则电气岛内每个设备的状态都置为检修状态。

3)接地的判断

      根据接地刀闸的状态和是否有接地牌来判断。如果某电气岛内有一个接地刀闸为合状态或有接地牌,则电气岛的状态为接地。

4)开关设备的五防检查

      分析电气岛的电气状态时,同时进行开关的五防检查。检查方法就是假设人工要操作开关:即原来为分的开关假设为要闭合,原来为合的开关假设为要断开,判断操作的可行性。主要判断以下几方面:带电合地刀、开关合于故障、开关合于接地区、开关合环、在刀闸闭合之前合开关、刀闸合于故障、刀闸合于接地区、刀闸合环、带负荷合闸、带负荷拉闸。

5.2 电力设备带电状态分析

       Source的电源带电状态由外部提供,其电源端电压要在电压等级区间。Source内部任何电力设备的分/合,将引起整个Source的分/合。Link连接线本身属于电力设备,它本身不参与分合,由其他电源端和电力设备的状态来决定自己是否带电。

 


图5.1 开关合闸前可能状态

5.2.1 Source1满足带电条件:

1)   Source1区域带电,Bridge1区域断电(该电路闭合将短路);

2)   Source1区域断电,Bridge1区域带电,Source2区域带电。

3)   Source1区域断电,Bridge1区域断电,Source2区域带电,Source4区域带电,Bridge2区域带电。(该电路形成环网)

5.2.2 Source2满足带电条件:

1)   Source2区域带电,Bridge1区域断电(该电路闭合将短路);

2)   Source2区域断电,Bridge1区域带电,Source1区域带电;

3)   Source2区域断电,Bridge1区域断电,Source1区域带电,Source3区域带电,Bridge2区域带电。(该电路形成环网)。

5.2.3 Source3满足带电条件:

1)   Source1区域带电,Bridge1区域断电;

2)   Source1区域断电,Bridge1区域带电,Source2区域带电,Bridge2区域断电;

3)   Source1区域断电,Bridge1区域断电,Source2区域带电,Source4区域带电,Bridge2区域带电。

5.2.4 Source4满足带电条件:

1)   Source2区域带电,Bridge1区域断电;

2)   Source2区域断电,Bridge1区域带电,Source1区域带电,Bridge2区域断电;

3)   Source2区域断电,Bridge1区域断电,Source1区域带电,Source3区域带电,Bridge2区域带电。

5.2.5 Bridge1满足带电条件:

1)   Trunk1区域带电,Bridge1左侧的隔离刀闸合,Trunk 2区域断电;

2)   Trunk2区域带电,Bridge1右侧的隔离刀闸合,Trunk 1区域断电。

5.2.6 Bridge2满足带电条件:

1)   Trunk3区域带电,Bridge2小车推进,Trunk4区域断电;

2)   Trunk4区域带电,Bridge2小车推进,Trunk3区域断电。

5.3 电力开关由OFF转向ON

       当电力开关(或刀闸,以下不再说明)准备合时,首先判断自己的状态是否为OFF,如果本身已经是合状态,操作将不再继续,提前结束。判断电力设备是否带电条件,查看与它所有连接线的状态,即From和To两个方向的电力线。

       当电力开关满足合闸条件时,电力开关作为源头,通过连接线的链表关系顺流方向(From)找到下一个电力设备图形(断路器,刀闸,连接线等),如果下一个电力设备是连接线,那么直接改变连接定义的拓扑颜色。此时,如果下一个电力设备状态为合,那么直接重复相同的过程顺流下去,无论该设备是否为单向性还是双向性,都要逆流到另一个电力设备。

       From和To电流方向流动趋势存在递归的可能,此过程采用数据结构中两种思想:先“深度优先”,再“广度优先”。

       总体而言,电力开关的“合”遵循两种递归算法,其中逆流的过程内会调用顺流的过程。

 
图5.3 OFF->ON转换的流程图(省略)

5.4 电力开关由ON转向OFF

       电力开关的状态由合转向分,过程要比4.3的过程复杂很多。

       当电力开关准备分时,首先判断自己的状态是否为ON,如果本身已经是分状态,操作将不再继续,提前结束。同样,判断电力设备是否带电条件,查看与它所有连接线的状态,即From和To两个方向的电力线。连接线都不带电,说明两侧母线全部失电,或者两边刀闸全部关闭,就可以直接分闸。任何开关的分合主要围绕着母联区域和源区域,其他输出开关或接地刀闸不会影响电路分合(非法操作除外)。

5.4.1当前开关是Birdge上的母联开关:

         省略。

5.4.2当前开关是母线输入端的开关:

省略。

5.4.3当前开关是母线输出端的开关:

省略。

5.4.4当前开关是其他输出开关或接地刀闸:

省略。

 
图5.4 ON->OFF转换的流程图(省略)

5.5 动态拓扑验证

    省略。

6总结

      按照常规的拓扑关系,仿照图3.4绘制方法,简单地设置分支和母线上电力设备对象属性,整个拓扑布局就全部结束。整个算法简洁,不依赖关系数据库,也不依赖拓扑计算进程。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: