APP下载

基于SVG的配电网线损在线可视化计算

2011-05-26林妙玉郭谋发谢华芳杨耿杰

电气技术 2011年2期
关键词:配电网可视化图形

林妙玉 郭谋发 谢华芳 杨耿杰

(1.福州大学电气工程与自动化学院,福州 350108;2.福建省第二电力建设公司,福州 350013)

1 引言

线损是供电企业一项重要的综合性技术经济指标,它直接影响到电力企业的经济效益,而配电网线损在整个电力系统线损中占有很大比例。目前供电部门进行理论线损计算采用的线损软件必须进行单独的配电网建模,通过离线收集各种数据并手工录入一天24h的整点有功、无功、电压、电流等数据进行计算,不仅工作量大,而且往往由于统计表误差、测量误差、抄表人误抄漏抄等因素,使得计算得到的线损与实际线损存在偏差,经常还需要根据运行方式的变化调整配电网结构数据。因此需要一种能直接调用配电网实时测量数据进行线损计算并将实时测量数据及线损显示在页面上的软件。

近年来,随着计算机网络技术的发展,SVG的出现为电力系统运行可视化图形数据的web发布提供了一种开放性的解决方案。SVG是可伸缩矢量图形的简称,它是一种使用XML来描述二维图形及其应用的语言。SVG内置了对于JavaScript的支持,SVG图像可以方便地由程序语言来动态生成。SVG所描述的矢量图形具有可任意缩放、文件尺寸小、超前显示效果等特点,基于XML的特性使得图像可以根据实时数据动态改变,并且实现起来简单,响应迅速,可以在数据实时变化的同时即时展现,实现实时信息发布。

基于矢量的图形有SVG、GML、VML、Flash等,GML是表示实体的空间信息和属性的编码标准,但它并不支持直接显示图形,而VML和SVG是在表示图形的矢量信息的同时加入了图形的显示信息,是显示矢量图形的两种比较好的格式。相比之下,SVG本身是综合了VML的优点后推出的,它比VML具有更多的优点,也有更广阔的前景[2]。与Flash相比,Flash采用的SWF文件可编辑性较差,不提供对文本格式的支持,文本不能独立于图像而存在,因此无法建立类似于SVG的搜索功能。Flash是半公开的文件格式,与其它的开放标准之间没有一个完全的融合方案,而SVG是文本格式,只要打开记事本便可对其进行修改,它是W3C制定的开放标准的图像格式,任何公司都可以参与对SVG标准的制定,从而使得这一标准更加科学和强大。

2 配网线损在线可视化计算软件设计

通过应用SVG来实现配电网线损在线可视化计算,一天24h的整点有功功率、无功功率数据由终端定时上传到服务器存储在数据库,不必由人工抄录,当24h的数据全部存到数据库后进行整天的线损计算,提供当天的线损值和线损率,较准确地反映电网的损耗水平。系统线损在线计算软件框架如图1所示,通过SVG编辑XML文件得到配电网一次接线图,并将线路、设备参数存储到数据库,然后对接线图进行拓扑分析得出连接关系矩阵,也存放在数据库里,调用线损计算子程序,读取数据库存储的配电网功率及参数等相关数据进行线损计算并显示出来,实现线损在线可视化的功能。

图1 线损在线计算软件框图

2.1 SVG配电网图模一体化

图模建模首先要设置设备图元模型,设备图元模型包括图形属性和应用属性,图形属性指设备在图形系统中的几何表示,应用属性为存储在数据库中供各种应用使用的设备参数等信息。设备图元建模即实现设备图形属性和应用属性的关联统一。SVG标准通过预定义形状的若干组合,在模形定义中实现图形与设备对象的对应。如SVG中对断路器的描述如下:

<symbol>元素定义了图形模版对象,供<use>元素通过实例化的方法引用。<symbol>元素拥有viewBox和preserveAspectRatio两个属性,可以在<use>元素引用时,对矩形视口进行缩放。<g>元素是一种容器元素,可以把相关的图形元素组合起来内定义的图形。<desc>描述元素相当于SVG文档中的注释,通过纯文本来描述图像的大概内容。<desc>元素既没有属性,也没有什么特殊的使用格式,只需用标记名将文字括起来便可。viewBox="-11 -10 22 20"描述的是渲染的范围,不是实际的范围。①描述了两条线;②描述了一个矩形;③描述了两个圆形;断路器就是由这几个图形组合起来的形状。

当要改变断路器的开断状态时,只需改变节点的xlink:href属性为对应的本地UR(I'#'+符号的id)即可。例如:<use xlink:href="#breaker_uc" x="477" y="126" width="18" height="75" class="kv220" id="7" />。这里定义的断路器是断开的,若要让其闭合只要修改xlink:href属性即:svgDoc.getElement ById('7').setAttribute('xlink:href','#breaker_c'),其中svgDoc是svg的文档对象。

在SVG文档中,每个文本节点(text)都设定一个Id值,刷新文本框内容时,只需调用setData函数设定新的文本。例如:SVG文档中有这么一个节点:<text font-family="SimSun" font-size="12" fill="#FFFFFF" x="482" y="560" id="45">文本内容</text>。可用以下Javascript代码更新文本内容:svgDoc.getElementById ('45').firstChild.setData('新的文本内容')。

