一种用于微型电网智能终端的实时数据库实现方法

文档序号:6440668阅读:215来源:国知局
专利名称:一种用于微型电网智能终端的实时数据库实现方法
技术领域
本发明涉及一种实时数据库实现方法,尤其涉及一种针对微型电网智能终端的技术特点,采用文件映射方式生成数据库实体的实时数据库实现方法,属于智能电网技术领域。
背景技术
微型电网(micro-grid)也称微网,是指由分布式电源、储能装置、能量转换装置、 相关负荷和监控、保护装置汇集而成的小型发配电系统,是一个能够实现自我控制、保护和管理的自治系统。微型电网既可以与大电网并网运行,也可以孤立运行,是智能电网的重要组成部分。微型电网具有双重角色。对于大电网而言,微型电网作为一个大小可以改变的智能负载,为本地电力系统提供了可调度负荷,可以在数秒内做出响应以满足系统需要,适时向大电网提供有力支撑;可以在维修的同时不影响客户的负荷;可以减轻(延长)配电网更新换代,采用IEE1M7. 4标准,指导分布式电源孤岛运行,能够消除某些特殊操作要求产生的技术阻碍。对于用户而言,微型电网作为一个可定制的电源,可以满足用户多样化的需求,例如增强局部供电可靠性,降低馈电损耗,支持当地电压,通过利用废热提高效率,提供电压下陷的校正,或作为不可中断电源服务等。在微型电网系统中,包含了大量的分布式可再生能源作为电源。传统的大电网 SCADA-EMS(配电网和调度自动化)技术并不适用于微型电网系统。但由于电网调度技术具有一定的相通性,微型电网能量管理系统又需要以大电网的SCADA-EMS平台为基础。而作为大电网SCADA-EMS平台核心的实时数据库技术,需要具有极高计算能力的服务器级CPU、 海量内存以及服务器级操作系统的支持。如何将实时数据库移植到以嵌入式CPU、嵌入式实时操作系统并只有少量内存的微型电网智能终端中,是未来微型电网技术发展亟需解决的关键课题之一。另一方面,目前有四种较为流行的嵌入式实时操作系统VXWorks,QNX, ucLinux 和RTEMS。其中QNX是由加拿大QSSL公司开发的微内核实时操作系统,其核心仅提供4种服务进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。因此,QNX的核心非常小巧且运行速度极快,非常适合在嵌入式设备中使用。在王锋发表的硕士学位论文《基于QNX和内存嵌入式实时数据库的现场控制站设计研究》(华北电力大学2006年授予)中,研究了分散控制系统现场控制站的软硬件结构以及基于QNX和内存嵌入式实时数据库的DCS现场控制站的设计,结合实际设计开发了 PAS300M分散控制系统。该论文重点对QNX实时操作系统和extreme DB内存嵌入式数据库在现场控制站设计当中的应用进行了探讨。以QNX实时操作系统为平台的软件系统,充分发挥了 extreme DB的优势。软件系统将eXtreme DB作为数据管理和交换的平台,简化了软件设计逻辑,缩短了开发周期,提高了系统的稳定性和可靠性,在实际电厂运行中取得了很好的效果。

发明内容
本发明所要解决的技术问题在于提供一种用于微型电网智能终端的实时数据库实现方法。采用该方法生成的实时数据库可以满足微型电网智能终端对实时数据库稳定性、效率性及功能性的要求。为实现上述的发明目的,本发明采用下述的技术方案一种用于微型电网智能终端的实时数据库实现方法,其特征在于将组成实时数据库的数据表、域和记录通过文件映射方式映射到微型电网智能终端的内存中,形成数据库实体; 将表空间首地址和记录指针地址存储在相应的B+树中。其中较优地,在实时数据库运行过程中,不同进程通过访问同一块内存实现进程间的数据共享。其中较优地,实时数据库管理系统常驻于内存中,从My SQL参数数据库中读入表的描述信息,在内存中构造实时数据库的数据表。其中较优地,在数据库实体的形成过程中,每一个参数化文件映射一个表空间。其中较优地,所述数据表的每条记录所占的内存大小是固定的,每个域所占的字节是固定的。其中较优地,每条记录的关键字和该记录基于表首指针的偏移量存储在数据记录 B+树中。其中较优地,数据表名和数据表首指针之间的关系存储在数据表名B+树中。本发明所生成的实时数据库可以运行在只有嵌入式处理器和少量内存的微型电网智能终端中,其数据访问能够保持微秒级的速度,并且可以存储复杂和动态变化的数据。 它一方面通过内置基于B+树的二分查找算法,保证了实时数据库的查找效率;另一方面以内存数据集的方式实现数据共享存取,可以满足任务处理的高时限要求。


