计算机系统应用  2021, Vol. 30 Issue (7): 41-49   PDF    
基于主干线/分支线模型的配网单线图自动生成方法
程伟, 彭森, 刘士进, 杨昇至, 杨文彬, 薛钧昶     
南京南瑞信息通信科技有限公司, 南京 211106
摘要:配网单线图是一种电气接线图, 其利用规定的图形符号和设备连线对配电网进行可视化, 能显著提高配网管理的效率. 针对配网单线图自动生成实际需要, 本文提供了一种基于主干线/分支线模型的配网单线图自动生成方法. 方法首先进行了主干线分支线的创建和分支布局方向的计算; 然后进行了分支初始布局和局部拉伸; 最后进行了分支局部收缩和自动布线. 经过验证, 基于主干线分支线模型的配网单线图自动生成方法, 能自动生成满足准确性、美观性等要求的单线图.
关键词: 单线图    主干线    分支线    自动生成    重叠交叉    局部收缩    
Automatic Generation Method of One-Line Diagram for Distribution Network Based on Trunk-Branch Line Model
CHENG Wei, PENG Sen, LIU Shi-Jin, YANG Sheng-Zhi, YANG Wen-Bin, XUE Jun-Chang     
Nanjing NARI Information & Communication Technology Co. Ltd., Nanjing 211106, China
Foundation item: Science and Technology Program of Nanjing NARI Information & Communication Technology Co. Ltd. (5246DR200013)
Abstract: The one-line diagram for a distribution network, as an electrical wiring diagram, uses the specified graphic symbols and equipment connections to visualize the distribution network, significantly improving the efficiency of distribution network management. Aiming at the actual needs for automatic generation of one-line diagrams for a distribution network, this paper provides an automatic generation method based on the trunk-branch line model. The method first creates the trunk line and branch lines and calculates the branch layout direction; then plans the initial branch layout and performs partial stretching; and finally enables branch partial contraction and automatic routing. It has been verified that this automatic generation method can automatically generate the one-line diagrams that meet the requirements of accuracy and aesthetics.
Key words: one-line diagram     trunk line     branch line     automatic generation     overlaps     partial contraction    

电气接线图是电网拓扑状态的可视化表示, 是电力系统运行管理不可或缺的图形资料[1,2]. 配电网是由许多配电线路构成的网格, 由从配电变电站出线至向用户供电的变压器、配电室以及中间配电线路等构成[3]. 配网单线图就是利用规定的图形符号和设备连线对配电网进行可视化的电气接线图. 随着我国电网业务迅猛发展, 对配电网管理也提出更高要求, 配网单线图作为配网管理的一种专题图, 能显著提高配网管理的效率. 手工绘制的单线图在用户自定义、绘制美观性等方面仍有优势, 但其绘制效率低下、不能及时根据拓扑数据更新图纸、很难及时发现绘制错误等问题也是不争事实[4-7]. 用计算机程序进行单线图自动绘制可有效解决以上问题[8-10].

常见单线图自动生成方法容易出现设备重叠, 在进行设备布局时未考虑布线是否方便往往会导致布线复杂、效率低、重叠交叉现象严重等问题[4,11]. 其中, 为了解决设备重叠问题又往往会导致设备间距不均、不对称等新问题, 很难保证生成的单线图紧凑美观[11].

为解决上述技术问题, 本文提供了一种基于主干线/分支线模型的配网单线图自动生成方法, 以提高单线图自动布局的效率和美观性. 主干线/分支线模型就是在对每个设备根据其复杂度赋权重后, 依据单线图的树形结构将馈线中含电源的加权路径最长支线作为主干进行主干绘制; 然后将与主干相连的下级分支绘制在主干两侧(所有主干线/分支线的绘制均为水平或垂直); 再将主干相连的下级分支作为主干线完成更深一级分支线绘制; 如此交替主干与分支直至全部分支绘制完成. 传统的主干线/分支线模型无法很好解决设备遮盖问题, 在进行设备遮盖解决后的单线图通常也无法满足美观、紧凑的要求. 本文提出局部拉伸与局部收缩相结合的方法进行设备遮盖解决, 即: 对完成初始布局的单线图进行局部拉伸解决设备遮盖问题, 然后对完成全部局部拉伸后的单线图进行局部收缩以达到紧凑、美观要求. 最后采用朝向目标的线探索法进行自动布线[12-15].

1 主干线/分支线生成 1.1 主干线/分支线创建