2.2 拓扑连接关系矩阵的获取

电气元件间的连接线不会首尾相连,连接线的首和尾也不会连接在同一个图形上,只有连接线的首点和末点才可以吸附图形。每个电气元件图形形成一个区域如,断路器的区域为外面框框所示。当拖拽连接线的首点和末点时,实时判断当前的鼠标坐标是否在某个电气图元的区域内,如果是,鼠标的形状变为带连接的锚点,此时松开鼠标左键时,完成吸附操作。这个操作过程由连接线的Hook方法来实现,用Hook方法判断当前拖拽的连接线是首点还是末点,如果是首点,将连接线的源赋值为此图形对象,并将此图形对象的Id值赋予连接线的源Id,末点也是同样的规则。整个网络中图元与图元的连接关系放在<g>中,编辑时,对于某一电力设备的图形和连接关系采用一定关联关系的Id号。如下面这样一个语句:<polyline points="401 154 401 97" fill="none" sourceId="8" targetId="6" stroke="#808000" id="7" idAssoc="" />,表示连接线Id号为7,与连接线相连的首末节点Id号分别为8和6。

拓扑关系矩阵分析框图如图2所示,获取连接关系矩阵时,根据Id号遍历搜索结果将除文本框、母线、连接线外的图形对象的Id存储在哈希表中,连接线Id另外存储为一数组。通过连接线Id找到与该连接线相连的首末节点Id,在连接关系矩阵中,将首节点对应行及末节点对应列的位置置1,其余置0,便得到了反映连接关系的矩阵。

图2 拓扑关系矩阵分析框图

