本站首页 电路图 元器件 设计制作 电子维修 电子资料 技术资讯 单片机 pcb 电路制图 创意设计 造型设计 电脑网络 平面设计 神气科技 创业资料 产品营销 供求信息 本站邮购 创业指南 i c设计 研发生产 网站制作 人力资源 免费资源 实用查询 工业设计 动画制作
您当前的位置:中国电子产品开发网创意设计设计文献 → 创意设计内容 退出登录 用户管理
创意设计栏目导航
热门创意设计
相关创意设计
面向对象程序设计方法在潮流计算中的应用
作者:佚名  来源:不详  发布时间:2008-2-3 16:13:43

减小字体 增大字体

提供数字电路设计、模拟电路设计、单片机软件开发,电子产品批量生产,请联系:
无锡神气科技有限公司:
www.shenqikeji.com;0510-88966311;13961896016;qq:908821848

摘  要:简要介绍了面向对象程序设计方法的特点、基本方法和步骤。重点介绍了面向对象技术在潮流计算程序中的应用。最后简单讨论了应用面向对象技术将潮流计算程序可视化的问题。


关键词:面向对象,潮流计算,可视化


abstract: firstly, the paper briefly introduces characteristics, basic methods and steps of object-oriented programming(oop), then mainly illustrates oop’s application in power flow calculation. and in the end, the article briefly discusses visualization of power flow calculation using oop. 


keywords: object-oriented , power flow calculation, visualization


1.引言


面向对象程序设计方法(object-oriented programming,简称oop)是90年代开始流行的一种程序设计方法,它的出现使传统程序设计思想和设计方法发生了革命性变化。传统的程序设计方法是一种结构化程序设计方法。该方法基于功能分解,将整个软件看作是一个个子功能模块的组合。由于软件功能经常随应用需要而改变,软件的整体结构也就必须作出相应改变,不利于软件的维护与扩充[1]。


面向对象程序设计与之不同,该方法基于对象分解,将整个软件看作是一个个离散对象的组合。由于对某个特定问题域来说,该域的对象组成基本不变,因此,这种基于对象分解方法设计的软件在结构上更加稳定。此外,在传统程序设计中,数据和作用在该数据上的操作是相互分离的,同样的数据可能对应不同的操作,同样的操作也可能作用在不同的数据上。对于这些问题,编程人员必须时刻加以考虑,加重了程序设计者的工作负提。在oop方法中,由于数据以及作用在该数据上的操作都直接封装在对象中,这就避免了传统程序设计中数据和操作的潜在的不一致性。


采用oop方法还有一个好处,由于整个软件被看作是对象及其相互作用关系的组合,便于编程人员进行抽象思维。oop程序设计方法有两个最重要的特征—封装和继承。通过封装,对象将其实现细节隐藏在内部,这些细节对外部对象来说是不可见的,外部对象对该对象的作用只能通过该对象自身的操作实现。可见,封装改变了传统的对象作用方式,它通过隐藏细节减少了程序代码间的相互依赖性,方便了对象的构造和扩充。封装的另一作用是把对象作为一个不可分割的整体,便于编程人员进行抽象思维。继承则是面向对象方法的另一重要特征。通过继承,新类不仅具有旧类的属性和方法,而且还可以具有自身特有的属性和方法。由于旧类性质在新类中不必重新定义,因此,继承提高了软件的可重用性。除此之外,继承的使用还有一个好处,当要对软件进行扩充时,可以从类库中直接派生新类,并为该新类添加相应的代码即可。使用这种方式进行软件扩充,由于不需要了解原有程序的内部细节,原有程序也无需进行修改,大大提高了软件的可靠性与安全性。


由于面向对象程序设计方法的以上优点,该方法已经在操作系统、数据库管理、作战模拟、计算机网络与通信、人机界面设计等方面获得了广泛的应用。


2.   oop方法的基本概念和步骤


2.1 oop方法的基本概念


与面向对象程序设计相关的基本概念有对象、类、消息、抽象、封装、继承、多态性等。


对象是对现实实体的抽象,它包括数据和操作两部分。数据用于描述对象的性质、状态,操作则用与描述该对象的行为。在面向对象方法中,对象数据的获取与改变必须通过该对象自身的操作进行。类用于表示具有相同或相似性质的一组对象,也就是对象的数据类型。消息是对象间相互传递的信息。在面向对象方法中,对象必须根据其所接受到的消息执行相应的操作。


