微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 面向对象的电力图形系统的分析和设计

面向对象的电力图形系统的分析和设计

时间:02-11 来源:互联网 点击:

图中,每个矩形框表示一个对象,矩形框的上栏填写类名,中栏和下栏填写的是对象的属性名和服务名,“@”表示该对象是主动对象或主动服务,符号“”是一般与特殊结构的连接符号,箭头“”表示消息发送,“1  m”表示一对多的实例连接。从图中可以看出,对象“图元基类”与“电气元件”构成一般与特殊结构。对象“图形管理”和“电气元件”之间有一对多的实例连接关系,表明了图形管理类管理了哪些电气元件。对象“工作区间”向“图形管理”对象发送消息,执行“增加”、“删除”等服务;“图形管理”对象向“电气元件”对象发送消息,使用“绘制”、“选中”等服务;“电气元件”对象向“图形信息”对象发送信息,使用“获取图层”、“获取颜色”等服务;“电气元件”对象向“库服务器”发送消息,使用“入库”和“提取”服务。
1.2补充模型
  在面向对象分析中,use case是对系统功能使用情况的一个文字描述序列。每个use case针对一项系统功能,描述系统外部的活动者如何与系统进行对话,即具体地说明活动者透过系统边界向系统发什么信息,系统进行什么处理以及返回什么信息。use case可以较好的表达用户对系统的功能需求。
  交互图是一个use case与完成相应功能的系统成分之间的对照图。它表明use case中陈述的每件事是由系统中对象的哪个服务响应和完成的,以及这个服务又进一步用到哪些别的对象服务。交互图的表示方法如下:
  (1) 在交互图的上部并排的列出与某个use case有关的一组对象(给出其类名)。
  (2) 在每一类对象下方画一条垂直线,并在这条线上用一些棒形线条表示该对象的服务按时间方向(从上到下)的执行动作;一个棒形条表示一个服务的执行。
  (3) 如果一个对象服务在某一个执行点上
应该向另一个对象发消息,则从这一点向后者画一条带箭头的水平直线,并在旁边注明被引用对象的服务名。
  (4) 在系统边界外(通常在交互图左侧),写出对这组对象所执行的功能的描述。
  交互图比类图的消息连接更清晰地表示了对象之间的行为依赖关系,并且在表示对象之间交互情况的同时,也表示了对象与系统之外活动者的交互。对于本图形系统,由于篇幅所限,在此仅以电气元件的绘制为例来说明交互图的建立。交互图如下所示:

其工作过程如下:
  a.编辑:在工作区间点击相应的电气元件的位图或按钮控件;
  b.增加:在相应的电气元件的集合管理类增加一个元件对象并得到指向该元件的对象指针;
  c.绘制:利用该对象指针调用绘制函数进行该类图元的绘制;
  d.获取图层和颜色:获取图元的图层和颜色以完成绘制;
  e.将图元显示在客户区。

2 图形系统的设计
   基于以上对图形系统的分析以及所建的OOA模型,可对图形系统设计如下:
2.1 图形界面的设计
  图形系统作为人机交互的主要渠道,除了要能实现强大的绘图与交互功能外,还要显示美观,结构清晰,与用户交互过程要简单方便。本图形系统设计了具有Windows风格的界面,创建了一个工作区间窗口,以进行图元编辑及图层管理,并设计工具条以及一系列界面美观、交互方便的对话框。具体界面可参看本文所附例图3。

2.2电气图元数据结构的设计
  对于图形系统而言,最基础也是最重要的功能,是对不同类型电力系统元件的绘制和编辑操作。采用面向对象思想把数据和功能合为一个单元,具体设计为每种元件都定义一个类,具体一个元件对应一个对象。每种元件都具有自己各种属性和数据,如大小、形状、位置等,也具有自己的各种行为,如绘制、移动、旋转、复制、删除等,利用面向对象技术把数据和操作封装在一起,从而实现图形系统的各种功能和操作。同时,各种元件除具有自己特殊的属性和行为外,还有一些共同的地方,如颜色、画笔宽度等属性。这样就可以利用C++类继承和派生的特点,建立不同元件的公共抽象基类,其他元件类在此基础上派生而成,这样极大的减轻了编程量,消除了冗余的代码,又增强了程序的可读性。
2.3电气图元管理的设计
  在电力系统图形编辑过程中,所涉及的图元众多,如何把它们有序的组织起来,一直是比较困难的问题。在本图形系统中由于数据类型比较多且交换频繁,所以采用了基于C++类模板CTypedPtrArray来实现对指向图形元素对象的指针的组织和管理。每个图形元素是图形元素类创建的一个对象,在创建这个对象时得到指向这个对象的指针,通过类模板CTypedPtrArray建立对象指针数组来管理这些指针,实现图元对象的增加、删除等操作,进而达到管理所有图元对象的目的。