哈希表(Hash map,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构,用一个下标范围比较大的数组来存储元素,设计一个函数(哈希函数),使得每个元素的关键字都与这个函数值(即数组下标)相对应,并将这个元素存储在这个数组单元。哈希表通过把关键码值映射到表中一个位置来访问记录,能够提供快速的插入操作和查找操作,因此将连接线外的Id存放在哈希表里,可迅速查找与连接线相连的首末节点Id号。hashcode是用来查找的,例如内存中有这样的位置:01234567,类的字段为Id号,则定义hashcode为Id值,将类存放在Id值那个位置,比如Id为3,则将该类存在3这个位置,如果Id是6,则将该类放在6这个位置,这样,在查找该类时就可以直接找到存放的位置了。

2.3 实时信息显示

线损计算中,没有必要把大量的数据都放在SVG文件中,这样只会使它变得臃肿,性能低下,而将数据由专门的数据库保存,可减少SVG的处理运算。线损计算所需参数的数据库存储E-R图如图3所示,配电网一次接线图建模时将线路参数及变压器参数存储到数据库,其中线路参数表存储架空、电缆线路的线路长度、线路单位电阻及单位电抗,变压器参数表存储变压器的编号、SN、UN、短路损耗、短路电压百分比、空载损耗、空载电流百分比、终端安装处等数据。连接关系表通过拓扑分析后存到数据库,终端测量功率数据则从终端读取存储,终端测量功率表S存储的是一天24h的数据。

图3 数据库线损计算参数E-R图

由于数据存在数据库中,客户端要实现将每小时的功率值更新显示在页面上或者进行线损计算都需要先与数据库进行交互,提取相关数据,而SVG则仅做为数据的展现手段。此交互过程采用Ajax异步交互模式,Ajax并不是一项新的技术,而是集合了DOM、XML、JavaScript、XHTML、XSTL和XMLHttpReauest等技术的一种设计方式。

Ajax以“按需取数据”为原则,可以最大程度的减少冗余请求和响应对服务器造成的负担,无刷新更新页面。当要读取数据时,Ajax使用XMLHttp Request对象发送请求并得到服务器响应,在不重新载入整个页面的情况下用Javascript操作DOM最终更新页面。这样不需要更新整个窗口就可以显示新获取的数据,只要来回传送采用XML格式的数据,在浏览器里面运行的JavaScript代码就可以与服务器进行联系。执行结果到达时,才会通知浏览器客户端,使之能够在合适的时间显示执行结果,JavaScript代码还可以把样式表加载到检索到的数据上,然后在现有网页的某个部分加以显示。

实时信息显示结构图如图4所示,整个过程主要由四部分组成,负责数据显示的是SVG,负责数据存储的是数据库,中间起桥梁作用的是Ajax技术和服务器端程序。Ajax主要角色在于JavaScript事件触发和响应、发起异步通信请求、接收返回的数据并更新页面内容。

图4 实时信息显示结构图

首先由客户端SVG发出请求,调用setInterval函数来执行XMLHttpRequest函数进行异步交互。setInterval函数可以定时执行发出请求,线损计算中一般采用一天24h整点数据,也只在每小时更新电表显示数据,即一天只需要读取24h的整点数据即可,因此不需要频繁的发出数据请求,只需定时(如每十分钟)读取一次数据便可。服务器接收到请求后,判断用户行为(即是只读取电表数据还是需要读取与线损计算相关的所有数据),然后将响应结果以 HTML/XHTML/XML形式封装好。XMLHttpRequest检测到服务器已将响应结果打印出来,则将响应结果以文本或者XML文档形式返回。数据发回到客户端后,JavaScript调用DOM进行数据解析与处理。数据处理完毕,则改变DOM树,更新相应的页面内容。

3 前推回代三相线损计算

配电网发展速度较快,电网结构经常变化,且存在大量不对称负荷和单相、两相、三相线路混合供电模式,使得配电网的三相电压、电流不对称,无法使用对称模型,同时对称模型不易考虑单相变压器移相。对配电系统如果像对待对称系统那样,只是单纯按照理论中将对称三相等同于单相进行计算,就会忽略很多由三相不对称所引起的问题,因此必须计算三相的情形,也即要求对不对称系统进行三相整体的建模计算。本文的线损计算采用前推回代潮流计算的方法,计算流程图如图5所示。

图5 前推回代计算流程图

首先根据广度优先搜索将网络的节点支路进行分层编号,再进行前推回代计算。前推过程中,首先根据配变终端量测的节点各相负荷的有功、无功功率计算支路电流,如果终端安装在配变的高压侧,则直接利用采集上来的三相有功、无功功率计算负荷支路电流,如果安装在配变的低压侧,则还要考虑变压器的接线方式、损耗与移相等对计算负荷支路电流的影响。然后从各负荷支路开始向潮流的前方直到源点根据KCL计算各支路的电流分布。最后求出源点的三相电流。回代过程中,由已知电源电压和所求得的三相电流,从源点向各负荷节点根据KVL计算系统所有节点的三相电压。每次迭代须按求得的各负荷节点电压修正配电变压器的损耗,由修正后的变压器损耗和给定的负荷功率修正负荷支路电流。经过反复迭代和修正,直到两次迭代的三相各节点电压差的绝对值均小于给定值。最后,利用计算收敛后的电流、电压值和等值线路的阻抗、变压器的阻抗和导纳值计算出相应的各支路损耗和变压器损耗值。

4 实例应用

本文以福建省石狮市古浮变菲宝线625线路为例,根据以上设计思想,预先布置好服务器的数据库,模拟终端上传至数据库过程,实现客户端实时显示每个时间点的功率数据及计算显示每天的线损率,表1为2009年8月1日至8月5日五天理论线损表。

表1 菲宝线2009年08月1-5日理论线损表

如图6所示为2009年8月1日的显示效果,每个小时的功率数据及时更新显示在屏幕上,一天24h数据全部更新过后,计算当天线损值并显示。

图6 菲宝线625系统实时显示图

5 结论

本文研究了基于SVG的配电网线损在线可视化计算,建立系统图模一体化及实时在线显示电表数据并进行线损计算,最后通过一个实例应用来验证该系统的可行性。SVG通过一定的配电网图形描述格式,实现图模一体的数据模型,能轻易地制作强大的动态交互。实现线损计算在线可视化功能,既减少了供电部门线损管理人员的工作量,而且避免了由于抄表人抄表不同时性等原因引起的线损计算误差的出现,使得线损计算值更容易接近于电网的实际损耗值。

[1] 王杏.SVG在电网线损管理系统中的应用研究[D].华中科技大学,2006.10.

[2] 黄凯伟.SVG开发实践[M].北京:电子工业出版社,2008.1.

[3] 郑贵省,赵锐,赵国亮,等.10kV电网故障图模一体化处理平台[J].电力系统保护与控制,2009,7(15):91-98.

[4] 樊淑丽,王康元,邱家驹.基于SVG的电力信息可视化框架设计[J].继电器,2007,35(10):48-51.

[5] 张文生,王雷,乔洪岩.XML与SVG技术在变电站抄表系统中的应用[C].中国高等学校电力系统及其自动化专业第二十届学术年会论文集,2007.

[6] 贺继艳,王颖.分层潮流前推回代算法的改进及实现[J].电力科学与工程,2009,25(11):42-44.

[7] 王峥,丛培杰.基于改进前推回代法的辐射状配电网潮流计算[J].东北电力技术,2008,(2):7-10.

[8] 李林辉,王玉芹,刘莹.基于 SVG的电力图形系统的实现[J].东北电力大学学报,2007,27(1):73-76.

[9] 浙江省电力公司企业标准.Q/ZDJ48-2006.基于SVG的公共图形交互规则[S].

[10] 郭创新,齐旭,朱传柏,等.基于SVG的电力调度图形支撑平台设计与实现[J].电力系统及其自动化学报,2007,19(2):28-33.

[11] 陈传波,王菁,邓凯.基于SVG 的实时数据动态发布术的研究[J].小型微型计算机系统,2002,23(5):609-612.

猜你喜欢

配电网可视化图形
基于CiteSpace的足三里穴研究可视化分析
思维可视化
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
关于城市10kV配电网自动化实施的探讨
分图形
找图形
基于IEC61850的配电网数据传输保护机制
配电网不止一步的跨越
图形变变变