抽象指的是强调事物的主要方面,忽略其次要方面。抽象的结果是建立一系列对象、类和子类。合理使用抽象,可以避免过早考虑细节,便于编程人员进行抽象思维。封装指的是对象的各种外部性质同其具体的内部实现相互分离。利用oop方法的消息传递和封装机制,编程人员在进行软件设计时只需要知道该对象有哪些外部性质(即接口),无需了解其内部细节,从而有助于编程人员将精力集中于所要求解的问题。继承是派生新类的方法。通过继承,新类不仅具有旧类的属性和方法,而且还具有自己独有的属性和方法。在软件设计中,继承的使用有助于提高该软件的可维护性、可扩充性和可重用性。


多态性是指在一组具有继承关系的类层次中,同一个消息发给该类及其该类的子类对象时,这些对象会作出不同的响应(即一个消息,多种行为)。多态性的使用不仅有助于编程人员进行抽象思维,而且还为该软件的扩充提供了极大的灵活性。


2.2              oop方法的基本步骤


目前有多种面向对象程序设计方法,不同的方法所采用的基本步骤也各不相同。总的来说,运用oop方法进行软件设计,一般要经过系统分析、系统设计、对象设计、应用程序生成、软件的测试与维护等几个阶段。


系统分析阶段的主要任务是对系统进行对象分解,从中抽象出对象、类及子类,并建立该系统对象模型。该阶段不涉及对象模型的具体细节,所建立的对象模型也与具体程序设计语言无关。


系统设计阶段的主要任务是确定目标系统问题求解策略,包括系统划分为子系统以及各个子系统的硬件和软件资源配置等。该阶段的设计决定了整个软件的体系结构和设计风格。


对象设计阶段的主要任务是完成各个对象(类)的细节处理,包括内部数据结构表示、对象接口及其算法等。应用程序生成。该阶段主要是根据对象间的相互作用关系,完成整个系统软件构造。在该阶段,编程要按照一定规则进行,软件要符合面向对象程序设计风格。


软件的测试与维护阶段的主要任务是保证软件的正确、可靠运行。


3.   oop方法在潮流计算中的应用


3.1 电力系统对象模型


潮流计算是电力系统分析中最基本的一种计算。对电力系统的组成元件按照面向对象的原则进行建模既是oop方法在潮流计算中应用的重要体现,同时也将对潮流计算程序的鲁棒性产生重大的影响。建模的关键在于对电力系统的组成元件进行分类,从中抽象出各类元件本质上的相同点,并考虑到便于潮流计算程序的编写和实现可视化,建立各元件类和子类。


文献2中首先建立了一个通用元件父类,然后派生出了母线类,连接类和非线形连接类。再由这三个类分别派生出具体的与实际设备对应的元件类。文献3和文献4则提出了将所有对象分为概念对象和物理对象两种,如图1所示。其中针对物理对象类的建立和派生与文献2基本类似。而由概念对象类派生出了节点类和支路类,进一步明确提出了pv,pq和平衡节点类。这种分类对潮流计算基本原理的体现更明显。文献5利用所建立的对象模型进行网络拓扑处理和潮流计算,充分发挥了对象的消息传递特点。文献6针对ac潮流和dc潮流问题进行了面向对象的建模。




图 1(略)


为了最大限度的体现出面向对象技术的优越之处,同时又便于潮流计算程序的编写。应该首先定义一个元件基类,根据元件在实际的电力网络中的连接情况派生出各元件类,而且各类的继承层数不宜过多,如图2所示。




图 2(略)


各元件的分类不宜过细,由元件基类继承而得的元件类不要过多。以各种开关设备为例。相应的开关类可以包括隔离开关、断路器等仅用于连接网络的设备元件。为避免混淆,可以定义一个成员变量,来标示各种不同的设备。而没有必要为每一种具体的设备都定义一个相应的元件类。由开关类派生的对象主要用于网络拓扑中确定网络结构,为形成导纳阵做必要准备。而母线和变压器对象不但要用于网络拓扑中,而且要计算其电气参数(线路阻抗,对地导纳等)来组成导纳阵中的相应元素。


3.2 稀疏矩阵处理


