APP下载

可视化电力系统计算软件的开发

2010-09-06韦庆宁邱海平

装备制造技术 2010年9期
关键词:图元拓扑图绘图

文 绘,韦庆宁,邱海平

(1.广西大学电气工程学院,广西南宁530004;2.广西电网公司梧州供电局,广西梧州543002)

可视化电力系统计算软件的开发

文 绘1,韦庆宁2,邱海平2

(1.广西大学电气工程学院,广西南宁530004;2.广西电网公司梧州供电局,广西梧州543002)

为了开发界面尽可能友好的电力系统计算软件,介绍了软件可视化界面的开发方法和技巧,以MS-Visual C#2008.NET为平台开发了可视化电力系统潮流计算软件,以此为例说明该方法技巧能很好实现电力系统绘图与计算。

可视化界面;电力系统计算软件;潮流计算;MS-Visual C#2008.NET

电力系统计算软件在电力系统中已经得到广泛应用,如BPA、EMTP、PSCAD/EMTDC、NETOMAC和 PSASP等[1],它们功能强大,界面友好,但软件系统庞大,操作复杂,可视化界面不足,学习、使用困难。我们吸收了这些软件的优点,同时针对其不足用MS-VisualC#2008.NET开发出一套完全面向对象的可视化潮流计算软件,提出了开发可视化界面的一般方法。推而广之,该方法可用来开发故障计算、稳定计算等电力系统计算软件的可视化界面。

1 系统构建

1.1 系统操作流程

系统操作流程如图1所示。

图1 系统操作流程图

软件系统在图形导航下实现潮流计算,直接读取IEEE格式的数据文件,生成网架结构拓扑图。IEEE数据不包含节点位置信息,系统在图上平均分布各个节点绘制初始拓扑图,生成拓扑图后可人工对线路、节点、变压器等图形元件进行编辑,编辑图元包括调整图元位置和修改图元潮流计算参数。或者手动绘制拓扑图,双击图元弹出参数设置窗口,设置潮流计算参数,即可进行潮流计算,计算结果显示在图元旁边。系统能把拓扑图存入硬盘,供以后读取使用,亦可把图元的潮流参数提取出来,将其保存为IEEE格式的数据文件。

1.2 系统开发技术

(1)开发平台。系统以MS-Visual C#2008.NET为开发平台,C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,微软把其描述为一种简单、现代、面向对象、类型非常安全、派生于C/C++的编程语言,既具有C/C++的强大功能和灵活性,又剔除了C/C++的缺点,并增加了许多新功能,开发效率很高。C#集成了GDI+(Graphics Device Interface Plus)技术,它提供了一个接口,该接口允许编程人员编写与文件、监视器或打印机等图形设备进行交互的图形应用程序。GDI+是程序和设备之间的第三组件,是程序与设备交换数据的桥梁,非常适合开发图形界面。在GDI+中,绘图对象是由Graphics对象指定的,Graphics对象就好比绘画所需要的纸张,在进行具体的绘图工作之前得先创建一个Graphics对象,这个对象可以指向窗体、控件、打印机、预览或者图像,编程人员只管操作Graphics对象,就能实现图形在设备上输出,不必理会具体设备。

(2)图元设计。为了准确描述图元,并对图元进行操作,系统采用完全面向对象的编程思想,把图元封装在类中,设计了一个基类,这是一个抽象类,图元操作方法也都是抽象方法。系统有线路、节点、变压器、接地支路、发电机、标签共6种图元类,这些类均从基类继承,添加该类特有的属性和方法,在类中重写方法代码。基类clsItem的声明如下:

(3)数据存取。在可视化界面看到的是图形,但在程序内部表现形式是图元的对象,这些图元对象存储在一个集合中,C#的集合操作功能强大,通过集合操作实现图元增、删、改、查找等操作。在基类和派生类前加上[Serializable]关键字,指示一个类可以序列化和反序列化,通过序列化和反序列化就能实现对象的存取,即实现拓扑图存取。序列化是将对象转换成数据流,而反序列化是将数据流转换为对象,利用它们能够实现图元对象保存到文件或从文件中把对象读取出来,而不必理会对象内部属性、方法等内容的具体形式。

