(电力系统及其自动化专业论文)地区电网故障诊断系统的实用化研究.pdf_第1页
(电力系统及其自动化专业论文)地区电网故障诊断系统的实用化研究.pdf_第2页
(电力系统及其自动化专业论文)地区电网故障诊断系统的实用化研究.pdf_第3页
(电力系统及其自动化专业论文)地区电网故障诊断系统的实用化研究.pdf_第4页
(电力系统及其自动化专业论文)地区电网故障诊断系统的实用化研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

声明尸明 y 1 7 8 5 4 1 。 本人郑重声明:此处所提交的硕士学位论文地区电网故障诊断系统的实用化 研究,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作 和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名:日 期:绝! 里:苎! 竺 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权 保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或 其它复制手段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校 可以学术交流为目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同 媒体上发表、传播学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:多蜘 日 期:婴! ! :! :! 导师签名: 日期:! ! ! :竺 a , , j 1 , 一 菇 i , 华北电力大学硕士学位论文摘要 摘要 本文对电力系统在线故障诊断技术进行研究,设计了实用化的地区电网在 线故障诊断系统的开发方案,并针对实际电网开发完成了在线故障诊断系统。 本文的故障诊断系统开发方案是基于n e t 框架的三层结构进行设计。系统遵照 c i m 模型,采用面向对象的知识表示方法表示电网中各设备的关联关系和各类 故障信息。系统从s c a d a 获取遥测遥信和保护开关信息,利用保护配置信息库, 以及保护、开关和故障设备之间的因果逻辑关系进行推理,采用d s 证据理论对 推理结果进行融合,最终确定故障诊断设备,得出诊断报告。本系统已应用于 沧州地区电网,运行结果良好,证明了本系统的实用性与准确性。 关键词:故障诊断,专家系统,地区电网,d s 证据理论,三层结构,n e t ,实 用化 a b s t r a c t b yi n v e s t i g a t i n gt h eo n - l i n ef a u l td i a g n o s i st e c h n o l o g i e so fp o w e rs y s t e m s ,t h e c o n f i g u r a t i o no fa no n l i n ef a u l td i a g n o s i ss y s t e mf o rr e g i o n a lp o w e rn e t w o r k si s d e s i g n e da n dt h ed i a g n o s i ss y s t e mi sd e v e l o p e df o rar e a lr e g i o n a lp o w e rn e t w o r ki n t h i st h e s i s t h ef a u l td i a g n o s i ss y s t e mi sd e s i g n e db yu s i n ga n e t - b a s e dt h r e e - t i r e a r c h i t e c t u r e b a s e do nt h ec i mm o d e l ,t h es y s t e mu s e so b j e c t - o r i e n t e dk n o w l e d g e r e p r e s e n t a t i o nm e t h o dt or e p r e s e n ta 1 1k i n d so fr e l a t i o n so fd i f f e r e n td e v i c e si nt h e g r i d t h es y s t e ma c q u i r e st h ed a t ao ft e l e m e t e r ,r e l a yp r o t e c t i o n sa n db r e a k e r s o p e r a t i o nf r o ms c a d a ,a n dc a r r i e st h ei n f e r e n c ep r o c e s sb a s e do nt h er e l a t i o n s h i p o fc a u s e c o n s e q u e n c ea m o n gr e l a y i n gd e v i c e s ,b r e a k e r sa n dt h ef a u l t e de q u i p m e n t , a n dt h ep r o t e c t i o na l l o c a t i o nd a t a b a s e ,t h e nt h es y s t e mm e r g e st h ed i a g n o s i sr e s u l t s f r o md i f f e r e n ti n f o r m a t i o nt od e t e r m i n et h ef a u l t e dd e v i c e sf i n a l l yb yu s i n gt h ed s t h e o r y t h ef a u l td i a g n o s i ss y s t e mh a sa l r e a d yb e e np u ti n t oo n l i n eo p e r a t i o ni nt h e r e g i o n a lp o w e rg r i do fc a n g z h o u ,a n di t sp r a c t i c a b i l i t ya n de f f e c t i v e n e s sh a sb e e n v e r i f i e db yt h ed i a g n o s i sr e s u l t sg i v e nb yt h es y s t e m l i ut o n g l i a n g ( p o w e rs y s t e ma n di t sa u t o m a t i o n ) d i r e c t e db yp r o f g ux u e p i n g k e yw o r d s :f a u l td i a g n o s i s ,e x p e r ts y s t e m ,r e g i o n a lg r i d ,d se v i d e n c et h e o r y , t h r e e l a y e ra r c h i t e c t u r e ,n e tf r a m e w o r k ,p r a c t i c a b i l i t y , 嗣 , 对 搴 华北电力人学硕士学位论文目录 目录 中文摘要 英文摘要 第一章绪论。l 1 1背景及其意义- 1 1 2国内外研究现状2 1 2 1专家系统方法3 1 2 2人工神经网络方法3 1 2 3 p e t r i 网方法3 1 2 4基于优化技术的方法3 1 2 5基于粗糙集理论的方法4 1 2 6基于模糊集理论的方法4 1 3电网故障诊断技术实用化面临的问题4 1 4本文所做的工作5 第二章故障诊断系统的设计。7 2 1n e t 架构简介7 2 2三层结构软件体系简介。一7 2 2 1表示层8 2 2 2数据访问层8 2 2 3业务逻辑层9 2 3故障诊断系统的设计9 2 3 1数据模型的设计1 0 2 3 2数据访问层的设计1 1 第三章地区电网故障诊断系统的开发与实现1 8 3 1s v g 格式的变电站接线图数据的获取与转换1 8 3 1 1s v g 图形介绍1 8 3 1 2s v g 在变电站接线图上的应用2 0 3 1 3s v g 与系统的交互2 2 3 2与s c a d a 系统的数据接口2 5 3 2 1 s c a d a 数据接口概述2 5 3 2 2s c a d a 数据接口的实现2 6 3 3故障诊断的理论基础2 8 3 3 1d s 证据理论2 9 3 3 2基于d s 证据理论的电网故障诊断3 0 华北电力大学硕士学位论文目录 3 4故障诊断的方法实现3 0 3 4 1故障诊断流程3 l 3 4 2基于d s 证据理论的故障诊断方法实现3 2 第四章系统测试与现场运行3 5 4 1离线状态下的系统测试3 5 4 2在线状态下的系统测试3 8 第五章结论与展望4 3 参考文献4 4 致 谢:4 7 在学期间发表的学术论文和参加科研情况。4 8 华北电力大学硕士学位论文 1 1背景及其意义 第一章绪论 随着国民经济的飞速发展,电网的规模在不断地扩大,使得现代电力系统也日 趋大型化、复杂化,同时人们对电能供应的持续性、稳定性要求也越来越高。然而, 电力系统经常发生各种各样的故障,特别是对于输电线路,由于其长期暴露在自然 环境中,更容易引发故障,因此如何快速诊断和处理故障对保证系统连续供电具有 重要影响。监视控制与数据采集系统( s c a d a ) 和能量管理系统( e m s ) 系统的广 泛应用为获取故障信息提供了技术条件,但是,电网故障时大量遥信、遥测数据集 中涌入调度中心,给运行人员在紧急状态下识别和处理故障增加了难度,尤其是在 电力系统发生复杂故障( 多重故障、越级故障、扩大性故障) 及保护和开关存在误 动、拒动等复杂情况下,运行人员更加难以正确识别故障。因此,开发电网故障诊 断系统帮助调度人员在电网突发故障时能够及时判断故障设备及故障性质,并快速 处理故障和恢复供电,对减少故障带来的国民经济损失有着非常重要意义【l 】。 电力系统故障诊断包括电网故障诊断和电力设备故障诊断,本文研究的是电网 故障诊断。电网故障诊断是指在电网发生故障后,根据电网各种监控信息识别故障 设备和故障性质的过程。在线故障诊断系统通常指运行在调度中心的基于电网监控 信息进行电网故障诊断的软件系统,它根据从电网监控系统获取的各种故障信息, 判定故障区域,确定故障性质,并评价保护动作行为,提供故障相关信息及恢复策 略,作为调度员决策的依据。 现代电力系统各级电网调度中心的s c a d a 和e m s 系统为调度员提供了对电力 系统进行监测和控制的手段。然而目前在地调一级电网投入运行的e m s 系统,很 少具有电网故障诊断功能,也尚未见到投入实际运行的电网故障诊断和恢复处理系 统。现有的调度自动化系统在故障时把采集到的大量的警报信息在很短时间内不加 选择地提供给调度员,导致调度员无法在短时间内阅读和理解各种信息、对故障设 备进行判断,这不能满足系统快速判断和处理故障的需要。因此,研究开发电网在 线故障诊断和辅助恢复系统来辅助调度运行人员对事故进行快速诊断和处理,可以 起到缩短事故处理时间、快速恢复供电,防止事故扩大的作用,对提高电网运行的 可靠性和安全性水平具有重要的意义。 本文以沧州电网为研究对象,研究故障诊断系统的实用化问题,开发沧州电网 在线故障诊断系统。沧州电网位于河北南部电网东部末端,最高电压等级为5 0 0 k v , 最大网供负荷1 8 0 0 m w 。5 0 0 k v 线路4 回,5 0 0 k v 降压变电站2 座,5 0 0 k v 主变3 台,容量为2 2 5 0 m v a 。2 2 0 k v 线路3 9 回,2 2 0 k v 降压变电站1 4 座,2 2 0 k v 主变 l 华北电力大学硕士学位论文 2 8 台,容量为3 9 6 0 m v a 。1 1 0 k v 变电站7 2 座,1 1 0 k v 主变1 4 6 台,总容量为 4 4 8 0 1 m v a 。电厂2 座,8 台发电机装机容量为:6 0 0 + 9 8 m w 。四个企业自备小火 电7 台发电机,总装机容量为3 9 8 m w 。沧州电网主网架比较薄弱,单电源供电的 1 1 0 k v 站共1 4 座,占全部的2 2 6 ,1 1 0 k v 站单主变的有l o 座,占全部的1 6 1 , 而农网结构更加薄弱。加之设备长期重载、设备健康水平和外部运行环境不容乐观, 容易引发电网事故,继电保护等二次设备的压力加大,存在发生大面积停电的危险, 电网安全形势严峻。 就目前沧州电网故障分析和恢复处理的实际情况来看,支持调度进行决策的主 要信息仍为s c a d a 系统采集的各种孤立的监测信息。s c a d a 系统信息采集量大, 但没有表明所提供各种信息之间的逻辑关系,不能明确表明故障发生后的系统演变 过程。在目前没有故障判断辅助工具的情况下,调度人员需依据各种在线监测信息 自己对故障进行分析诊断。由于发生故障后,各种报警信息少则几十条,对复杂故 障可能多达几百条,调度员很难在短时间内阅读和理解集中涌来的大量报警信息并 进行故障诊断和处理。一般来讲,一个简单故障的判断处理通常需要5 1 0 分钟,对 于复杂故障,判断处理时间可能需要1 2 小时甚至更长时间。从信息的加工和利用 来看,当前调度员可利用的e m s 只是将s c a d a 系统提供的信息进行初步处理,得 到的往往是罗列数据和简单提示,缺乏对调度员诊断故障的有效决策支持。从分析 工具来看,e m s 仅提供了稳态分析软件( 状态估计、潮流计算等) ,没有提供故障 分析软件,而在建的保护信息管理系统的主要目标是对大量分散的保护信息进行归 纳、收集并在必要时进行告警,并不具备专门针对各种故障进行诊断处理的高级决 策支持功能。 为了适应沧州电网发展的需要,特别是无人值班变电站的出现和增加,电网调 度运行和管理必须由经验型调度上升至科学的分析型调度,提高沧州电网的安全、 稳定和经济运行水平因此,开发在线故障诊断系统对沧州电网安全优质运行具有 重要意义。 1 2国内外研究现状 自上世纪八十年代以来,各种研究人员对电网故障诊断技术和方法进行了大量 的研究【l 】。以往的研究的故障诊断方法可以概括地分成两大类:基于数学模型的故 障诊断方法和基于人工智能的故障诊断方法,而每一类又包含若干具体的诊断方 法。电网故障诊断由于其分析数据主要是保护和开关的动作信息,同时它的分析是 在故障发生以后,所以它主要采用的人工智能的方法;随着故障信息系统的应用, 也部分地采用数学分析的方法对故障录波数据进行分析。 目前国内外故障诊断系统的研究主要集中在方法的研究和实用化研究两个方 2 华北电力大学硕+ 学位论文 面,所谓方法研究就是探索适合于电网故障诊断的方法,实用化研究主要目的是将 现有方法研究的成果应用于电网实际运行中去。电网故障诊断的方法研究主要集中 在以下几个方面:专家系统方法、人工神经网络方法,p e t r i 网方法,基于优化技术 的方法和基于粗糙集、模糊集的方法等。 1 2 1 专家系统方法 专家系统方法是最先引入故障诊断领域的方法,也是最成熟和现在最实用的诊 断的方法。它将相关领域的专家知识和经验归纳为相应的规则,形成规则库,再通 过合理有效的推理机制将这些规则应用于实际的场合。文献【2 1 就是应用专家系统对 变压器故障进行诊断。文献 3 7 】就是应用专家系统来实现对电力系统的故障诊断。 但是专家系统本身的一些局限性,如合理规则的形成,不仅需要相应的专业知 识,还需要相关的实际经验,其知识获取困难是专家系统应用的瓶颈之一。单独应 用专家系统的故障诊断系统具有一定的局限性,现在的专家系统多是结合其他的方 法来实现对系统的故障诊断。 1 2 2 人工神经网络方法 神经网络具有较强的学习能力、非线性映射能力、联想记忆能力等特点,它适 合于各种无法用数学模型表示的问题,可以处理很多无法直接用常规方法来处理的 问题;因此近年来它大量应用于有关模式识别和各种非线性处理问题的解决。文献 【8 1 2 对神经网络在电力系统故障诊断中的应用进行研究。但是由于神经网络解决 问题的本身的黑箱性质,它对所解决的问题难以给出清晰的解释,由于电力系统本 身运行的要求,对于所处理的问题都要求有科学合理的解释。同时由于电力系统结 构的复杂性,相应的神经网络的构建也比较困难。正因为这样,它在电力系统故障 诊断中的应用还处于理论探索阶段。 1 2 3p e t ri 网方法 文献 1 3 】【1 4 】对p e t r i 网在电力系统故障诊断中的应用进行研究。p e t r i 网是一种 用图形表示的组合模型,它以研究系统的组织结构和动态行为为目标,着眼于系统 中可能发生的各种变化和变化间的关系。电网中的继电保护装置反应于故障、选择 性切除故障的过程正好属于系统活动同时发生的范畴,p e t r i 网可以很好地表示这种 离散事件,并为这种动态行为提供强有力的建模和分析工具。但是p e t r i 网在构建网 络模型的时候需要生成很多的节点,对于复杂的电力系统它在模型构建上比较困 难。 1 2 4 基于优化技术的方法 华北电力大学硕士学位论文 优化技术是一种基于数学模型的求解方法。其基本思想是首先将电力系统故障 诊断描述为优化问题,之后用优化方法求解。目前优化技术用于故障诊断主要是建 立诊断的解析模型,最终都归结为无约束o 一1 整数规划问题,并分别采用b o l t s m a n 机,遗传算法和t a b u 搜索方法求解。上述这些方法从优化的角度出发,基本上可以 解决故障诊断问题,尤其是在复杂故障或存在保护、断路器误动作的情况下,能够 给出全局最优或局部最优的多个可能的诊断结果。但是如何建立合理的电网故障诊 断数学模型是制约使用优化技术的主要瓶颈。文献 1 5 1 8 都是相关的研究成果。 1 2 5 基于粗糙集理论的方法 近年来,z p a w l a k 教授等人提出了采用粗糙集理论研究不完整数据、不精确 知识的表达、学习和归纳等方法。这种方法与概率统计方法处理不确定问题和模糊 集理论处理不精确数据的方法都不相同。所谓粗糙集方法,是研究不精确、不一致、 不完整等各种不完备信息的表达、学习、归纳等的方法,它直接从给定问题的描述 集合出发,从中发现隐含的知识,揭示潜在的规律。该方法以对观察和测量所得数 据进行分类的能力为基础。粗糙集理论在许多应用领域得到发展,如在医疗数据分 析、振动分析和语言识别等领域都已取得了丰硕的成果。文献 1 9 】将粗糙集应用于 电力系统故障诊断,它将电力系统的故障诊断用一个模式分类问题来描述,基本思 想是把保护和断路器的动作信息作为对故障分类的条件属性,考虑各种可能发生的 故障情况并建立决策表,通过属性约简技术删除多余属性后抽取出故障诊断规则, 形成故障诊断系统的规则库。 1 2 6 基于模糊集理论的方法 文献 2 0 2 2 将模糊集理论和专家系统结合使用,来进行电力系统故障诊断。模 糊集理论最早起源于美国,它是6 0 年代中期,由美国加州大学柏克莱分校的控制论 专家l a z a d e h 教授在“i n f o r m a t i o na n dc o n t r o l 上提出来的,其论文“f u z z ys e t s 为模糊数学的产生和发展奠定了基础。这一开创性的工作不仅拓广了普通数学的基 础,而且提高了数学理论在技术科学中的实用性。自模糊集理论创立以来,逐渐得到 了发展和完善,其应用成果也产生了巨大的经济效益,它适合于那些难于精确定量 描述的问题的求解。但是由于隶属度的获取,复杂系统的模糊模型的建立、辨识,语 言规则的获取、遗忘、修改等理论和方法还不够完善,使其在应用过程中遇到了较 大的阻力。目前许多学者正探索模糊集理论与人工智能中的专家系统、神经网络等 相结合的方法,来解决这些困难,同时也促进了模糊集理论的发展。 1 3电网故障诊断技术实用化面临的问题 电网故障诊断系统目前为止还很少作为平台的高级应用程序出现,影响它在现 4 华北电力大学硕士学位论文 场中得到应用的主要因素就是故障以后故障信息的提取。由于传统的s c a d a 获得 的故障信息的不完整,以及各厂站保护信息的不一致,不能直接地反映电网的故障 信息,而故障信息系统还未得到大规模的应用,这就使得电网故障诊断系统在设计 的时候必须考虑到故障信息的不确定性,考虑到电力系统运行对安全性的高要求, 要求故障以后必须提供明确的有价值的结果,这无疑影响到故障诊断系统在电网运 行中的实用化。 依前述分析,电网故障诊断实用化所面临的最大问题是故障信息完整性和统一 性,由于硬件条件所无法采集到的信息显然是不可获得的,而现有的传统厂站( 保 护信息提供者) 的保护信息定义也不可更改或重新统一定义,故二者只能依赖以后 厂站的改造和二次终端设备的更新换代上来加以统一和完善。如果要想故障诊断系 统在电网运行中得到实际使用,就必须充分利用现有的条件,利用现有的s c a d a 系统所采集的遥测信息、遥信信息、保护信息和故障录波器所采集的各种故障信息。 根据遥信数据、遥测数据和保护信息的特点,必须解决如下问题才能将电网故 障诊断系统真正地应用于电网运行中去。 1 ) 如何设计一个易用性高、可移植性强、易维护的故障诊断软件系统; 2 ) 对于遥信数据、遥测数据和保护信息的模糊性质如何处理,这也就是说在 ,得到相对不确定的故障信息的情况下如何得到相对准确的故障诊断结果。 对于以上的问题,本文主要通过以下方法加以解决: ( 1 ) 采用基于n e t 的三层结构方法进行故障诊断软件系统的设计; ( 2 ) 对遥信数据、遥测数据和保护的信息用符合电网故障诊断需求的知识表示, 以便最充分地利用这一类信号所承载的故障信息; ( 3 ) 对于遥信数据、遥测数据和保护信息进行信息冗余的分析处理和信息整合, 设计不同的推理方法和算法,结合各自的优缺点,以期得到最优的诊断结果。 电网故障诊断系统应具有实用性、智能性和易维护性的特点。实用性是指在现 阶段电网运行条件下可靠地实现电网故障诊断的基本任务;智能性指系统充分利用 了现阶段人工智能技术在电网故障诊断的研究成果,可以实现辅助故障诊断决策支 持的基本要求;易维护则是考虑到电力系统的高安全性的要求,设计系统的时候对 于系统知识库等可维护部分尽量是其维护简便,以保证其工作效率。 1 4本文所做的工作 本文以沧州电网为研究对象,研究沧州电网故障诊断系统的结构方案和在线实 现方式,将人工智能和决策支持系统技术应用于电网故障诊断,设计出一种集成诸 多信息处理和融合算法的决策支持框架,开发沧州电网在线故障诊断系统。 5 华北电力大学硕士学位论文 本文的工作如下: ( 1 ) 确定地区电网故障诊断系统的软件结构、设计方法,开发故障诊断系统的 总体控制平台。 ( 2 ) 研究故障诊断系统与s c a d a 系统的数据通信方法,开发在线故障诊断系 统与s c a d a 系统的接口程序。 ( 3 ) 设计开发故障诊断系统的数据库和知识库及其访问程序,研究基于多信息融 合技术的故障诊断方法及其在线应用的方式。 ( 4 ) 将所开发的完成不同功能的程序集成为在线故障诊断系统,并将系统投入 在线试运行。 6 华北电力大学硕士学位论文 第二章故障诊断系统的设计 2 1n e t 架构简介 n e t 框架( n e t f r a m e w o r k ) 是微软公司推出的一种全新的软件开发、运行环 境,它致力于快速应用开发,具有平台无关性和网络透明化等特性【2 3 1 。其核心是构 建一种分布式的、基于开放式标准的网络数据交换和处理平台。开发人员可以利 用n e t 先进的跨语言开发平台和强大的公共平台类库,能够有效解决以前软件开发 过程中的核心问题,开发出具有交互性、高集成性、良好扩展性的应用程序。 n e t 框架提供的基于构件( a s s e m b l y ) 的应用程序开发模式、强大的公共语言 运行库( c l r ) 以及跨平台数据交互能力等,都大大提高了三层结构应用程序设计 的便捷性。c 挣语言是微软为n e t 框架量身定做的新一代编程语言,它继承了c + + 语言的灵活性和高效性,同时又包含了其他高级语言所具有的新特性,成为n e t 框架开发的首选语言。a d o n e t 是内含于n e t 框架中的专门与数据来源进行沟通 的数据访问类库集,可被w i n d o w sf o r m s 应用程序方便应用,是n e t 框架中强大 的数据访问接口。 2 2 三层结构软件体系简介 “三层结构 是在模块化程序设计思想的基础上,为实现分解应用程序需求而 逐渐形成的一种标准的模块划分方法。三层结构的主要思想是“分层式设计”,它 是软件设计中最为常用的一种设计方法,其目的是将一个功能复杂的应用程序分解 为若干个功能简单明确的层次。概括来说,分层式设计可以达到分散关注、松散耦 合、逻辑复用、标准定义的目的。一个好的分层式结构,可以使得开发人员的分工 更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分 散关注,齐头并进。例如u 1 人员只需考虑用户界面的体验与操作,领域的设计人 员可以只关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼 了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高【2 4 1 。 三层结构的设计模式打破了传统的客户端和数据库两层结构设计模式。首先, 它使客户端的功能更加明确,即客户端仅提供人机交互界面,不涉及应用程序的核 心功能,称为“表示层( p r e s e n t a t i o nl a y e r ) 。其次,它在客户端与数据库之间加 入一个中间层,称之为“业务逻辑层 ( b u s i n e s sl o g i cl a y e r ) ,它不考虑用户界面 的实现,也不考虑数据库访问的具体细节,是抽象出来的应用程序核心功能层。同 时,它在应用程序与数据库系统之间加入一个“数据访问层 ( d a t a a c c e s sl a y e r ) , 专门负责处理应用程序与不同种类数据库系统之间的数据访问,将应用程序与数据 7 华北电力大学硕士学位论文 库系统间联系最大程度地松散开【2 5 1 。表示层、业务逻辑层和数据访问层之间的关系 如图2 1 所示。 图2 - 1 表示层、业务逻辑层和数据访问层之间的关系 通过较低的层间耦合度和较高的层内聚合度,采用三层结构设计的应用程序, 其结构清晰、配置灵活,可扩展性得到提高,并且可以提高开发效率、降低维护难 度。此外,采用三层结构设计的应用程序,不必为了业务逻辑上的微小变化而导致 整个程序的修改,只需要修改业务逻辑层中的一个函数或一个过程。同时,三层结 构增强了代码的可重用性,便于不同层次的开发人员之间的合作,只要遵循一定的 接口标准就可以进行并行开发,最终只要将各个部分拼接到一起就能构成最终的应 用程序。三层结构解决了传统客户端数据库两层结构应用程序的诸多弊端。三层结 构中各层之问相互依赖:表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层。 2 2 1 表示层 表示层的主要目的在于解决用户与应用程序的交互问题,即人机交互问题。人 机交互形式可以是输入到应用程序中的一条命令语句,也可以是图形化界面上的菜 单命令,亦或是基于h t m l 的网页浏览器上的鼠标单击。表示层的主要职责是将用 户的操作指令传递至业务逻辑层和数据访问层,并显示应用程序的响应和执行结果 等。 表示层内原则上不包含任何有关应用程序核心功能一一这些核心功能都被放 在业务逻辑层中,因此在一个完善的三层结构应用程序中,对表示层进行的修改不 会影响到业务逻辑层或数据访问层。 2 2 2 数据访问层 华北电力大学硕士学位论文 数据访问层负责应用程序与其他已有系统( 称为数据来源) 之间数据通信,主 要实现对数据的获取、保存、修改和更新等功能。应用程序的数据来源不仅包括如 s q ls e r v e r 、m y s q l 、o r a c l e 等之类的数据库系统,还可以是监控系统、信息管理 系统、其他应用程序等等。 数据访问层对外公开一系列数据访问接口,供业务逻辑层调用,这些接口使得 应用程序与数据来源之间耦合度降到最低。 2 2 3 业务逻辑层 业务逻辑层是表示层和数据访问层之间沟通的桥梁,主要负责数据的传递和处 理。整个应用程序的核心功能存在于业务逻辑层中。业务逻辑层不停地接收用户从 表示层提交的数据或请求,并从数据访问层获取相应的数据,进行加工处理,然后 再将处理结果返回至表示层进行显示、打印等。对于一个设计良好的三层结构应用 程序,对业务逻辑层的改变,一般不会影响到表示层,或者只影响表示层的少量代 码。 2 3故障诊断系统的设计 电网故障诊断与恢复处理系统采用三层结构的分层设计方法,以层问低耦合、 层内高内聚为原则,提高了应用程序的灵活性,实现了易于扩展、易于维护和易于 重用的目标,同时还具有利于开发者协作、提高开发效率等优点。系统基于微软公 司的n e t 框架进行开发,根据系统功能要求,充分利用抽象工厂设计模式、反射技 术、对象缓存技术和事件技术,使得每层的设计都具有较高独立性和可移植性。系 统采用m i c r o s o f ts q ls e r v e r2 0 0 0 数据库做为系统的后台支持数据库,用来存储电 网静态数据及系统支持数据,电网的遥测遥信及报警保护动作信息等实时数据直接 从s c a d a 系统获取。系统架构图如图2 2 所示: 9 华北电力大学硕士学位论文 数 据 源:臣巫王三圈:匿巫亟亟巫圈 2 3 i 数据模型的设计 图2 - 2 系统架构图 数据模型是业务逻辑层和表示层与数据访问层进行数据交换的数据载体。它由 一系列的数据实体类组成,其中只含有属性,不含有方法。数据实体类一般与数据 库中的表对应。在本系统中,共定义了3 3 个数据实体类,分别对应数据库中不同 的表或几个表,承载不同的数据。其中主要的几个数据实体类的定义如图2 3 所示。 1 0 华北电力大学硕士学位论文 2 3 2 数据访问层的设计 图2 - 3 数据实体类 c i m t r 孙嘲伸 e 删耐酗孽零 s l d a i 量 箩 窜皇畦 霄c o n n t y p e 雪g r o u n d e d 学埘 堂m e m b e m f t r a n s 璺m 锄如嘲 学n a m e 留r 堂p , a t e k v 蹭p 磕t e m v a 学t a p 曾t e r m 学w i n d i n g t y p e 髀x 在本系统中,数据访问层是与其他数据库系统、s c a d a 系统进行数据交换的 接口。由于数据库系统与s c a d a 系统具有不同的特征,并且本系统不仅与数据库 系统进行数据交换,同时还与s c a d a 系统进行数据交换,因此数据访问层被分为 两个部分来进行设计:一个是访问存储在数据库系统中的静态数据、系统数据的数 据访问层,称为“静态数据访问层”;另一个是访问s c a d a 系统的数据访问层,称 为“实时数据访问层”。数据访问层与业务逻辑层和表示层的数据交换依靠数据模 型来进行。静态数据访问层使用工厂模式来管理其中所有的类,并提供一个全局的 数据访问对象d a t a a c c c s s 供其他层使用;实时数据访问层使用事件技术与其他层进 行数据通信。这样的设计进一步降低了数据访问层与其他层的耦合关系。 华北电力大学硕士学位论文 2 3 2 1静态数据访问层 静态数据访问层使用工厂模式进行设计。使用工厂模式的意图在于:为创建一 组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类【2 4 1 。使用工厂 模式的好处在于,它将一系列相互依赖的对象的实例化工作从常规的创建方法 ( n e w ) 中脱离出来,形成一种特殊的封装机制,避免了客户程序与这些具体对象 的创建工作的紧耦合。系统的静态数据访问层的模块结构图如图2 4 所示。 s q l s e r v e r d a l 访问m ss q ls e r v e r 数 据库的类,实现了静态 数据访问层的接口 , 刮髅f 、 i d a l | m 、i : : : - j l o r a c l e d a l l 访问o r a c l e 数据库的f 类,实现了静态数据f 访问层的接l ii i i m o d e | i 静态数据访问层与其 他层进行数据通信使 用的数据模型 o t h e r d a t a b a s e d a li 一访问其他类型数据库 i 的类,实现- 厂静态数 l据访问层的接l 图2 - 4 静态数据访问层的模块结构图 静态数据访问层的设计完全采用了“面向接口编程 的思想。静态数据访问层 接口i d a l 模块被抽象出来,使其完全脱离了对具体数据库的依赖。这样抽象的好 处是当系统在不同数据库之间进行迁移时,开发人员只需要重写一小部分静态数据 访问层代码即可达到要求。静态数据访问层对象工厂d a l f a c t o r y 模块专门负责创 建i d a l 接口对象实例,这样就使得接口对象与静态数据访问类相分离,从而便于 业务逻辑层和表示层访问。s q l s e r v e r d a l 和o r a c l e d a l 模块均实现了i d a l 中定 义的数据访问接口,并且分别实现了对m ss q ls e r v e r 数据库和对o r a c l e 数据库的 查询、添加、修改和删除操作。 ( 1 ) 静态数据访问层接口 静态数据访问层接口是其他各层对数据库进行数据访问的接口。这些接口在系 统设计阶段就被确定下来,并随着系统的开发进行补充和完善。静态数据访问层接 口是静态数据访问层的基础。静态数据访问层中的主要接口定义如图2 5 所示。 华北电力大学硕士学位论文 图2 - 5 静态数据访问层中的接口 以i c i m 开头的接口为访问电网静态数据所需的各种接口,如i c i m a c l i n e 是访 问线路数据的接口、i c i m b r e a k e r 是访问断路器数据的接口、i c i m b u s 是访问母线数 据的接口等。以i s v g 开头的接口是访问以s v g 电网接线图数据的接口。i f d s u s e r s 是访问系统用户数据的接口,i m o n i t o r r e c o r d 是访问监测记录数据的接口, i s c a d a h i s t o r y 是访问s c a d a 历史数据的接口。 在静态数据访问层接口中,只定义了基本的数据库操作,如增加、查询、修改 操作等。这样数据实体与相关的数据操作被分离出来,体现了“职责分离 的原则, 即数据与行为分开,使两者之间依赖减弱,避免了一个类因职责过大而对该类的用 户导致“灾难性”的影响;此外,这样的设计体现了“抽象”的思想一一即面向接 口编程的思想,抽象的i d a l 接口模块与具体的数据库访问实现完全隔离,在保证 了系统可扩展性的同时,也保证了数据库的可移植性。 ( 2 ) 数据库访问类 对于不同的数据库系统,需要编写不同的数据库访问类。例如s q l s e r v e r d a l 数据库访问层实现了d a li n t e r f a c e 中规定的接口,通过s q l s e r v e r d a l 数据访问层, 系统可以访问存储在s q ls e r v e r 数据库系统中的数据。对于o r a c l e d a l 数据库访问 华北电力大学硕士学位论文 层也是如此。当系统数据需要迁移到其他数据库系统上时,如m y s q l 数据库系统, 那么只需要再编写m y s q l d a l 数据库访问层,并在系统配置文件里修改相应的参数 即可。 ( 3 ) 静态数据访问层对象工厂 使用工厂模式主要是为了解决数据访问对象的创建和管理问题,因此静态数据 访问层对象工厂的主要任务就是管理数据访问对象的创建。在本系统中,静态数据 访问层对象工厂分别包括以下若干个类,负责管理各类数据访问对象。 1 ) c i m d a l f a c t o r y :负责管理电网静态数据访问对象的对象工厂 2 ) s e a d a h i s t o r y d a l f a c t o r y :负责管理s c a d a 历史数据访问对象的对象工厂 3 ) s v g d a l f a c t o r y :负责管理s v g 接线图形数据访问对象的对象工厂 4 ) m o n i t o r r e c o r d d a l f a e t o r y :负责管理电网监测列表数据访问对象的对象工厂 5 ) f d s u s e r d a l f a c t o r y :负责管理系统用户数据访问对象的对象工厂 但这些对象工厂并不直接由用户来使用,而是由一个专门的全局数据访问对象 d a t a a e c e s s 来供用户访问。上述每一个对象工厂都对应一个数据访问对象类: 1 ) c i m d a t a a e c e s s :访问电网静态数据的数据访问对象 2 1s c a d a h i s t o r y d a t a a e c e s s :访问s c a d a 历史数据的数据访问对象 3 ) s v g d a t a a c c e s s :访问s v g 接线图形数据的数据访问对象 4 ) m o n i t o r r e c o r d d a t a a e c c s s :访问电网监测列表数据的数据访问对象 5 ) f d s u s e r d a t a a c c e s s - 访问系统用户数据的数据访问对象 以c i m d a l f a c t o r y 为例,对于断路器数据接口i c i m b r e a k e r ,在s q l s e r v e r d a l 和o r a e l a d a l 数据库访问层下分别定义类c i m b r e a k e r 来实现i c i m b r e a k e r 接口,并 在c i m d a l f a c t o r y 类中添加c r e a t e c i m b r e a k e r l n s t a n c e 方法,返回类型为 i c i m b r e a k e r 接口,如图2 6 所示。 图2 - 6c i m d a l f a c t o r y 的设计示意图 1 4 华北电力大学硕士学位论文 同时,为了使系统具有良好的扩展性,降低迁移数据库时对系统代码进行修改 的工作量,系统在静态数据访问层对象工厂中使用n e t 的反射( r e f l e c t i o n ) 技术, 它可以使开发人员在程序运行期间动态获取程序集信息,在程序集中查找类型信 息,并创建该类型的实例。引入反射技术后,创建对象的过程发生了根本的变化。 首先需要在程序配置文件a p p c o n f i g 中写入配置信息指定要创建哪个程序集中的对 象。例如程序使用s q ls e r v e r 数据库,需要创建s q l s e r v e r d a l 程序集中的对象, 即基于s q ls e r v e r 数据库的接口实现的类的实例,在配置文件中作如下配置: 然后在工厂类c i m d a l f a c t o r y 利用反射创建对象。例如要创建c i m b r e a k e r 对 象,过程如下: 从配置文件中获取数据库配置: ,p r i v a t es t a t i cr e a d o n l ys t r i n g _ _ n a m e s p a c e = ”f d s + c o n f i g u r a t i o n m a n a g e r a p p s e t t i n g s ”d a t a b a s e ”】+ ”d a l ”; 创建c i m b r e a k e r 对象,并返回i c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论