每个设备根据设备类型和本身复杂度确定基础权重. 配电站和大型开关站基础权重最大; 站设备权重根据间隔数量对基础权重调整得到; 此外下连分支数越多权重越大. 根据表1, 依照此原则可得到一个的权重计算公式, 如式(1).

${{Q}} = M + S*Q_1 + N*Q_2$ (1)

式中, M表示此设备类型本身对应的基础权重, 其大小根据其此类设备平均复杂程度和用户需求确定; S为站内间隔数量, 若不为站设备其值为0; N为当前节点下连分支个数, 若不为T接节点其值为0; Q1Q2为常量, 分别表示站设备一个间隔、T接节点一个分支对应权重值.

表 1 设备权重计算表

权重的意义在于能正确表征一个节点设备的复杂程度或重要程度. 合理的参数设置能使获得的加权路径最大分支更逼近最复杂的那条, 将此分支作为主干会得到最佳布局效果. 将复杂的路径先布局能减小重叠交叉概率, 在单线图成图效果和效率方面有较大提高. 此外, 权重设置可根据用户需求调整, 不同用户对主干上优先呈现的设备有不同期望, 可以通过调整不同设备类型本身的基础权重M以及参数Q1Q2实现这一业务需求.

在本文实验中Q1取1, Q2取2; 非站房类设备M取1; 配电站和大型开关站M取3,其他站房类设备M取2. 以此组参数确定的权重计算方法, 实际单线图成图效果较好. 当站房基础权重M以及Q2值小于普通设备基础权重M时, 冲突解决次数会增多.

以电源点为起点追踪加权路径最长的分支作为主干, 记为0级分支; 将0级分支作为父分支, 继续追踪与父分支相连的下一级子分支; 将追踪到的子分支再作为父分支进行追踪; 交替父分支、子分支, 直至所有设备被追踪到便完成全部分支的生成.

从电源点开始追踪到的主干被命名为0级分支; 以0级分支的所有设备作为起点追踪到的下一级分支被命名为1级分支; 以此类推直至(n–1)级分支即全部分支被创建.

1.2 设备对象创建

首先进行主干(0级分支)的创建. 根据追踪到的0级分支有序设备信息, 依次进行点设备(若为站设备, 抽象为点设备)、线设备的创建; 在创建过程中, 对于站房设备先进行子站图成图, 之后把整体抽象为普通设备添加到所属分支设备队列中; 有下一级分支与之相连的设备称之为T接节点设备; 在创建过程中, 对于每个T接节点设备创建一个T接节点信息组对象; 一个T接节点信息组对象包括所属主干, 所有相连下一级分支和对应T接节点设备等信息; 将这些T接节点信息组存入一个队列记为tNodeBranchList.

完成主干生成后, 对TS接节点信息组队列tNodeBranchList中每个元素tBranchInfo执行如下操作: 对tBranchInfo下的所有分支, 执行上述主干生成方法进行分支生成; 继续取下一个T接节点信息组节点, 进行分支生成; 重复执行, 至队列元素为空, 则所有分支设备完成创建.

2 确定主干线/分支线布局方向

任何分支均布置为一条直线, 具有4种布局方向: 自左向右、自右向左、自下向上、自上向下.

首先根据用户输入确定0级分支布局方向, 然后根据0级分支布局方向确定剩余全部分支布局方向. 如果0级主干自左向右布局, 则与之相连的1级分支均匀分布在0级主干两侧, 为自下向上或自上向下布局; 同样, 2级分支均匀分布在1级分支两侧, 为自左向右或自右向左; 由此递推至(n–1)分支, 完成全部分支方向确定. 对于0级分支布局方向为其他3种时同理可推. 具体流程如图1.

图 1 确定分支布局方向方法流程图

3 初始布局与局部拉伸 3.1 进行0级主干分支布局

首先确定主干首节点坐标, 若无特殊要求首节点坐标设置为(0, 0). 根据首节点坐标、布局方向、设备间距确定第2个节点坐标; 两相邻“点设备”之间的设备间距根据两设备外接矩形大小计算得到, 计算得到的设备间距实现了动态调整间距以达到紧密、美观的目的. 当设备为子站时, 要先对子站进行成图, 然后将子站抽象为一个点设备参与布局; 为保证美观, 在进行水平布局时要让主干线中心轴与子站图的母线对齐. 同理, 可根据第2个节点设备确定第3个节点坐标. 重复此操作至最后一个节点设备布局完成. 在进行0级分支布局时, 将所有T接节点信息组存入一个队列, 生成T接节点信息组队列Queue.

3.2 进行剩余全部分支布局

重复执行本节步骤至Queue队列长度为0.

