调度自动化系统实时数据库模型的研究与实现
>吴文传张伯明徐春晖
100084)
,而实时数据库技术则应运而生。此文阐述了调度自动化系统相对于传统事务型应用的特殊性。对实时数据库的关键性技术和难题进行了分析,并以此为基础提出了一个具有普遍意义的实时数据库模型和体系结构。实现所提出的实时数据库的关键是解决好下面五个方面的问题:实时数据库模型的设计与实现、实时任务的处理及其并发控制、数据存储与共存内存管理、数据的安全与恢复和跨平台的解决方案。作者进一步设计了包括实时任务调度、内存数据库以及内存数据库与关系数据库IO调度等模块的实时数据库管理系统的体系结构,阐述了一些实现细节和关键技术。该模型在一个SCADA/EMS/DTS跨平台的一体化系统中得到了实现。体系结构能量管理系统 计算机技术的核心问题是数据信息的处理与计算问题。解决数据存储与管理问题的数据库理论和技术发展极为迅速,应用也非常广泛。以关系型为代表的三种经典(层次、网状和关系型)数据库[1]在商务和管理等事务型的应用领域中取得了很大成功。但现代的工程和时间关键型应用(如调度自动化系统)对传统的关系型数据库提出了挑战。
调度自动化系统与传统的事务型应用相比具有不同的特征。一方面,它要维护大量的共享数据和控制数据;另一方面,调度系统中各实时任务的完成具有苛刻的时间限制,同时分析和处理所用的数据是变化的。该类数据具有一定的有效时间区间(如所有遥测和遥信数据需在5s内刷新一遍),过时的决策或推导是无效的。因此,调度自动化系统的数据库既要能处理永久、稳定的数据,维护数据的完整性和一致性,又要考虑动态数据及其处理上的时间限制,保证数据访问的并发和高效性。
调度自动化系统的实时数据库的数据及其处理具有严格的时限性,系统的正确性不仅依赖于事务的逻辑结果,而且取决于该逻辑结果是否在某一时域中完成。所以,它是实时理论与技术和传统数据库技术的有机结合和提高。
1调度自动化系统实时数据库的关键技术
数据库理论本身相当复杂,数据库的实现不仅是一个技术难题,而且是一个系统工程。本文主要阐述调度自动化系统中实时数据库需重点解决的几个技术难点,并在后面的章节中给出本文实现的系统的解决方案。
(1)实时数据库模型的设计与实现 关系型数据库具有易于表达和管理的优点,但是在用于调度自动化这样一个集管理、监控、分析和决策于一身的大型复杂的实时系统时就暴露出明显的缺点,有许多问题有待解决,例如在支持电力系统的大型矩阵计算时关系模型就需加以扩充。另外,由于实时数据库具有专用性,一般由各个厂商独立开发,因此,系统的开放性和互操作性都存在问题。随着技术的日益提高,电力系统的实时数据模型的标准化已经提上日程[2]。IEC已经提出了电力系统的公用信息模型(CIM),如何使实时数据库很好地表达该模型已经成为一个紧迫的课题。
(2)实时任务的处理及其并发控制 调度自动化系统的任务具有时间限性,系统必须保证时间限制较强或较紧急的任务较早地执行,也就是能控制事务的执行顺序。比如,SCADA系统的后台数据采集和规约转换任务必须保证处于最高优先级,即确保在RTU有报文上传时能优先访问实时库。另一方面,对于调度自动化系统来说传统的可串行化并发控制过严,需要提出新的并发控制概念和实现方法。
(3)数据存储与共存内存管理 传统的磁盘数据库的操作基于磁盘存取(I/O),而磁盘I/O的时间延时及其不确定性对实时任务往往有致命的影响。因此实时数据库的又一关键问题是如何消除这种延时和不确定性,这需要“内存数据库”的支持。要保证实时任务能快速、准确地存储和访问数据库,应着重解决两个问题:①保证关键任务存取都在内存中进行;②实现任务间数据共享。
(4)跨平台的解决方案 跨平台的解决方案是技术发展的必然趋势。当今调度自动化系统所使用的主流操作系统大致分为两类,即UNIX和Win-dowsNT,两者各有千秋[3]。为了保护用户的投资和开发的延续性,系统必须提供跨平台解决方案,其关键在于解决内存数据库的实现机制和跨平台的通信等问题。
(5)数据的安全与恢复 数据库系统中的数据若受到破坏,传统数据库采用日志和覆盖的技术手段。但实时数据库的恢复显得更复杂,其原因为:①恢复过程影响到处于活动中的实时任务,使得实时任务访问因受阻而超时或访问到过渡状态得出错误结论;②实时数据库中的许多数据不是持久的,是变化的,有时数据的非一致性和不正确性的影响是“短暂的”和“非延续性的”。比如PAS量测分析功能中的遥测信息被破坏,只会影响本次的状态估计,而不会影响后续的状态估计结果。因此,决定何时对数据的破坏进行恢复是一个综合性问题。
2调度自动化系统的数据对象分类
建立一个合理的数据模型的前提是正确分析系统的数据对象。调度自动化系统的原始、控制和分析数据大致可以分成三种类型的数据对象。
(1)实时映象数据对象 此类数据是现实世界中的对象属性的真实反映,被周期性地采集写入数据库。如SCADA系统中的遥测、遥信和电量采集系统中的电量数据。它们共同的特点是具有严格的时限性。一个实时映象数据对象(imagedataobject)可以用一个时标和有效期与之相连。它们只是对应于某一采样时刻的状态,其有效期可以认为是从本次采集到下一次采集的时间间隔。负责采样和写入实时库的任务是一个实时任务,映象数据对象的值一旦被写入数据库,就不得被其他任务更改,在新时刻采样的数据作为一个新的映象数据对象存入。
(2)静态数据对象 静态数据对象(invariantdataobject)是常数值,是实时数据库中一种特殊数据类型,其值不随时间变化而改变。数据的时标为系统初建或更新时刻,有效期上限为“当前”时刻。这种数据在调度自动化系统中普遍存在,比如SCADA中的RTU参数配置、EMS中的电力系统基本参数(如线路和变压器阻抗、电力系统的节点模型即电力元件的拓扑结构)。
(3)演绎数据对象 一个演绎数据对象(de-riveddataobject)是对一组映象数据和其他数据对象经计算而得。显然演绎数据对象也具有时标和有效期,其时标是演绎数据对象的导出时间,也就是事务的执行时间,有效期是本次导出与下一次导出的时间间隔。演绎数据对象的值在数据库中可能被更新,其记录的值可被保存也可不保存,如SCADA中的计算点的数值、EMS中的状态估计所得的系统母线模型、母线电压幅值与相角、支路潮流等。这些数据是系统的求解目标,也可能是某一任务的原始数据。
调度自动化系统中,映象数据对象、静态数据对象和演绎数据对象之间具有复杂的关系。例如,状态估计作为一实时任务,它利用SCADA采集的遥测、遥信数据(映象数据对象)和电力系统设备参数及其节点模型(静态数据对象),导出各节点的电压幅值和相角、注入功率和支路潮流(演绎数据对象)。而调度员潮流利用状态估计的结果(演绎数据对象)和电力系统的设备参数和节点模型(静态数据对象)、外网等值(演绎数据对象)、母线负荷预测(演绎数据对象)计算出潮流断面(演绎数据对象)。为了潮流的正确运行,必须做好潮流与状态估计的协调工作,状态估计的结果不可随意覆盖。总之,实时数据库的数据对象可以用一个三元组表示ID(value,tmp,evi),ID为标识,分量Dvalue、Dtmp、Devi分别为当前状态、时标和有效期。
3实时数据库的体系结构设计
实时数据库首先是一个数据库管理系统,它应具有一般DBMS的基本功能,即:①永久数据管理包括数据库的定义、存储和维护等;②有效的数据存取包括各种数据库操作、查询处理、存取方法和完整性检查;③任务的调度与并发控制;④存取控制和安全性检查;⑤数据库恢复机制,增强数据库的可靠性。为了支持以上功能,本文设计的数据库采用了传统关系型数据库与内存数据库集成的方案,如图1所示。关系型数据库具有开放性好、数据处理能力强等特点,在系统中它作为第三方和用户二次开发的接口,以及内存数据库的转储介质而存在。
另外,实时数据库管理系统的首要设计目标是满足事务的实时性和高效性,因而实时数据库是传统数据库与实时处理两者功能特性的无缝集成(seamlessintegration)。如图1所示,本文设计的实时数据库的体系结构包括实时任务调度与管理、内存数据库、I/O调度以及关系型数据库。
4实时任务调度与管理
调度自动化系统是一个功能庞大、结构复杂的软件系统,各个实时任务之间存在嵌套、合并、通信和合作的关系。如第2节所述,一个任务的导出数据对象可能是另一任务的输入数据对象,数据对象和任务之间存在相互制约和依存的现象,所以必须协调好各个实时任务的活动。本文设计的数据库提供了如下功能:①任务的定时启停;②设定任务启停的条件;③指定任务间的依存关系;④指定统一任务的实例化个数的约束。此项功能提供了解决数据库资源共存与冲突的一种外围机制。
5内存数据库
内存数据库是实时数据库的核心之一,它包括数据库数据模型、数据操作、实时资源管理和网络通信等模块。传统的数据库是一种磁盘数据库,对于事务的处理牵涉磁盘I/O、内外存的数据传递、缓冲区管理、排队等待以及锁的延迟等方面,使得事务的平均执行时间不可估计,不能达到实时事务的高效和可预知的要求。为此,引入了内存数据库,使得数据库的主要工作部分放入内存,使每个实时事务执行过程中避免了磁盘I/O,减少了不确定因素提高了执行效率。
5.1数据库数据模型
内存数据库采用了一种扩展的关系数据库模型,对传统的关系模型进行了扩充。数据库的顶层结构称为数据集,它代表一个数据库的集合。一[1][2]下一页
来源:中国电力资料网