一种基于能量模型的单线图分块布局算法
技术领域
本发明涉及配电网单线图自动成图技术的研究,更具体地说是一种基于能量模型的单线图分块布局算法。
背景技术
目前配电网线路自动成图方向的研究较多,专利号CN201910735786.4通过对单线图线路模型信息解析后,依据拓扑结构模型,将单线图进行绘制。专利号:CN201310047788.7获取拓扑模型的关键节点后,通过引力-斥力模型对关键节点进行布局,对配网单线图线路进行重新成图。专利号:CN201710000981.3从电网地理信息系统中获取设备馈线信息,将数据保存至内存数据库中进行增量数据自动成图。
配网线路较为复杂,目前对单线图布局算法研究较多,通过对单线图拓扑模型进行解析后,使用不同的布线、布局算法对单线图进行自动成图,部分算法对于纯架空线路或者纯电缆线路可以达到良好的布局效果,但对包含架空和电缆的复杂混合线路依然无法解决线路重叠率及美观性问题,导致一线工作人员在使用配网线路图纸进行运维时难度较大,不能满足现场的实际使用需求。
发明内容
为了克服现有技术的上述缺陷,本发明提供一种基于能量模型的单线图分块布局算法。
为实现上述目的,本发明提供如下技术方案:
基于能量模型的单线图分块布局算法,包括如下步骤:
步骤1:解析PMS系统上传的图模文件,获取线路拓扑结构及设备模型信息;
步骤2:通过使用能量模型计算线路两节点间的距离,具体计算公式为:
弹簧模型:
节点i和j,用d(i,j)表示两个点的欧式距离,s(i,j)表示弹簧的自然长度,k是弹力系数,r表示两个点之间的静电力常数,w是两个点之间的权重。
能量模型:
步骤3:依据拓扑结构,依次对线路进行布局,架空线路采用正交布局,环网柜线路采用层次布局。
其具体步骤为:
e)深度优先遍历获取有权树最大长度及最长线路节点列表,缓存最大长度线路坐标;
f)根据线路拓扑节点子节点个数判断节点是否含有支线;
g)采用正交布局方式判断支线方向,如果支线在正交方向上不满足要求,则移动支线,缓存支线坐标;
h)判断布局节点设备类型,如果为架空节点,依据架空线路间图元距离、父节点坐标计算当前结点坐标,如果为电缆线路节点,采用层次布局,对环网柜线路进行布局。布局完成后计算是否相交,相交则移动环网柜,将层级结构矩形框四个边坐标进行缓存。
通过上述步骤对复杂配电网线路进行布局,将线路类型进行区分后分别布局。
步骤4:统计布局完成后线路设备节点,与线路模型文件中设备节点进行对比,如果设备节点均相同,则布局成功,如果存在差异,则布局失败,展示失败节点内容。
所述步骤1中:系统上传的图模文件的图模信息包括10KV配网单线图SVG图形信息与XML设备及线路模型信息;通过对SVG及XML文件进行智能解析,获取整个单线图的线路拓扑信息、设备台账信息、设备资产信息、线路联络信息。
所述在步骤2中:为了保证单线图自动成图的准确性,满足实用化使用需求,该实例中,对智能识别后的信息进行数据清洗,保证线路布局过程中不存在垃圾数据,提升线路准确率;
依据模型文件中当前线路编号,将非当前线路设备进行过滤,并在不影响整体线路拓扑情况下增加部分虚拟节点对线路进行数据建模,保证成图美观性;具体方法为:
S21:对非当前线路数据进行清洗
通过对当前线路的线路编号、变电站等信息进行提取,将线路设备及线路拓扑关系中不属于当前线路的设备进行剔除;
S22:对线路重新进行数据建模
对清洗后的线路数据依据变电站为起点,以线路设备为节点组建单线图多叉树模型,树状模型数据结构为:
线路节点数据结构包含当前结点的编号(data),当前结点与父节点间连接线编号(lineID),当前结点的子节点列表(childNodes)及当前结点的父节点(parentNode)。通过对多叉树模型的组建,以变电站节点为树根节点,依次组建线路多叉树模型,直至拓扑到线路末端。
所述步骤3中:为能够满足对复杂线路进行成图时保证复杂单线图无重叠交叉,依据复杂线路的拓扑模型及设备类型,通过能量模型计算两图元间距离,依据线路图元类型划分为架空线路及电缆线路;对不同线路类型进行布局,架空线路采用正交布局,保证架空线路整体为横平竖直状态;电缆线路采用层级布局方式,保证线路层次结构;其中:
a、依据拓扑模型,对架空线路进行正交布局:
依据拓扑模型,通过能量模型计算两个图元间距离,然后对有权树进行深度优先遍历,计算最长支线,将该支线坐标进行缓存;依次对线路节点进行布局,当节点子节点数量大于2时,说明该节点具有支线,计算支线最大长度及当前节点方向,将支线进行正交化处理,计算支线与已缓存支线是否相交,如果某一方向不相交,则将该直线确定为当前方向,如果支线在正交方向上均相交,将支线进行移动;
b、对环网柜采用层次结构布局
在拓扑结构中存在环网柜节点时,计算含有环网柜节点的长度,计算环网柜支线与已缓存支线是否相交,如果不相交则依据该方向进行布局,环网柜布局时,依据该环网柜的出线节点,依次对环网柜出线节点的设备进行布局,计算出环网柜坐标,环网柜布局完成后,将层次布局的矩形框缓存至支线坐标列表中;保证后续节点不与环网柜进行相交。
所述步骤4中:对布局后图形文件重新解析,获取整个线路的设备节点信息,将节点列表缓存至内存,通过对线路布局前后的线路列表进行对比,校验线路布局是否成功,其具体步骤为:布局完成后,将已布局节点进行统计,将已布局节点与读取线路时获取的单线图节点进行对比,对单线图节点进行校验,如果已布局节点与单线图节点相同,则说明布局成功,如果不相同,则说明布局存在问题,将问题节点进行反馈。
本发明的技术效果和优点:采用基于能量模型的单线图分块布局算法,通过对PMS上传的线路拓扑模型及设备模型信息进行识别后,使用能量模型计算两个节点间距离,采用深度优先遍历计算有权树最大长度作为支线,依据拓扑节点类型将线路划分为架空线路及电缆线路,对不同线路类型节点进行处理,并在处理前计算线路是否相交,从而大大降低线路重叠率。在完成线路布局后,统计布局后线路设备信息与布局前设备信息,对布局进行校验,该发明不仅可以处理复杂的配电网线路,对于一般线路处理效果更好。
附图说明
图1是本发明实施例中基于能量模型的单线图分块布局算法流程图;
图2是本发明实施例中基于能量模型的单线图分块布局算法结构图;
图3是多叉树模型示意图;
图4是正交化布局示意图;
图5是环网柜布局示意图;
图6是环网柜矩形边示意图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1和图2所示基于能量模型的单线图分块布局算法的流程图。该方法包括:
S10:单线图图模信息智能识别。
图模信息包括10KV配网单线图SVG图形信息与XML设备及线路模型信息。
该实施例中,通过对SVG及XML文件进行智能解析,获取整个单线图的线路拓扑信息、设备台账信息、设备资产信息、线路联络信息等。
其具体步骤为:通过对PMS系统上传至配电自动化系统的模型XML文件和图形SVG文件进行解析,将解析后的信息分别缓存至内存中。内存缓存信息包括线路拓扑信息、设备台账信息、设备资产信息、线路联络信息等。
例如,(useID,设备列表)。useID设备节点编号,设备列表为当前设备所关联的设备列表集合。通过list进行缓存。例如(useID_1,useID_2,useID_3...useID_n),表示设备ID为useID_1的节点与useID_2、useID_3...useID_n的设备相连。
通过单线图图模智能识别获取设备的台账信息、拓扑信息、资产信息、线路联络信息等。
S20:数据清洗与数据建模
为了保证单线图自动成图的准确性,满足实用化使用需求,该实例中,对智能识别后的信息进行数据清洗,保证线路布局过程中不存在垃圾数据,提升线路准确率。
依据模型文件中当前线路编号,将非当前线路设备进行过滤,并在不影响整体线路拓扑情况下增加部分虚拟节点对线路进行数据建模,保证成图美观性。具体方法为:
S21:对非当前线路数据进行清洗
通过对当前线路的线路编号、变电站等信息进行提取,将线路设备及线路拓扑关系中不属于当前线路的设备进行剔除。
例如:在线路A单线图中共解析出N个设备,当前线路ID为LineID_1,通过对N个设备的所属线路节点(EquipmentContainer)进行过滤,获取当前线路的设备数为N-m个。
通过对线路数据进行清洗,将不存在当前线路的设备进行删除,保证所有设备均属于当前线路。
S22:对线路重新进行数据建模
该实施例中,对清洗后的线路数据依据变电站为起点,以线路设备为节点组建单线图多叉树模型,树状模型数据结构为:
线路节点数据结构包含当前结点的编号(data),当前结点与父节点间连接线编号(lineID),当前结点的子节点列表(childNodes)及当前结点的父节点(parentNode)。通过对多叉树模型的组建,以变电站节点为树根节点,依次组建线路多叉树模型,直至拓扑到线路末端。
例如,对于线路上相连的两个节点Node1、Node2,且Node1的子节点为Node2,则Node2的数据结构为:
S30:依据线路拓扑和文本信息,对线路设备节点进行布局。
该实施例中,为能够满足对复杂线路进行成图时保证复杂单线图无重叠交叉,依据复杂线路的拓扑模型及设备类型,通过能量模型计算两图元间距离,依据线路图元类型划分为架空线路及电缆线路。对不同线路类型进行布局,架空线路采用正交布局,保证架空线路整体为横平竖直状态。电缆线路采用层级布局方式,保证线路层次结构。
S31:依据拓扑模型,对架空线路进行正交布局
依据拓扑模型,通过能量模型计算两个图元间距离,然后对有权树进行深度优先遍历,计算最长支线,将该支线坐标进行缓存。依次对线路节点进行布局,当节点子节点数量大于2时,说明该节点具有支线,计算支线最大长度及当前节点方向,将支线进行正交化处理,计算支线与已缓存支线是否相交,如果某一方向不相交,则将该直线确定为当前方向,如果支线在正交方向上均相交,将支线进行移动。
例如,图3为单线图树状模型关系图,通过对有权树的深度优先遍历,获取树的最深节点列表为T1、1、3、5、6、7、8、9、11,使用迭代方式对每个节点进行布局,在布局节点1时,节点1含有3个子节点,但节点3已在深度节点列表中,只对节点2与节点4进行正交布局,正交布局思想为其余节点布局方式与当前结点所在支线成正交叉方向,如节点1所在直线方向为横向,则节点2、节点4的布局方向为纵向。依次对节点2、节点4进行深度优先遍历,获取最大节点列表,节点2最大节点列表为2,节点4最大节点列表为4、13、15、17,判断最大节点列表首尾坐标不与其他线路相交,则直接对节点2、节点4进行布局。依次使用迭代完成整个线路布局,布局完成后线路图如图4所示。
S32:对环网柜采用层次结构布局
在拓扑结构中存在环网柜节点时,计算含有环网柜节点的长度,计算环网柜支线与已缓存支线是否相交,如果不相交则依据该方向进行布局,环网柜布局时,依据该环网柜的出线节点,依次对环网柜出线节点的设备进行布局,计算出环网柜坐标,环网柜布局完成后,将层次布局的矩形框缓存至支线坐标列表中。保证后续节点不与环网柜进行相交。
例如:线路中存在环网柜1,环网柜1下含有环网柜2、环网柜3、环网柜4等子节点,则对环网柜组的布局方案如图5所示,以环网柜1的左侧节点坐标为2层节点的起始坐标,每个环网柜的间距设定为定值。在布局完成后,以环网柜1的左上角坐标为起始坐标,如图6,以环网柜4右下角节点为终点坐标,将此矩形4个边加入到以缓存线路列表中,防止环网柜与其他线路相交。
S40:对布局后的线路进行设备校验
对布局后图形文件重新解析,获取整个线路的设备节点信息,将节点列表缓存至内存。
该实施例中,通过对线路布局前后的线路列表进行对比,校验线路布局是否成功。
其具体步骤为:
布局完成后,将已布局节点进行统计,将已布局节点与读取线路时获取的单线图节点进行对比,对单线图节点进行校验,如果已布局节点与单线图节点相同,则说明布局成功,如果不相同,则说明布局存在问题,将问题节点进行反馈。
例如,当前线路中设备节点总数为N个,布局完成后的线路节点总数为M个,如果N不等于M,则判断节点布局不成功,否则,对线路节点列表进行对比,如果布局前后节点列表相同,则说明布局成功,否则输出问题节点列表。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。