2.4图形信息管理的设计
  为了能灵活的对图元的颜色以及对图层的管理,本图形系统设计了一个图层结构和一个图形信息类。图层结构包含了图层的名称、图层的唯一识别号以及图层的显示状态(布尔型变量)。图形信息类的属性包括一个存储颜色列表的数组和一个存储图层列表的图层结构数组,服务包括获取颜色以及获取图层的显示状态。在创建完一个图元对象,并请求该对象的“绘制”服务时,首先向图形信息类请求“获取图层的显示状态”服务,判断该对象所属图层的显示状态,如果处于不显示的状态则返回,服务不再继续,否则,向图形信息管理类请求“获取颜色”服务来创建画笔,进行图元的绘制。基于以上的服务流程以及图形系统的重绘机制,只需设计出图形信息管理交互界面,对图形信息类的颜色列表数组和图层结构数组进行相应的操作即可实现图形颜色和图层的管理。
2.5图形方式下参数录入的设计
  本图形系统设计了一系列元件参数对话框,并编写了相应的代码。用户能够在网络接线图上方便迅速的进行数据处理。只要双击接线图上某种类型的元件,应用程序便会弹出同该类元件相对应的元件参数对话框,用户通过填写对话框各项参数,即可完成对某一图元的建模,或对已建模图元的参数的修改。这种图形化的参数录入方式既直观又明了,后台数据库的读写由应用程序完成,对普通用户完全屏蔽,用户不用再去担心文件格式的正确与否,所要做的仅仅是鼠标的点击和参数对话框的填写,从而大大提高了数据处理的效率。
2.6数据库的设计
  图形系统是作为一个独立的模块镶嵌在电力系统分析软件中的,最终图形中的各设备图元的参数和拓扑信息要传送给其它的各分析功能模块,一个好的数据接口最能体现模块的独立性、易用性和通用性。基于图形系统的特点采用Microsoft Access进行数据库开发,在数据库结构上,采用按元器件分类列表的关系数据库结构。
  在创建完系统接线图对图元进行参数录入后,也就把图元的图形类参数以及系统类参数存入数据库,此时的数据库里存放的图形类参数包括图元的坐标、长度以及放置方向等基本图形信息,我们称之为“生数据库”。但是,图形系统的数据库最终是面向各种电力系统分析软件的,而这些分析软件需求的往往不是这些基本的图形信息,而是进行分析所必需的拓扑信息。所以本图形系统对数据库进行了转换,在“生数据库”建立后,由嵌入SQL语句的主程序对“生数据库”进行查询和转换,生成包含电网拓扑信息的通用数据库——“熟数据库”。

3 图形系统的特点
  (1) 能够方便、快捷的绘制出各种电力系统常用元件,如发电机、变压器、母线、刀闸等,并且能够对图中的元件进行任意移动和删除。
  (2) 具有强大的编辑功能。能够对图中的一个或多个元件进行选择、复制、拷贝、粘贴、旋转、撤销等工作。为了区别不同的电压等级和其他属性,用户在绘制接线图时能够任意指定当前绘制的线型、线宽、颜色,文字标注的字体和字号,对已绘制的图元,也能随意改变上述属性。
  (3) 能对图形进行分层管理。能动态创建图层,图层创建的同时,工作区间图层视图的树结构自动增加一条树的分支,图层创建完后只要双击某一树支即可对该树支对应的图层进行浏览。每个图元都属于特定的图层,若用户选择了当前活动图层,则仅显示属于此图层的图元。这种图层的概念可以用来标示不同电压等级的图元。
  (4) 在网络接线图上实现了可视化操作。能通过鼠标点触相应元件,即可实现变压器分接头的切换、刀闸和开关的开合以及电容的投切。
  (5) 本图形系统采用了面向对象技术,
对各种电气元件设备有统一的操作模式,能很方便的将新的元件引入编辑系统以及扩充新的功能模块,具有一定的可拓展性和开放性。

4 结论
  本图形系统利用Visual C++和Microsoft Access混合编程的方法进行开发,基本做到了人机交互良好、操作方便,并且与数据库紧密相连。由于采用了面向对象的方法,图形系统的扩充和维护都比较方便。目前本图形系统在操作票系统以及继保整定方面得到了应用,实践证明,该图形系统具有很高的实用性和推广价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top