(4)绘制和擦除图元。点击工具栏图元图标,然后在绘图区按下鼠标左键,即生成一个相应的图元对象,随着鼠标拖动图元发生动态变化,其参数亦随之变化,松开鼠标后图元绘制完毕。本系统的图元,都是由一些简单的图形如线段、矩形、圆形和圆弧构成,采用不同颜色绘图或填充就能绘制出需要的图元。擦除图元和绘制图元调用相同的函数,只是用背景色在原来位置重绘或重填充一次起到擦除目的,并不在内存删除相应的图元对象。

(5)橡皮筋绘图。这是一种动态绘图方法,是交互式绘图过程中不可或缺的一种技术,它实现一种看似拉扯橡皮筋的绘图效果。图元一端固定之后,拉扯另一端可以随意改变其方向和大小,直到这一端也固定在某个点上。使用这种方法能够以一种直观的形式描述绘制图元中定位起点和终点之间的过程[2]。计算机不断在屏幕上擦除旧图元,然后在新位置上绘制图元,因为计算机的绘图速度很快,人眼就看到了拉扯橡皮筋的绘图效果。

(6)选择与取消选择图元。选择元件有两种方法,鼠标左键单击选定和拖动左键框选定。图元被选中后,系统在它上面绘制数个填充的小矩形作为选中标志。如图2,左边为图元的选中状态,右边为未选中状态。

图2 图元选中与未选中

以线段为例说明选择图元算法,如图3。线段AB外一点C,过C作AB的垂线,垂足为E,若垂足在AB上,C至AB的最小距离为CE,否则,如点D与线段AB的关系,过D的垂线交AB的延长线于点F,则D与AB的最小距离为DA、DB中较小者。如点至线段的最小距离小于或等于容差(容差由系统设定),则认为点在该线段附近,单击鼠标后图元被选中,其选中属性IsSelected=true,同时在图元上绘制选中小矩形;若点至线段的最小距离大于容差则取消选中图元,IsSelected=false,取消选中图元是用背景色重新填充选择小矩形,擦除选中标志,这时要重绘该图元,要不然图元上就会因擦除了小矩形而出现断点。拖动左键框选图元,当图元的端点坐标全部落在矩形框中,图元被选中,有多个图元落在框中,则多选图元。如果图元比较紧凑,像发电机、变压器等,其主体绘制在一个相对较小的矩形内,在此矩形内部单击鼠标则选中图元。

图3 点在线段附近

(7)移动、旋转、缩放图元。以前要实现图元移动、旋转、缩放,都得自己写函数,工作量大,调试、维护费时费力,现在GDI+提供了Matrix对象,通过设置Matrix对象的参数,就能实现图元的平移、旋转和缩。

(8)删除、复制、剪切和粘贴图元。删除图元就是擦除图元后从内存删除相应的图元对象,复制图元就是生成一个和源图元一样的目标图元对象,保存在内存中,不绘制目标图元,剪切图元就是复制后删除图元,粘贴图元就是把复制或剪切的图元在新的位置重绘。

(9)图形漫游。拓扑图很大超出屏幕时,拖动滚动条或用“抓手”抓住拓扑图,把被遮掩的部分图形拖出来,这是图形漫游。在C#中用这样的方法实现,拓扑图绘制在控件PictureBox上,PictureBox的大小随着拓扑上所有图元端点坐标的最大值变化,而PictureBox又在容器Panel上,设置Panel的AotuScroll属性为True,当PictureBox超越Panel的可见区域时就自动会出现滚动条,拖动滚动条就能看见拓扑图被遮掩的部分。“抓手”拖动拓扑图,实际就是用程序控制滚动条滚动,实现图形漫游。