下面结合附图和具体实施方式
对本发明作进一步的详细说明。图1为微型电网智能终端与其他电网设备的连接示意图;图2为微型电网智能终端的整体结构示意图;图3为本发明所生成的微型电网智能终端实时数据库的总体结构示意图;图4为上述实时数据库中,数据库实体的生成原理示意图;图5为上述实时数据库中,数据库实体的逻辑结构示意图。
具体实施例方式图1显示了一个典型的微型电网中,微型电网智能终端与其他电网设备之间的连接关系。该微型电网智能终端可以与微型电网中的各类电网设备相连接,例如与光伏逆变器、风机逆变器、储能系统、有源滤波器、智能电表、母线保护器等进行连接,用于采集光伏逆变器、风机逆变器、储能系统、有源滤波器、智能电表、母线保护器等设备的实时数据信息。此外,该微型电网智能终端还可以与断路器连接,通过采集开关输入量来采集断路器状态,并通过输出开关输出量来控制断路器的动作。图2为微型电网智能终端的整体结构示意图。在该微型电网智能终端的一个实施例中,包括主控模块、通信模块和数据采集控制模块。其中,主控模块分别与数据采集控制模块和通信模块双向连接。该主控模块用于控制整个智能终端的正常运行。它可以通过数据采集控制模块来采集不同电网设备的数据信息,并通过通信模块来实现与微型电网系统控制器之间的信息交换。数据采集控制模块用于采集各种不同电网设备的数据信息并对这些不同电网设备进行控制。通信模块用于与微型电网系统控制器进行通信,一方面将主控模块中存放的数据信息通过以太网上传到微型电网系统控制器的数据库中,另一方面接收微型电网系统控制器下发的微型电网控制策略指令信息,然后解析控制策略指令信息获取控制指令,并将这些控制指令传递到主控模块。上述的微型电网系统控制器是指各微型电网智能终端上级的系统控制器。它可以是指微型电网内部总的系统控制器,也可以是微型电网内局部区域的系统控制器。一个微型电网系统控制器可以与若干个微型电网智能终端相连接。通过微型电网系统控制器与微型电网智能终端的连接,可以实现对整个分布式发电区域乃至整个分布式发电网络中分布式电源的控制。主控模块中主要包括主控芯片和存储单元,还可以包括用于用户输入操作控制的输入单元和用于对外输出运行状态和运行过程的输出单元。其中,输入单元可采用键盘或鼠标来实现,输出单元可采用显示器来实现。较优地,为了增强该微型电网智能终端与用户的交互性,该主控模块还包括用于视频输出的VGA接口和用于读取外部存储卡的CF卡接口。此外,该主控模块还可以包括多个USB接口。数据采集控制模块具有RS485接口、以太网接口和数字输入输出接口三种接口。其中,以太网接口用于将该微型电网智能终端接入以太网,以便采集母线运行、二次保护设备等的实时数据信息;RS485接口用于连接智能电表、光伏逆变器、储能控制器、有源滤波控制器等,通过这些接口可以采集与之相连的电网设备的数据信息,也可以控制这些电网设备的参数设定和启停等动作。此外,该数据采集控制模块还具有用于连接断路器的数字输入输出接口,通过采集该数字输入输出接口的开关输入量可以采集断路器的状态,通过该数字输入输出接口对外输出开关输出量可以控制断路器的动作,如开启和关闭等。通信模块具有以太网接口,用于与微型电网系统控制器相连接,向该微型电网系统控制器上传采集到的电网设备信息,并接收该微型电网系统控制器下发的控制策略指令信息。图2所示的微型电网智能终端是一种典型的嵌入式设备,具有内存量较少、嵌入式处理器运算能力不强等特点。为了满足在微型电网智能终端中用较小的内存来维护大量的、具有很强时间性的共享数据的要求,需要对现有的实时数据库技术进行重大改造。为此,本发明首先采用文件映射方式将数据库表映射成内存块,形成数据库实体;另一方面, 将内存块共享,并启动多个处理进程互相配合运行以实现各种实时数据管理功能,不同进程通过访问同一块物理内存实现进程间的数据共享。为了提高数据库的索引效率,满足实时数据库API的性能要求,其表空间首地址(即文件映射的内存块首地址)和记录指针地址存储在相应的B+树中,通过调用实时数据库接口函数在B+树中查询或更新所需的实时数据。通过上述的技术措施,使得本发明所生成的实时数据库可以运行在只有嵌入式处理器和少量内存的微型电网智能终端上,其数据访问能够保持微秒级的速度,并且可以存储复杂和动态变化的数据。图3显示了本发明所生成的微型电网智能终端实时数据库的总体结构。该实时数据库包括实时数据库管理系统、若干个参数化文件和若干个数据库实体,其中实时数据库管理系统分为服务器端和客户端两部分。在具体实施过程中,该实时数据库管理系统是一个常驻内存的进程,与具体数据库的模型无关。它可以从My SQL参数数据库中读入表的描述信息,在内存中构造实时数据库的数据表。换句话说,数据表的结构和数据记录根据My SQL参数数据库生成。因此,通过修改My SQL参数数据库的内容,可以改变实时数据库的表结构、域结构和数据记录。如图3所示,分布在客户端上的实时数据库管理系统通过实时数据库API访问微型电网智能终端。该实时数据库API可以选择本地访问或是网络访问。在其主机名参数设置为NULL的情况下,访问本地内存;在其指定主机名的情况下,通过网络客户端访问其他主机(即微型电网智能终端)的数据库。考虑到微型电网智能终端所进行的任务处理都有很高的时限要求,本发明所生成的实时数据库尽量避免磁盘文件操作,相关的数据存取都以内存数据集的方式实现。在这个过程中,由于数据库调用进程和数据库服务器端进程不属于一个进程空间,因此采用了共享内存块的技术。因此,数据库实体是采用文件映射方式生成的共享内存块,其文件映射表的结构根据参数化文件生成。数据记录从存储表格数据的文件中读入,每一个参数化文件映射一个表空间。在本发明的一个实施例中,所生成的实时数据库在QNX实时操作系统的平台基础上运行,相关的内存管理、进程调度等操作都可以使用QNX实时操作系统中的现有技术实现,在此就不详细说明了。在本发明所生成的实时数据库中,参数化文件可以通过实时数据库管理界面显示其内容。有关维护工程师通过实时数据库管理界面,进行参数化文件的查询、增加、删除、修改等操作。图4显示了本发明中,数据库实体的生成原理。该数据库实体是指实时数据库中的数据表、域和记录在内存中的存储形式。参数化文件通过一定的映射操作可以转化为数据库实体。具体地说,参数化文件中的表参数通过数据表空间初始化处理映射到共享内存块中,域参数通过数据表生成处理映射到共享内存块中,而记录参数通过数据表增加记录处理映射到共享内存块中。在本发明中,采用文件映射方式将数据库中的数据映射到内存中,形成数据库实体,其所占内存的记录数和数据通过读取My SQL参数数据库得到。数据表的域结构通过读取My SQL参数数据库得到,这样数据表的每条记录所占的内存大小是固定的,每个域所占的字节是固定的,通过记录关键字可以很容易地得到记录地址,查询指定域的内存地址可以通过记录地址进行计算偏移得到。为了提高本发明所生成的实时数据库的索引效率,满足实时数据库API的性能要求,其表空间首地址和记录指针地址存储在相应的B+树中。如图5所示,文件映射的共享内存块的首地址存储在一个B+树(数据表名B+树)中,调用实时数据库的接口函数可以在B+树中可以访问该实时数据库。数据表的记录可以通过读取My SQL参数数据库得到,每一条记录具有严格固定的长度。其关键字和偏移量存储在另一个B+树(数据记录B+树)中,通过查询该B+树可以通过关键字得到其对应的偏移量。上述的B+树是一种多路搜索树,一般用于数据库的索引,综合效率非常高。B+树的搜索从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为空,或已经是叶子
结点ο在数据库技术中,通常以查找成功时的平均查找长度(Average Search Length, 简写为ASL)作为衡量算法优劣的依据。所谓ASL是指在查找过程中,为确定记录在查找表中的位置,需要与给定值进行比较的记录关键字个数的平均值。下面以ASL为指标来比较 B+树采用的二分查找算法和普通的顺序查找算法之间的性能差距(1)顺序查找算法顺序查找成功时平均查找长度为ASL = (n+l)/2顺序查找不成功时平均查找长度为ASL = n+1所以顺序查找的平均查找长度为ASL = 3 (n+1) /4(2) 二分查找算法二分查找算法在查找成功和不成功时比较次数最多为(log2n)+l平均查找长度为ASL = ((n+1) /n) (log2 (n+1)) -I例如在一个有10000条记录的实时表中,采用顺序查找算法查找一条记录的平均查找长度为ASL = 3(10000+1)/4 = 7500. 75,采用B+树的二分查找算法查找一条记录的平均查找长度为 ASL= ((10000+1)/10000) (log2 (10000+1))-1 = 12. 289。也就是说,在一个有10000条记录(中等大小)的数据表里,查找一条记录,如果采用普通的顺序存储的话平均需要7500. 75次,而采用B+树的话平均需要12. 289次,性能差距是很明显的。基于B+树的上述优点,在图5所示的实时数据库实体中,将实时数据库实体存放在文件映射内存空间中,由数据表名B+树(另外还需要数据表ID B+树)存储数据表名和数据表首指针之间的关系,以便查询的时候迅速返回结果。数据记录B+树存储该条记录的关键字和该记录基于表首指针的偏移量,根据表名(或表ID号)和记录关键字可以迅速查询到记录指针地址,进行下一步的数据操作。本发明所生成的微型电网智能终端实时数据库一方面通过内置基于B+树的二分查找算法,保证了实时数据库的查找效率;另一方面将内存块共享,以内存数据集的方式实现数据存取,避免了磁盘文件操作,从而可以满足微型电网智能终端对任务处理的高时限要求。以上对本发明所提供的微型电网智能终端实时数据库实现方法进行了详细的说明。对本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
权利要求
1.一种用于微型电网智能终端的实时数据库实现方法,其特征在于将组成实时数据库的数据表、域和记录通过文件映射方式映射到微型电网智能终端的内存中,形成数据库实体;将表空间首地址和记录指针地址存储在相应的B+树中。
2.如权利要求1所述的用于微型电网智能终端的实时数据库实现方法,其特征在于 在实时数据库运行过程中,不同进程通过访问同一块内存实现进程间的数据共享。
3.如权利要求1所述的用于微型电网智能终端的实时数据库实现方法,其特征在于 实时数据库管理系统常驻于内存中,从My SQL参数数据库中读入表的描述信息,在内存中构造实时数据库的数据表。
4.如权利要求1所述的用于微型电网智能终端的实时数据库实现方法,其特征在于 在数据库实体的形成过程中,每一个参数化文件映射一个表空间。
5.如权利要求1所述的用于微型电网智能终端的实时数据库实现方法,其特征在于 所述数据表的每条记录所占的内存大小是固定的,每个域所占的字节是固定的。
6.如权利要求1所述的用于微型电网智能终端的实时数据库实现方法,其特征在于 每条记录的关键字和该记录基于表首指针的偏移量存储在数据记录B+树中。
7.如权利要求1所述的用于微型电网智能终端的实时数据库实现方法,其特征在于 数据表名和数据表首指针之间的关系存储在数据表名B+树中。
全文摘要
本发明公开了一种用于微型电网智能终端的实时数据库实现方法。该方法中,将组成实时数据库的数据表、域和记录通过文件映射方式映射到微型电网智能终端的内存中,形成数据库实体;将表空间首地址和记录指针地址存储在相应的B+树中。本发明所生成的实时数据库可以运行在只有嵌入式处理器和少量内存的微型电网智能终端中,其数据访问能够保持微秒级的速度,并且可以存储复杂和动态变化的数据。
文档编号G06F17/30GK102495891SQ201110408178
公开日2012年6月13日 申请日期2011年12月9日 优先权日2011年12月9日
发明者于亚伟, 冯斌, 张毅, 张鹏, 徐际强, 林昌年, 潘正魁, 王庆平, 马晓伟 申请人:北京科东电力控制系统有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1