企业名片
应用 UML 开发智能继电保护的整定计算程序
时间:2014-03-25 10:37来源: 作者:鄂电电力 点击:
***
次
摘要:电力系统复杂应用软件的开发必能采用先进的软件工程学方法。统一建模语言(Unified Modeling Language,UML)是近年来软件工程领域内取得的最重要成果之一。文章介绍了UML的产生背景及特点,然后详细讨论了UML在智能继电保护整定计算及管理系统(ICAPE)开发中的应用。结果表明,统一建模语言(UML)具有标准性、系统性、可视化、自动化等优点,在电力系统复杂软件的开发中,将其合理地应用于软件开发的各个阶段,有助于提高软件开发效率及软件质量。因此,UML对于电力系统软件开发具有实际应用价值。 1 引言 电力系统是一个大规模互联系统。随着计算机应用的飞速发展,电力系统应用软件也变得越来越复杂。由此带来一系列问题,如:开发周期不断变长,开发费用不断增高,软件质量难以保证,维护难度愈来愈大,项目失败的可能性增大。在积累了长期的软件开发经验和教训后,人们越来越深刻地认识到,对现实世界问题进行科学的抽象,进而建立简明准确的表示模型是把握复杂问题的关键。模型可以使人们从全局上把握系统的全貌及其相关部件之间的联系,可以有效地分解系统的复杂度,可以防止人们过早地陷入各个模块的实现细节。因此,软件系统的分析、设计应从建模开始。建模语言成为软件工程学中的研究重点。统一建模语言(Unified Modeling Lan-guage,UML)便是这一领域中最重要的、具有划时代意义的研究成果之一[1~3]。 继电保护对确保电力系统的安全稳定运行起着极为重要的作用。继电保护整定计算、校核,以及整定单的编制、整定方案的制订等既繁琐又责任重大。为此,笔者和华东电力调度局合作开发了智能继电保护整定计算及管理软件包(Intelligent ComputerAided Protection Engineering,ICAPE)。该系统由7个模块构成:①网络拓扑绘图;②数据库管理系统;③短路电流计算;④保护整定计算;⑤知识库;⑥推理机;⑦报表输出。本系统功能复杂,模块较多。各模块既要相对独立,又需有机地结合到一起。在开发的分析、设计和实现,取得了很好的效果。本文对此予以详细阐述。该系统的详细功能特点及实现算法不是本文讨论的重点,将另文介绍。 2 UML的产生背景及构成 UML是一种面向对象的建模语言。在此之前,以各种形式提出的面向对象建模语言或方法不下50种[1]。这种繁荣的局面对面向对象技术的研究和发展起到了很大的促进作用。然而多种建模语言的同时流行也带来很大的问题。首先,用户难以区别不同语言之间的差别,并根据其应用特点选择合适的建模语言;其次,各种建模语言虽各有千秋,但用户不可能同时采用多种建模语言;第三,不同的建模语言在表示法及语义等方面存在着差别,这极大地妨碍了用户之间的交流。因此,在全面总结、比较各种建模语言的基础上,建立统一建模语言的工作变得极为重要。 自1994年起,由世界著名的面向对象技术专家Grady Booch,Jim Rumbaugh和Ivar Jacobson,在著名的Booch方法[4]、OMT方法[5]和OOSE[6]方法的基础上,广泛征求意见,集众家之长,终于完成了统一建模语言(UML)。UML是一种定义良好,易于表达,功能强大,且普遍适应的可视化的建模语言。它融入了软件工程领域的新思想、新方法和新技术,不仅可以支持面向对象的分析和设计,更重要的是能够强有力地支持从需求分析开始的软件开发的全过程。 因此,UML一出现便获得了工业界和学术界的广泛支持。1996年底,UML已经稳定地占领了面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。更重要的是,1997年11月,国际对象管理组织(ObjectManagementGroup,OMG)采纳了UML,将其做为基于面向对象技术的标准建模语言。因此,UML代表了面向对象的软件开发技术的发展方向,具有重大的经济价值和国防价值。 UML共定义了10种模型图。这些模型图可归纳为3类模型:用户模型、静态模型和动态模型。图1是UML模型的正交透视图。 用户模型包括用例图(use case diagram)从用户角度描述系统功能,主要用于系统需求分析阶段。 静态模型是UML的核心模型,包括5种图形: (1)类图(class diagram)描述系统中类的静态结构,包括其属性、行为,以及相互关系; (2)对象图(object diagram)描述类的实例以及实例之间的关系; (3)包图(packaged diagram)描述系统的分层结构,主要用于系统的粒度控制; (4)组件图(component diagram)描述系统各组件的物理结构(如EXE、DLL等)以及依赖关系; (5)配置图(deploymentdiagram)定义系统的物理体系结构,主要用于分布式系统。 动态模型是对静态模型的补充,它包括4种图形: (1)状态图(state diagram)描述类的对象的所有可能状态以及状态之间转换的条件; (2)活动图(activity diagram):描述满足用例要求所要进行的活动以及活动间的约束关系; (3)顺序图(sequence diagram)和合作图(collab-oration diagram)描述对象之间的动态合作关系。前者强调对象之间消息发送的顺序,后者强调对象间上下级关系。两者可相互转换。 3 应用UML开发ICAPE 在ICAPE的开发过程中全面应用了UML进行系统建模。例如:利用用例图进行需求分析;利用类图发现对象,定义属性和方法;利用包图进行粒度控制;利用状态图表示保护整定算法;利用顺序图说明主要界面的人机交互过程,等等。下面以几个典型的模型图加以说明。 3.1 利用包图进行粒度控制 包图是比类图抽象层次更高、粒度更大的模型图。ICAPE中约包含80个类。显然不可能将所有的类都表示在一个类图中,而应根据类之间的内在联系划分为几个包(package),如图2所示。在包内部, 类之间具有高内聚性;而包与包之间则是低耦合的。这样,系统开发人员可以更大的粒度审视系统,从而有效地降低系统的复杂性。 3.2 利用类图表示系统静态结构 类图是UML中最基本的模型图。利用它,可以非常清晰直观地表示出系统中的类、类的特征以及类之间的关系。在ICAPE的系统分析、设计阶段,最重要的工作就是研究类的结构、确定类的属性和行为。这是和传统的面向功能、以函数为中心的开发方法截然不同的。ICAPE中部分类如图3所示。图中表示了3种关系: (1)继承(inheritance)关系 表示类之间一般-特殊的关系,用三角符号表示。例如:对于一次设备类和母线类,前者是一般类,后者是特殊类。 (2)关联(association)关系 表示类之间的数量关系,用带数字的连线表示。数字表示关联的度(multiplicity)。例如:1条母线和0到多回线路关联,而1回线路必须和2条母线关联。 (3)聚集(aggregation)关系 表示类之间的包容关系、整体-部分关系,用菱形表示。在ICAPE中,需要同时管理3种运行方式(大、小、正常)下的系统参数,每种方式的数据又包括正序、负序、零序参数。因此,每个一次设备对象对应3个设备参数对象,而每个设备参数对象又包含正序、负序、零序参数对象。 3.3 利用状态图表示继电保护整定规则 在ICAPE中,保护整定算法用产生式规则表示。状态空间(state space)搜索法是专家系统的基本求解方法[7]。同时,状态空间表示法也是人工智能中最基本的形式化方法。UML提供了状态图来描述问题的状态空间。问题的状态空间表示问题的全部可能的状态及其相互关系。状态空间可用三元组(S,O,G)来描述。其中:S是状态集合。其中每个元素表示一个状态;So是S的非空子集,是问题的初始状态;G也是S的非空子集,表示目标状态集;O是操作算子集,利用它将一个状态转化为另一个状态。 在状态图中,状态用椭圆表示,操作用连接椭圆的有向弧表示。 继电保护整定计算问题可以用状态空间法清晰地描述。整定计算前,整定范围内所有保护的状态都为无定值(no value),即So={NoValue}。整定结束后,所有保护皆已整定,则G={FINISH}。整定规则就是操作算子,即O={整定规则}。那么整个整定过程就可描述为 显然,满足上述状态转换条件的一个有限的操作算子序列就是整定计算问题的一个解。 下面以相间距离Ⅱ段的整定计算为例加以说明。状态图如图4所示。图中的数字表示操作。分别说明如下: ①NoValue→Value 初始化定值。 ②Value→Value 表示和相邻I段配合的整定规则。由于需要和相邻支路逐个配合并考虑多个整定原则,因此这是一个循环自身变换(self-transi-tion)。在相邻两次变换间定值取较小值。 ③Value→FINISH 和相邻I段的所有配合皆完成,且灵敏度校验满足要求,则保护状态变为FINISH;否则。 ④转入和相邻同段配合。 ⑤Value→Value 表示和相邻Ⅱ段配合的整定规则。 ⑥Value→FINISH 和相邻Ⅱ段的所有配合皆完成,且灵敏度校验满足要求,则保护状态变为FINISH;否则。 ⑦Value→KLM将保护状态置为KLM,即按保灵敏度整定。 ⑧KLM→FINISH 按照保灵敏度整定。 ⑨NOT FINISH→KLM 当上述状态变换皆完成,仍有整定范围内的保护其状态不是FINISH,则认为这些保护在环网中由于需同段配合而出现了“死锁”。可自动或人工指定若干保护按照保灵敏度整定,就可使环网解环,从而解决“死锁”。 有了上面的状态图,就可以比较容易地将其转换为产生式规则,从而利用专家系统自身的模式匹配能力求解继电保护整定计算问题。和数值计算方法相比,算法描述更为清晰明了,程序实现更为简单直接。另外,当整定规程或方法发生变化时,只需修改规则库即可,整个系统无需重新编译。 3.4 建模过程 以上是ICAPE开发中的几个典型模型图。需要特别指出的是:①UML是一种建模语言,而不是编程语言,因此,尚需将UML模型映射为具体的编程语言,才能得到最终的可执行系统。②UML是一种 建模语言的标准,而非建模过程的标准。采用什么样的软件开发方法和建模过程,需要根据具体应用的类型和规模来确定。在ICAPE开发中,总结并采用了图5所示的建模过程。它有如下特点: (1)主干过程 主干过程包括建立用例图、顺序图、类图、包图和组件图。其中,建立类图又是一切工作的核心。系统实现主要根据类图进行。 (2)建模起始点 以建立系统原型和用例图作为建模的起始点。 利用VisualBASIC作为快速原型工具,在短时间内开发了一个原型系统。然后在现场结合用例图反复和用户交流,以尽快把握用户需求,为后续的开发做准备。 (3)反复迭代 除了主干过程外,建模过程中还包含大量的迭代过程。例如,用例图可帮助建立类图;而绘制类图时也可能发现新的用例,则需反过来更新用例图。按照传统的软件工程理论,软件项目的开发可分为用户需求分析、系统分析、设计、实现、测试等阶段。强调开发过程的反复迭代,就使上述各阶段的界限变得相当模糊。根据笔者的经验,这是一种实事求是、而又切实可行的方法。项目越复杂,越应强调迭代。由于UML能够始终保证模型间的一致性,因此从总体上看,建模过程是递增的、渐趋完善的,而非无序的、混乱的。 4 结论 ICAPE是一个比较复杂的系统。C++源代码超过60000行。由于开发过程中全面采用UML,使得系统的复杂度得到了很好的控制,开发进度也因此大大加快。UML主要有以下优点: (1)标准性 UML统一了各种建模语言,并获得国际上广泛承认。有了共同的建模语言,软件开发者就可以在系统模型一级交流和共享,从而有利于拓宽系统的应用范围,有利于提高系统的可重用性和灵活性。 (2)系统性 电力系统是一个复杂系统,需要从多个角度去展示和描述它。UML提供了丰富的模型图,可以系统地、立体地描述现实世界。从横向看,它能全面表示系统的静态结构和动态行为;从纵向看,它适应于系统分析、设计、实现等各个阶段。另外,由本文可见,它不但适合于数值计算系统的建模,而且适合于智能系统的建模。 (3)可视化 UML提供了标准图形表示符号,具有可视化建模的优点。有利于认识事物及相互交流。 (4)自动化 UML具有严格的、一致的语义和表示法。在此基础上可以实现一系列自动化功能,如由模型自动生成软件方档,由模型自动生成源代码(如C++、JAVA等),以及由源代码反向生成模型等。 |
- 上一篇:云南高原湖泊的治理与保护
- 下一篇:三菱手车式开关柜与二次继电保护的配合