(10)图形打印。绘制的拓扑图要输出至打印机,C#提供了PrintDocument控件,把画布指向该控件,然后系统在此画布上绘制集合中的图元对象,得到与绘图区一样的拓扑图,即能实现打印预览,把图形输出至打印机。

(11)潮流计算。电力系统潮流计算,是电力系统计算中最基本的电气计算,它的任务是根据给定的网络结构及运行条件,求出整个网络的运行状态。其中包括各节点的电压、网络中的功率分布以及功率损耗等,数学上属于多元非线性代数方程组的求解问题。对于该类问题,通常采用牛顿法求解[1]。系统从集合中的图元对象取出潮流计算用的参数,生成节点导纳矩阵,然后调用牛顿法程序完成计算,再把计算结果赋给各图元对象相应属性。

2 应用实例

如图4,读入IEEE4节点数据,生成拓扑图,线路阻抗、接地支路阻抗、变压器非标准变比等参数默认不显示,可通过菜单将其显示出来。拖拽调整好各节点位置,点击计算,节点附近就会显示该节点电压和功率参数,更详细的计算结果,可从菜单调出结果窗口,以列表形式显示节点电压、节点功率和线路潮流等数据。从文件菜单中点保存拓扑图,图上各对象被序列化存入硬盘得到图形文件,点打印预览,弹出打印预览窗口,可把拓扑图输出至打印机。

图4 IEEE4节点潮流计算

3 结束语

本文设计的可视化电力系统潮流计算软件,有着十分友好的人机界面,操作简单,使用方便,用户能够根据自己的风格,通过键盘和鼠标配合操作搭建潮流计算模型。软件能实现IEEE格式数据文件与图形的相互转换,又能保存和打印拓扑图。软件绘图模块完全面向对象,移植性和通用性强,后期维护工作量少。通过基类可派生出新的图元类,满足其他绘图需要,在图元类中添加新的属性和方法,就能实现电力系统其他方面的计算,如故障计算、稳定计算等,有良好的扩充性。

[1]张志斌,李世作,文 绘.基于图形界面的电力系统潮流软件开发[J].汕头大学学报(自然科学版),2007,22(4):19-23.

[2]黄志诚,韦 化,韦志炜.基于B/S模式的电力系统绘图控件开发[J].广西电力,2006,(2):54-57.

[3]邵笔贵,袁荣湘,张海梁,等.面向对象的图形化故障计算软件的开发[J].广西电力,2005,(1):13-17.

[4]周鸣扬,曾洁玫.GDI+程序设计实例[M].北京:中国水利水电出版社,2004.

[5]曹 锰,舒新峰.C#与ASP.NET程序设计[M].西安:西安交通大学出版社,2006.

Developmentof Power System Calculation Software based on Visible Interface

WENHui1,WEIQing-ning2,QIUHai-ping2
(1.College of Electrical Engineering,GuangxiUniversity,Nanning 530004,China;2.Wuzhou Power Supply Bureau ofGXPG,Wuzhou Guangxi543002,China)

In order to develop power system calculation softwarewith that interface is as far as possible friendly.This paper presentsmethods and skills to develop power system calculation softwarewith visible interface.Power flow calculation softwarewith visible interface has been developed by MS-Visual C#2008.NET,which confirms the proposed methods and skills have an adequate performance in power system drawing and calculating.

visible interface;power system calculation software;power flow calculation;MS-VisualC#2008.NE

TM 744;TP319

A

1672-545X(2010)09-0081-02

2010-06-26

文 绘(1980—),男,广西玉林人,硕士研究生,研究方向为电力系统最优运行与规划。

猜你喜欢

图元拓扑图绘图
来自河流的你
“禾下乘凉图”绘图人
简单拓扑图及几乎交错链环补中的闭曲面
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
基于含圈非连通图优美性的拓扑图密码
垂涎三尺
电气CAD接线图快速转换G图形的技术应用研究
基于拓扑规则Pb-S-O体系优势区图的绘制与应用
数控车床的工艺与编程