取Queue队列队首元素, 记为TB, 并在队列中删除.

(1)进行下一级分支首节点的坐标赋值

TB下的所有分支均已确定分支方向, 且所有分支方向均为横向或纵向. 将TB的所有分支按照布局方向分成两类, 分别记为清单orient1List和orient2List, 对应布局方向分别为orient1和orient2. 根据TB的T接节点设备坐标, 布局方向orient1和间距配置确定orient1List清单内所有分支首节点坐标; 同理根据orient2方向确定orient2List清单内所有分支首节点坐标.

(2) T接节点信息组布局所需空间拓展

根据orient1List和orient2List中分支首节点坐标和每个分支“点设备”图元宽度的最大值, 计算当前所有分支布局所需布局空间宽度w (沿T接节点所在分支布局方向的宽度). 以T接节点为开始点向T接节点所在分支布局方向和反方向各扩展出w/2的空间, 用来当前T接节点下一级分支的布局. 空间扩展就是将相关设备向某个方向拉伸一定距离, 以保证特定的空间下不存在设备.

(3)进行分支初始布局和局部拉伸

获得TB下所有分支branchList. 对branchList下的每个分支B进行如下操作:

1)分支初始布局

对分支B调用3.1节的主干布局方法进行分支布局; 分支首节点已经具有坐标, 无需进行计算. 每进行一次“点设备”布局, 执行一次步骤2)进行遮盖检测与解决. 为分支B下每个T接节点生成T接节点信息组加在Queue队尾.

2) 遮盖检测与解决

在根据上一点设备Dk–1完成下一个设备Dk布局后, 需要进行遮盖检测. 求Dk–1Dk的最小外包矩形, 将此外包矩形与其他已布局“点设备”进行重叠检测; 对发生重叠的其他“点设备”进行局部拉伸以消除重叠; 拉伸方向为当前“点设备”布局方向. 图2图3分别为自上向下和自左向右的拉伸示意图.

图 2 自上向下布局局部拉伸示意图

图 3 自左向右布局局部拉伸示意图

4 局部收缩

在分支布局时, 为解决图元遮盖问题对整体进行过多次拉伸, 导致总体布局图元间距不均匀不合理, 布局不美观. 为了纠正这一问题, 完成全部分支布局后, 需进行收缩运算.

分支收缩和分支布局一样, 采用分级的方式进行, 如图4. 收缩运算采用试探法, 按照从分支尾节点到首节点、从(n–1)级分支到0级分支的顺序依次执行. 具体步骤如下:

(1)创建shrinkBranchQueue队列; 按照从(n–1)级分支向0级分支的顺序, 将全部分支装入shrinkBranchQueue队列; 队首元素为(n–1)级分支, 队尾元素为0级分支; 同级分支之间无严格顺序, 不同级分支间有严格顺序.

(2) 由队首向队尾顺序遍历shrinkBranchQueue, 对队列中每一个分支C进行如下操作.

按照从分支尾节点向分支首节点的顺序对分支C中每个点设备Dm进行如下操作:

(2.1) 若Dm为分支首节点, 根据分支C父分支计算Dm最佳坐标needCoor.

(2.2) 若Dm不是分支首节点, 根据Dm上一个设备Dm–1坐标计算Dm最佳坐标needCoor.

(2.3) 计算Dm由实际坐标平移至needCoor的待平移值moveValue.

(2.4) 获得从Dm至分支C尾节点的全部设备节点清单needMoveList(包括Dm).

(2.5) 将图纸中与needMoveList中的设备相连的下级分支全部设备, 即将分支C的内部连通关系去掉后仍与needMoveList中的设备有连通关系的全部设备加入needMoveList.

(2.6) 根据待平移值moveValue对needMoveList中全部设备进行一次平移操作.

(2.7) 检查是否有设备遮盖发生.

(2.7.1) 若不存在, 则本次局部收缩完成.

(2.7.2) 若存在, 将needMoveList中所有设备反向回退平移一个单位长度.

(2.7.3) 若仍存在遮盖, 重复执行(2.7.2)回退操作, 直至图元遮盖不存在或回退长度总和超过待平移值.

(2.7.4) 若回退距离超过待平移值, 将全部待平移设备坐标恢复平移前状态.

图 4 分支局部收缩方法流程图

5 进行布线

布线是对线设备进行坐标赋值, 根据布线端子设备类型, 可分为存在站内出线点和不存在站内出线点两种情况.

若线设备所连两端点设备均不含站内出线点, 则直接根据点设备坐标对线设备进行赋值, 不存在拐点.