电力系统分析涉及大量的稀疏矩阵运算,稀疏矩阵运算能力高低直接影响系统的整体性能。稀疏矩阵运算需要解决两个问题:一是稀疏矩阵的存储问题。合理的存储不仅能够提高存储空间的利用效率,而且能快速进行稀疏矩阵非零元的插入、查找、删除等操作。二是针对稀疏矩阵的特定处理,如节点排序、因子化、稀疏方程求解等。稀疏矩阵表示数学上的一类特殊矩阵,这类矩阵的处理具有许多共性。因此,可以对稀疏矩阵进行抽象和封装,定义单独的稀疏矩阵类。有关稀疏矩阵的一些特殊运算,如稀疏矩阵的因子化、节点排序、稀疏方程求解等,可以作为方法封装在稀疏矩阵类中。有了稀疏矩阵类,稀疏矩阵的使用就变得比较方便,可以象定义普通变量一样定义稀疏矩阵。另一方面,由于对稀疏矩阵进行了封装处理,稀疏矩阵的修改和扩充也变得比较容易。只要保持稀疏矩阵的接口不变,这种改变就不会对原有程序的正常运行造成影响。


3.3 通用潮流类的构造


潮流计算包含算法和接口两方面的内容。以往的潮流程序,由于缺少统一的接口标准,不同的算法使用的接口也不相,给用户使用带来不便。通用潮流类的构造主要就是为了给不同的潮流算法规定统一的接口标准。借助通用潮流类,用户不仅可以为不同应用选择不同的潮流算法,而且还可以自己扩充新算法。此外,由于不同的潮流算法都具有相同的接口界面,软件的模块化与集成处理也变得比较方便。


3.4 软件结构安排


软件结构安排在oop方法中很重要,合理的软件结构有助于提高软件的可维护性和可扩充性。软件结构安排应遵循以下原则:第一,整个软件以系统对象模型为基础,软件的修改与维护比较方便。第二,软件具有显著的模块化特征,便于软件的集成与管理。第三,采用了客户-服务员机制。在该机制中,上层模块通过发送消息向下层模块请求服务,即上层模块充当客户,下层模块充当服务员。由于下层模块的实现独立于上层模块,上层模块在申请服务时,也无需了解下层模块的服务细节,各个模块的维护与扩充都很方便。


4.潮流计算程序可视化的讨论


可视化是目前各种应用软件的一个发展趋势,潮流计算程序也不例外。可视化程序应以接线图为主要的操作界面。在前台的操作界面上,用户利用鼠标在图上点击相应的设备元件,在弹出的各种功能对话框中完成各项具体的功能。具体的潮流计算程序则在后台,根据用户在前台输入的数据、信息,以及底层数据库中的数据进行潮流计算,并将结果存入数据库中。然后由前台负责将计算结果以数据列表或数据曲线的形式将结果显示出来。


可视化要求各元件对象不仅要具有计算用的电气参数信息,同时也要具有用于绘制电气接线图的绘图数据信息。可以将这些信息分别存入不同的数据库中保存。由于用户只对潮流计算的相关数据感兴趣,而不会关心具体的绘图数据。因此可以利用序列化技术,将绘图数据存入数据文件中去,而不必将其存入数据库中。从而减少了一部分程序开发工作,提高了开发效率。


5.结语


面向对象的程序设计方法在程序分析、设计和实现的各个过程都从问题的本质出发,建立模型、设计策略和完成实现。对象的独立性使得系统的修改和扩充更加容易,对象的继承性提高了代码的可重用性并大大提高了开发效率。


目前应用oop方法编写的电力系统应用软件种类繁多。而且各软件对电力系统元件的对象建模各不相同,虽各有长处但无法兼容,更无法提及代码的重用性。从某种意义上讲浪费了众多的软件和代码资源。因此有必要定制一套建模标准,同时建立通用的、开放式的电力系统应用类库(类似于微软的mfc库)。类库中既有各种元件类,也可以包括各种基本的电力系统计算应用类,例如稀疏矩阵计算类、潮流计算类、短路计算类等等。类库中的类具有标准的输入输出接口。各电力系统应用软件开发商可以直接利用标准类来编写各种不同的应用软件。也可以根据自身需要由标准类继承得到自己所需的新类。这样既提高了开发效率降低成本,也提高了不同厂商所开发软件的兼容性。由于是开放式的类库,当电力系统中采用了新型的设备,例如各种facts装置,可以方便的编写对应的新类并充实到类库中去。


随着电力系统应用软件的不断发展,oop方法越来越受到开发商和用户的青睐。在电力系统的分析、控制、仿真和监测等方面将有广阔的应用前景。


提供数字电路设计、模拟电路设计、单片机软件开发,电子产品批量生产,请联系:
无锡神气科技有限公司:
www.shenqikeji.com;0510-88966311;13961896016;qq:908821848
[] [返回上一页] [打 印]
创意设计评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告联系 - 下载声明 - 友情链接 - 网站地图 - 管理登陆 - - -