摘 要:针对继电保护整定计算应用的特点,运用组件化的设计思想,提出了基于组件技术的继电保护整定计算软件的构架方案和体系结构,并用com技术开发实现了继电保护整定计算组件和电力系统基础计算组件。在VB开发的图形用户界面和SQL Server数据库环境下,验证了组件对语言的独立性和对应用环境的适用性。
关键词:组件软件;继电保护;整定计算;组件技术
DESIGNING AND REALIZING OF COMPONENT-BASED SOFTWARE FOR RELAY PROTECTION SETTING CALCULATION
DENG Jian, SONG Wei, ZHANG Ming-xia,YANG Yi-han
(North China Electric Power University,Baoding 071003,Hebei Province,China)
ABSTRACT: Aiming at the characteristics of the application of relay setting calculation and the thoughts of employing componentized design, the truss project and system structure of relay setting calculation software, which are based on COM technique, are put forward. And in this paper, relay setting calculation component and basic calculation component of power system are also exploited and realized. Under the GUI exploited by VB and the circumstance of SQL database and the independence to programming language and the adaptability to different applying condition of component are validated.
KEY WORD: component software; relay protection; setting calculation; component techniques
1 引言
继电保护装置是电力系统最重要的二次设备之一,其可靠动作对电力系统的安全稳定运行起着重要的作用。正确的保护定值则是防止事故发生和扩大的基础,在电力生产运行工作和电力工程设计中,继电保护整定计算是一项必不可少的内容。虽然计算机电网保护整定计算的发展已达到实用水平。但是软件在体系结构和设计思想上存在以下不足,使推广一直很慢:
(1)软件对应用环境的适用性差,很难在不同应用环境间共享代码;随着环境的变更,许多代码失去其生命力,不得不重复开发;软件可维护性差,难以适应设备配置、电网结构及保护整定原则的差异,难以及时应用新理论、新方法,适应生产运行的新要求。从而造成软件开发周期长、成本高的恶性循环。
(2)软件严重依赖于编程语言,用不同语言开发的应用难以交互,开发人员必须在各种编程语言间做出取舍,在同一应用中难以荟萃各种编程语言提供的优良性能,因而软件不能满足多方面的需求。
(3)封闭的应用程序体系结构缺乏必要的灵活性,各部分频繁传递数据,关系错综复杂,没有形成足够独立的功能模块,应用一旦成型,难再变更。
(4)面向对象而非面向服务的设计框架缺乏开放性,难以满足日益广泛的分布式网络应用的需求。
鉴于电力系统继电保护整定计算软件开发过程中的上述问题,并考虑到软件组件技术强大功能和生产应用中的具体需求。本文提出了一种新的解决方案,即基于组件技术的继电保护整定计算软件的体系结构和构架并实现了其中的逻辑功能组件。
2 继电保护整定计算软件组件化设计思想
随着计算机软件技术的发展,面向对象及组件技术为开发开放式、分布式的系统提供了强大的工具。软件开发者无需重新编写已有代码,利用面向对象技术和组件技术,可以通过创建可重用组件,来简化软件设计工作,提高软件的灵活性。
组件化的设计思想是将单独的、庞大的、复杂的应用程序分成多个模块,但这里的模块不再是简单的代码集,而是自给自足的组件。这些组件模块可运行在同一机器上,也可运行在局域网、广域网甚至Internet上的不同机器上,原则上具有一般组件的“即插即用”特性。
但要实现可重用的组件,关键是要能定义软件中可以重用的部分,且每一部分都有其特定的界面和所提供的功能并尽可能的符合系统的应用逻辑和业务要求。
目前,组件技术主要有以下三个比较有影响的规范:OMG起草与颁布的CORBA;微软公司推出的COM/DCOM/COM+;SUN发表的JavaBeans。
由于Windows操作系统的流行,COM/DCOM/COM+组件技术深受程序员偏爱,目前已有不少系统基于此组件技术,因此本文提出的继电保护整定计算软件组件化设计思想也是基于微软的COM技术。
3 COM技术的基本原理
COM是Microsoft公司推出的开放式组件标准,COM定义了一种访问软件服务的通用方法,它能够跨越连接库、应用程序、系统软件甚至网络。
COM一方面是提供了一种有效的途径将软件分块,每块软件提供各自的服务,开发者能够使用面向对象的方法去设计和开发程序,简化了系统复杂性。另一方面又提供了访问软件服务的一致性,不管访问的服务存在于动态连接库、另一进程或系统软件中,均可将它们当成COM对象,使用同一种方法去访问。此外,COM是独立于编程语言的,它定义了一个对象必须支持的二进制界面,开发者可以使用不同的语言来编写支持该界面的COM的对象和调用该对象的客户。再者,COM的版本管理功能使得在有新功能的新版本软件替换旧版本时,不必更改已有的客户程序,因为COM对象具有支持多个界面的能力,新增功能时可用添加新界面的形式来实现,因而可不修改原有的界面,这样已有的客户程序就不会受影响。
4 基于组件的继电保护整定计算软件设计
根据软件开发的组件化思想,本文运用了COM技术对电力系统继电保护整定计算软件的开发设计进行了研究。
4.1 基于组件的继电保护整定软件的构架方案
继电保护整定计算以网络拓扑分析、潮流计算、故障分析为基础,各个过程既相互独立又彼此联系,软件的组件化实现亦可从不同角度考虑,相应的有多种实现方法。
4.1.1无状态实现
严格实现无状态组件,在组件激活时读取系统数据并在处理后将结果写入数据库。设计良好的功能组件应没有状态,组件以单纯的功能模块存在,灵活轻便,构建其它应用时没有维护组件状态一致的负担。此类组件一般与其它组件或应用程序交互的信息量少,所处理的数据量少或可一次性处理完毕。无状态组件被激活时,方从数据库或接口函数的传入参数获取必要的数据,处理后将结果通过接口函数的输出参数传给客户或写入数据库,如图1。 (图片) 此方案将各个具体的计算和分析功能均实现为独立的组件,整个应用的划分粒度大,各组件功能单一,相互独立,但存在的弊端也不容忽视。
在电力系统计算中,结线分析、潮流计算、故障计算等基本的计算都需要大量的系统数据,对继电保护整定计算而言,需要考虑各种可能的故障方式、检修方式、系统运行方式及其组合,也就是说,保护的整定计算需要频繁的故障计算和网络拓扑分析(包括结线分析和网络矩阵的形成)并调用相应的组件对象,若严格实现为无状态组件,在组件激活时读取或传入大量数据并在处理后传出或写入大量数据。而读写数据库时需要占用数据库资源(连接),其执行过程势必大大占用系统资源,影响执行效率。
由于继电保护整定计算的特殊性和电力系统分析计算的一般性,组件的无状态设计原则在本应用中的实践显得差强人意。
4.1.2有状态实现
如上所述,无状态实现的弊端之一是对数据库的频繁操作,为避免这种情况,应用组件的交互性,可将组件均实现为有状态组件,其状态为组件作用的电力系统拓扑信息及相关电气量的载体,在具体实现中可用面向对象的方法对其进行封装。
组件创建后,读取原始数据量化其状态,处理结果亦可存入相应的状态承载变量,系统数据以组件状态的形式存在于内存中,传递给其它应用和组件。因而其它的组件可由传入的参数获得系统数据,不必再对数据库进行重复的操作,示意如图2。但是,由于电力系统的一般分析计算都需掌握整个系统的拓扑和有关参数,这样的话,组件间传递的数据量实际上是很大的,大量的数据传递同样的影响应用的执行效率。另外,若应用中存在多个激活的组件,则内存中可能存在系统数据的多个拷贝,多个拷贝占用内存对性能的影响是相当可观的。(图片) 再者,网络的拓扑分析、潮流计算、故障计算等是电力系统基本计算,是许多分析应用的基础。特别是网络的拓扑分析更是所有计算的必要前提,有关网络矩阵、网络方程的形成和修正也是系统运行分析和仿真计算中的必要环节,而且网络的拓扑分析、潮流计算、故障计算作为继电保护整定计算以及电力系统其它相关应用的一般前提,又存在一定互为因果的关系,在组件设计过程中,大粒度的细化意义不大,相互间不可避免的交互也会影响高层应用的执行效率。
所以,这种大粒度划分、组件具有各自状态的实现方法并未根本上解决前面的问题。
4.1.3本文的实现
如前所述,无状态组件虽然实现起来比较简单,但对本文应用而言,由于需要频繁的操作数据库,造成应用执行效率的降低,无状态实现方案并不可行。所以,本文中完成电力系统逻辑功能的组件均设计为有状态组件。另外,应用划分的粒度太大,会造成组件间交互的数据量增加,且受数据类型的局限,有些数据如电力系统数据的传递需对数据进行繁杂的“打包”和“解包”处理,其实现几乎不可能。因而采用如下所述的实现方案。
考虑到网络拓扑分析、潮流计算、故障计算等电力系统计算的一般性和应用广泛性,将网络拓扑分析、潮流计算、故障计算实现为一个电力系统基础计算组件COMElecSystemCompute;继电保护的整定计算作为一个特定的应用实现为一个独立的功能组件COMProtectionSet,如图3。(图片) 这里的网络拓扑分析不仅包括结线分析,本文将节点导纳矩阵、节点阻抗矩阵等基本网络矩阵的形成,以及支路检修、发电机投切、外部等值系统运行方式改变等情况下网络矩阵的修正等功能都归结为广义的网络拓扑分析。作为一种设计方法的研究,继电保护整定计算组件主要实现零序电流保护的全网自动整定,在现场的实际应用中,全网的自动整定并不常使用。
在具体实现中,将电力系统用C++类CPowerSystem描述,封装其所有的拓扑信息和电气参量。
4.2 基于组件的继电保护整定软件体系结构
4.2.1网间分布式应用体系结构
分布式网间应用充分挖掘了组件的可交互性、可维护性、独立发展性、语言无关性等优点,集中体现了组件软件的设计思想,也是大型应用软件设计模式的基本发展方向。
Windows DNA是微软致力于分布式网间应用的直观体现,其结构示意图如图4所示。其中涉及到许多技术细节和通用服务。而在各层都有所体现的、最为重要的技术就是COM和COM+。COM是所有DNA(Distribute Internet Application)三层系统使用的核心技术,可简单的理解为快速的、面向对象的、可以打包的技术。(图片) 4.2.2继电保护整定计算软件的体系结构
继电保护的整定计算是电力系统规划、设计、安全稳定运行的重要环节,涉及到网络的拓扑分析、潮流计算、故障计算等具体过程,一个完整的继电保护整定计算软件应同时具备上述功能。在本文中,将拓扑分析、潮流计算、故障计算以及其它电力系统的分析计算等功能封装为组件COMElecSystemCompute;组件COMProtectionSet则完成继电保护整定计算的功能。这也是本文构架商业层的基础。(图片) 图5为基于COM的继电保护整定计算软件的基本构架。各种电力系统的分析计算最终都落实到某一具体物理系统,需要建立系统数据在内存中的镜像模型,在本文的实现中,借助于系统类CPowerSystem封装系统数据。
另外,本文也充分考虑了与数据层和表示层的衔接,因而设计了客户端组件COMConvert和进行数据库操作的数据访问组件COMDataAccess,以构建完整的基于Windows DNA三层应用体系结构的框架。
5 逻辑功能组件的实现
Windows DNA(分布式网间应用体系结构)一般分为表示层、商业层和数据层,其中集中于商业层完成应用的主要逻辑处理的组件称为逻辑功能组件。本文将详细讨论逻辑功能组件COMProtectionSet和COMElecSystemCompute的实现。
5.1电力系统基础计算组件的实现
潮流计算、故障计算等电力系统基础计算均有相对成熟的算法,考虑到程序的可读性和可维护性,本文将潮流计算和故障计算的处理分别封装为类CLoadFlowCompute和类CFaultCompute。
在接口设计上,由于组件COMElecSystemCompute设计的目标是将电力系统的基本计算进行封装,为继电保护整定计算及其它高层应用提供“插件”,所以网络的拓扑分析、潮流计算、故障计算及分支系数和故障电流最值等计算因其各自的适用性不尽相同,虽然将其实现于同一组件,但分别对应不同的接口。接口设计如图6所示。(图片) 5.2 继电保护整定计算组件的实现
继电保护实际上是通过继电保护装置、断路器、PT、CT等实体元件产生作用的一种逻辑功能,为便于数据的分析和管理,本文将继电保护装设位置、保护类型、作用的断路器、对应的保护装置及PT变比和CT变比等相关信息封装为抽象的类CProtection,作为各种保护的基类。
零序电流保护、相间保护、电流保护等由于各自的整定原则、动作量的不同,分别进行抽象,对应的C++类分别为CXJJLProtection、CDLProtection、CJDJLProtection、CLXDLProtection。
由于保护工作原理的多样性,不同类型保护的整定计算也具有特殊性,因而在接口设计上应将不同类型保护的整定计算分别实现不同的接口。如图7所示。(图片) 6 结论
电力系统的复杂多样性与继电保护装置本身的适应性间的差异,使继电保护整定计算软件缺乏灵活性,规范编制和推广应用受到局限。而组件软件在可重用性、互操作性、独立发展性、调度及效率等方面都具有优势。基于组件技术的继电保护整定计算软件运用了组件软件的设计思想,结合电力系统网络结构的多样性和相关应用的共性,开发了电力系统基础计算组件和继电保护整定计算组件。并且在VB开发的图形用户界面和SQL Server、Access数据库构成的应用环境中进行测试,验证了组件对语言的独立性和对不同应用环境的适应性。而且组件在不同开发环境和电力系统应用软件中能够“即插即用”,避免了重复开发,实现了软件资源的共享。此外,由于实现了软组件,软件有很好的可维护性和可扩充性。
参考文献
[1] Hakavik B,Holen A T. Power system modeling and sparse matrix operations using object-oriented program -ming[J].IEEE Transactions on Power Systems, 1994 , 9(2)
[2] 潘爱民(Pan Aimin).COM原理与应用(Principle and Application of COM).北京:清华大学出版社(Beijing:Tsinghua University Press),1999
[3] 张伯明,陈寿孙(Zhang Boming,Chen Shousun).高等电力网络分析(Analysis of the higher electric power network)[M].北京:清华大学出版社(Beijing:Tsinghua University Press),1996
[4] 贾春娟,郭桂同(Jia Chunjuan,Guo Guitong).COM技术及其规约插件的实现原理(Thechnology of COM and implementation principle of its protocol card)[J].继电器(Relay),2001,29(3):49~51
[5] 杨镜非,黄家裕,李维(Yang Jingfei,Huang Jiayu,Li Wei).电力系统潮流计算组件的实现(Realization of Power Flow Calculation Component)[J].电网技术(Power System Technology),2000,,24(4):57~59
[6] 但唐军,陈星莺(Dan Tangjun,Chen Xingying).基于COM技术的数据库设计及其在电力监控系统中应用(Database Design Based on COM and Its Application in Power Monitoring System)[J].电力自动化设备(Electric Power Automation Equipment),2002,22(2):20~25
[7] 胡世骏,谢衡,袁林,等(Hu Shijun,Xie Heng,Yuan Lin,et al).分布式组件技术的电力市场管理软件系统结构(The System Configuration of Power Market Management Software Based on DCOM Technology)[J].电力自动化设备(Electric Power Automation Equipment),2001,21(1):30~32
6/25/2005
|