若含有出线点则调用朝向目标的布线算法进行布线操作. 如图5所示, 具体操作步骤如下文.

图 5 自动布线示意图

(1)在起始点A先以B'段目标点向右进行横向探索, 碰到障碍物后在点A1拐弯. 初始探索方向可根据最大探索步长优先原则确定.

(2)在A1点以B1为阶段目标点向上进行纵向探索, 碰到障碍物后在点A2处拐弯. 此时阶段目标点变为B2.

(3)重复步骤(1)、(2), 直到阶段目标点和目标点B重合并到达.

(4)在以上步骤中, 若遇到死点则执行步骤(5), 若遇到临界点则执行步骤(6).

探索过程中, 当横纵两个探索方向均被阻挡, 则进入死点; 当只需再进行一次成功的横向或纵向探索便到达布线终点, 但此时唯一探索方向被阻挡时, 称为进入临界点.

(5)处理死点.

(5.1)进行反向探索. 在当前节点, 向“相反方向”进行探索, 每探索一步都往目标方向试探, 若没出路则继续试探. 重复此步骤.

(5.2)回退. 若步骤(5.1)无法找到出路则回退到上一节点重复步骤(5.1). 若仍无法找到出路, 则继续回退. 若回到起始点仍无法探索到新路径, 则当前布线端子不存在有效布线路径.

(6)处理临界点.

(6.1)根据当前障碍物节点和探索方向计算绕障偏移量.

(6.2)根据绕障偏移量计算下一个阶段探索目标点.

(7)进行布线重叠检测和偏移.

每完成一次布线需要与已布线进行重叠检测和偏移. 每条已布线由若干个小线段组成, 将这些小线段分为横向线段和纵向线段两类. 依次遍历当前布线每个小线段, 将小线段与它同类已布线段进行重叠检测, 若存在重叠冲突则将当前小线段进行一个单位偏移, 重复此操作至重叠不存在.

对有没有到达布线终点的失败探索, 可将死点障碍物去掉后重新进行弱一级布线探索. 此时布线会穿越相关设备图元.

此布线算法可能因障碍物频繁变换而导致布线变得复杂, 甚至找到所有布线可能解中最复杂的那个. 但考虑到单线图布线中布线起点与终点所隔障碍物一般并不多, 若通过步长试探、遍历对比等方式获得拐点更少的解会增大时间开销, 却不会太大提升单线图整体效果. 所以, 在没找到兼顾效果和效率的工程更优布线算法的前提下, 本文采用当前有使布线拐点过多风险的布线算法.

图6为本文最终单线图成图, 有0级分支1条, 1级分支4条, 2级分支6条. 在进行2级分支(#19, #20)布局时, 发生图7所示交叉遮盖. 根据局部拉伸算法, 冲突区域为设备#19、#12组成的最小包围矩形, 将分支(#11-#13)、(#8-#24)、(#9-#10)、(27开关)和主干(110 kV大李变电站-#01)部分向左整体平移出冲突区域. 经过局部拉伸后的单线图如图8, 节点#08与25开关、节点#22与#26因局部拉伸间距过大. 最后根据局部收缩算法, 对节点25开关、节点#26向其相连T节点方向局部收缩, 将间距缩至合理值, 得到图6所示紧凑无交叉美观的单线图.

6 系统实现与验证

结合上述研究, 在实际项目开发中实现了此基于主干线/分支线模型的配网单线图自动生成方法, 满足了项目需求.

目前在重叠、交叉处理中普遍采用的是局部拉伸法, 如文献[11,16,17]等均采用此方法. 本文将局部拉伸法与本文方法效果进行对比.

图 6 局部收缩后单线图

图 7 交叉现象

为避免图9所示重叠现象的发生, 在进行布局时需要进行T接分支空间拓展. 如图10, 以T接节点#2为例说明. 在对T接节点#2下连分支布局时仅主干完成布局, 对T接节点#2下连分支(#16-台孙线南山南分支14分支线01电缆分支箱)进行布局前, 先根据下连分支计算其布局所需要宽度w. 以#2为中线将此线左侧设备向左平移w/2, 右侧设备向右平移w/2. 左侧设备包括主干(110 kV大李变电站-#01)部分, 右侧设备包括主干(#03-台孙线效果测试01配电室)部分. 对T接节点#04、#07均照此操作. 如图10, 经过拉伸后的单线图在以T接节点为中心的宽度w范围内不存在除下连分支外其他设备. 最后经过局部收缩, 得到图11所示最终单线图.

图 8 局部拉伸消除交叉

图 9 重叠现象

图 10 T接分支空间拓展避免重叠

图 11 局部收缩消除多余空隙

传统仅进行局部拉伸的单线图自动生成方法在局部拉伸后不可避免会产生图8图10中部分设备间距过大问题. 本文提出的局部收缩算法, 在局部拉伸后将可收缩部分间距收缩至合理值, 最终得到如图6图11所示既紧凑又无重叠交叉的单线图.

7 小结

一种准确、高效、美观的单线图自动生成方法是当前电网配网管理中的现实需求. 本文提出的基于主干线/分支线模型的配网单线图自动生成方法满足了单线图成图无设备遮盖、布局横平竖直等基本要求; 并加入了局部收缩操作, 在单线图美观性方面有显著提高. 具体优点如下:

(1) 分支初始布局后的局部拉伸可以完全解决设备遮盖问题.

(2) 对局部拉伸后的单线图进行局部收缩运算, 使单线图更紧凑美观.

(3) 采用分级的朝向目标的绕障线探索法进行布线操作, 能在全部场景下完成布线并避免布线重叠.

本文通过初始布局、局部拉伸、局部收缩3个关键步骤完成满足准确、美观要求的单线图自动生成; 最后通过朝向目标的绕障线探索法高效地完成了布线操作. 本文未在文本标注问题上进行深入研究, 采用简单的标注处理方式. 今后作者将进一步研究单线图自动生成方法标注等问题的优化问题.

参考文献
[1]
陈树勇, 宋书芳, 李兰欣, 等. 智能电网技术综述. 电网技术, 2009, 33(8): 1-7.
[2]
王彬, 何光宇, 董树锋, 等. 基于CIM的全图形自生成及三维可视化. 电力系统自动化, 2010, 34(4): 55-58, 74.
[3]
郝新培. 单线图自动成图技术研究[硕士学位论文]. 济南: 山东大学, 2016. 2–4.
[4]
傅筠宁. 基于馈线组的配电网系统图自动生成系统的研究与实现[硕士学位论文]. 北京: 华北电力大学, 2013.
[5]
韩文明. 基于CIM模型的配电网单线图自动生成[硕士学位论文]. 上海: 东华大学, 2013. 2–3.
[6]
章坚民, 叶义, 陈立跃, 等. 基于新型力导算法的省级输电网均匀接线图自动布局. 电力系统自动化, 2013, 37(11): 107-112. DOI:10.7500/AEPS201211096
[7]
丁威. 电力系统单线图自动成图技术研究[硕士学位论文]. 济南: 山东大学, 2017.
[8]
Canales-Ruiz R, Garibay DT, Alonso-Concheiro A. Optimal automatic drawing of one-line diagrams. IEEE Transactions on Power Apparatus and Systems, 1979, PAS-98(2): 387-392. DOI:10.1109/TPAS.1979.319329
[9]
章坚民, 叶义, 徐冠华. 变电站单线图模数图一致性设计与自动成图. 电力系统自动化, 2013, 37(9): 84-91. DOI:10.7500/AEPS201210018
[10]
Lendak I, Erdeljan A, Čapko D, et al. Algorithms in electric power system one-line diagram creation. Proceedings of 2010 IEEE International Conference on Systems, Man and Cybernetics. Istanbul, Turkey. 2010. 2867–2873.
[11]
陈勇, 邓其军, 周洪. 无重叠交叉的配电网单线图自动生成算法. 电力自动化设备, 2010, 30(11): 90-93. DOI:10.3969/j.issn.1006-6047.2010.11.022
[12]
姚慧. 电路CAD中印刷电路板自动布线的研究[硕士学位论文]. 西安: 西北工业大学, 2004.
[13]
洪熙伟. SCADLS: 一个实用的线探索布线算法. 计算机工程, 1992, 18(5): 49-53.
[14]
姚慧, 廖达雄, 袁艳. 目标驱动的基于形状线探索布线算法. 现代机械, 2007(4): 50-52. DOI:10.3969/j.issn.1002-6886.2007.04.022
[15]
杨国川. 用于计算机自动布线的一种线探索法. 山西大学学报(自然科学版), 1996, 19(3): 283-287.
[16]
刘健, 吴媛, 刘巩权. 配电馈线地理图到电气接线图的转换. 电力系统自动化, 2005, 29(14): 73-77. DOI:10.3321/j.issn:1000-1026.2005.14.015
[17]
章坚民, 楼坚. 基于CIM/SVG和面向对象的配电单线图自动生成. 电力系统自动化, 2008, 32(22): 61-65. DOI:10.3321/j.issn:1000-1026.2008.22.013