发明内容
针对现有技术的不足,本发明的目的是提供一种并行协同系统的标准数据交换接口方法,由于PSASP和PSD-BPA这两种电网仿真软件的数据模型差异很大,核心计算程序在计算时对同一类元件所需的参数不尽相同,为了满足平台对这两种软件兼容的需求,统一数据库需要同时承载同一类元件的不同数据模型,该方法解决了将不同格式的数据导入数据库的问题,消除日常传统主流算法分立导致的数据手工转换、工作重复等弊端。
本发明的目的是采用下述技术方案实现的:
本法明提供一种并行协同系统的标准数据交换接口方法,其改进之处在于,所述并行协同系统包括省调用户、地调用户、系统维护服务器、通信装置、Web服务器、应用服务器、数据库服务器、调度服务器和磁盘阵列;所述省调用户、地调用户和系统维护服务器均通过广域网与通信装置连接,通信装置的中心交换机通过Web服务器与光缆连接;所述磁盘阵列通过光交换机与数据库服务器连接;所述应用服务器、数据库服务器和调度服务器均连接在 光缆上;
所述并行协同系统中的数据库与外部数据源之间通过数据交换接口传输数据;传输的数据采用标准数据格式;所述标准数据采用E语言格式电网数据,所述方法包括下述步骤:
(1)初始化Oracle数据库;
(2)读E语言格式文件至内存;
(3)表对表的拷贝;
(4)写数据至Oracle数据库。
优选的,所述步骤(1)中,初始化Oracle数据库包括:建立数据库连接和打开数据库操作;其中建立数据库连接包括设置数据库连接名、数据库名、端口号、用户名、连接密码以及主机名。
优选的,所述步骤(2)中,读E语言格式文件至内存包括下述步骤:
<1>以读取文本文件的方式打开E格式数据文件;
<2>初始化E语言格式数据存储变量;
<3>初始化读取结果标志位;
<4>判断结果标志位是否为真:若为真,则进行下一步,否则进行步骤<20>;
<5>读取E语言格式文件第一行数据信息;
<6>抛弃E语言格式文件第一行数据信息并过滤空行;
<7>过滤E语言格式文件的数据表头信息;
<8>判断该数据表是否为基准容量BaseMVA数据表:若是基准容量BaseMVA数据表,则进行下一步;否则进行步骤<13>;
<9>过滤数据信息的英文注释行和中文注释行;
<10>读取一条数据信息;
<11>判断数据信息是否为该表的结束符:若是结束符,则进行步骤<13>;否则进行下一步;
<12>将该条信息存入内存;并判断结果标志位是否为真:若为真,则返回步骤<8>;否则进行下一步;
<13>判断该表是否为基准电压Basevalue数据表:若为基准电压Basevalue数据表,则进行下一步,否则进行步骤<18>;
<14>过滤数据信息的英文注释行和中文注释行;
<15>读取一条数据信息;
<16>判断数据信息是否为该表的结束符:若是结束符,则进行步骤<18>;否则进行下一步;
<17>将该条信息存入内存;并判断结果标志位是否为真:若为真,则返回步骤<15>;否则进行下一步;
<18>判断该表是否为厂站信息Substation数据表:若是,则进行下一步否则,返回步骤<13>;
<19>逐张表遍历,并读取E格式文件数据信息;
<20>读E语言格式数据文件至内存流程结束。
优选的,所述步骤(3)中,表对表的拷贝是指E格式文件数据被读入内存后,将其拷贝至操作系统中数据库的内存里。
优选的,所述步骤(4)中,写数据至Oracle数据库包括下述步骤:
a、连接Oracle数据库;
b、向BaseMVA数据表中导入数据;
c、判断数据库内存中BaseMVA数据是否存在:若存在,则进行下一步;否则进行步骤i;
d、初始化系统内存数据表单list,储存内存数据;
e、定义内存指针,将其指向数据库内存基准容量BaseMVA中的一条数据;
f、将内存缓存区map中的一条数据内容存入数据表list中;
g、判断内存指针是否指向数据库内存结束位置:若是,则进行步骤h;否则指针加1并返回步骤e;
h、将系统内存数据表单list中的数据批量存入数据库;
i、向基准电压Basevalue数据表中导入数据;
j、判断数据库内存中Basevalue数据是否存在:若存在,则进行下一步;否则进行步骤p;
k、初始化系统内存数据表单list,储存内存数据;
l、定义内存指针,将其指向数据库内存基准电压Basevalue中的一条数据;
m、将内存缓存区map中的一条数据内容存入系统内存数据表单list中;
n、判断内存指针是否指向数据库内存结束位置:若是,则进行步骤o;否则指针加1并返回步骤e;
o、将系统内存数据表单list中的数据批量存入数据库;
p、向下一张表中导入数据,导入步骤与基准容量BaseMVA数据表和基准电压Basevalue 数据表相同;
q、共处理厂站、母线、节点、交流线14张数据表;
r、写数据至Oracle数据库流程结束。
所述数据交换接口用于实现并行协同系统PSASP,PSD_BPA多种数据源在线交互,支持在线、离线数据导入/导出功能,支持云导入数据功能,无需人工干预,实现全网数据自动无缝拼接。
较优选的,所述电力系统分析综合程序PSASP和电力系统分析软件工具PSD_BPA集成在调度服务器上,通过集成算法接口与应用服务器的协同管理模块以及仿真计算模块进行数据交互;
对电力系统分析综合程序PSASP和电力系统分析软件工具PSD_BPA两种数据分析工具,建立统一的设备参数数据标准和电网仿真计算模型,用于实现数据维护。
较优选的,所述设备参数数据标准信息包括基础元件调度规划信息和用于潮流计算的元件物理参数信息和电网仿真计算模型包含发电机,调压器,调速器,稳定控制器PSS,直流系统控制模型,可控高抗,静止无功补偿器设备的计算模型。
与现有技术比,本发明达到的有益效果是:
1.解决了电网公司各级调度机构因采用多种电力系统分析程序(包括PSASP、PSD-BPA、PSSE等),由原始数据模型的不一致而导致的计算结果差异,比如负荷模型的差异以及发电机控制系统的差异等。解决了因使用不同分析程序为电网调度人员在数据整合,数据拼接,数据转换以及计算结果分析比对等方面带来的大量复杂且重复的工作,极大的提高了在联网计算的过程中,调度人员的工作效率,缩短计算周期,有利于对电网的事故作出及时响应。
2.基于E语言格式标准数据交换技术解决了海量数据导入的难题。统一计算平台数据库数据源主要有:来自于PSDB数据库的导出数据文件,PSASP的导出数据文件、PSD-BPA的导出数据文件以及用户手动输入的电网数据。这四类数据包含的数据量都非常大,在建立统一数据库的基础上,解决了多种格式的海量数据导入、导出问题。
3.统一计算接口的应用,解决在电网计算数据规模不断扩大、数据更新量不断增加以及运行方式愈发复杂的情况下,电网计算数据的准确可靠、及时更新以及快捷交换的问题,从而提高电网方式分析工作的准确性和计算效率,提高安全稳定分析技术水平,为调 度系统计算数据统一管理、业务统一执行奠定坚实基础,直接驱动调度运行方式计算业务模式快速变革,为电力系统安全稳定运行提供有力的保障。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
本发明通过对比PSASP与PSD-BPA基础数据模型的差异,提出了一种基于PSASP与PSD-BPA的统一数据模型方案,并在此基础上,开发了统一计算平台基础数据库,支持PSASP数据和PSD-BPA数据的存储和管理,支持PSASP和PSD-BPA计算应用。本发明提供的统一数据模型研究技术路线图如图1所示。
由于PSASP和PSD-BPA这两种电网仿真软件的数据模型差异很大,核心计算程序在计算时对同一类元件所需的参数不尽相同,为了满足平台对这两种软件兼容的需求,统一数据库需要同时承载同一类元件的不同数据模型。为了可以将不同格式的数据导入数据库,本系统发明了一种统一平台数据交换接口的规范:E语言格式电网数据。
E语言,又称电力系统数据模型描述语言。它是为满足各类电网自动化的迅速建立,电力系统数据的快速整合的一套简单高效实用的电力系统数据模型描述工具和交换规范。E语言采用面向对象技术,将电力系统传统的面向关系(设备)的数据描述与面向对象的CIM相结合,既保留了面向设备的方法的高效率,又吸收了面向对象方法的特点。E语言中的类(class)、属性(attribute)、对象(object)、分别对应于面向设备方法中的表(table)、域(field)、记录(record)。
E语言非常简单,仅定义了几个符号,例如:<,>,@,#,/等,作为引导符位于文本文件中每行的第一个字符或与第二个字符组合,具有特殊意义[34]。E语言的基本语法结构如图2所示。
E格式数据就是一种由E语言描述出来的具有特殊格式的电网元件模型数据。E格式是由国际标准CIM演化而来。相较CIM简单,文件小,读写快。统一计算平台数据库就是通过读取E格式数据文件,完成数据的入库工作。
由于描述语言是统一的,无论对于PSASP格式的数据还是PSD-BPA格式的数据,对于同一种元件模型描述方法都是一样的。例如对电网中厂站的描述,如图3所示。第一行是整套数据的总体信息描述,包括数据来源,创建时间等。从第二行开始就是对电网中厂站模型的具体描述。首先需要有一条标签行,告诉用户这张表描述的对象信息:“<Substation::国调type=全数>”即:该表为国调数据的厂站表。其次,需要有厂站的具体描述信息,包括:厂站编号,名字,电压等级,类型等。为了方便用户查阅,E格式数据还提供了元件属性的中文说明。最后,也是数据文件的主体部分,即为电网中所有厂站的具体数据信息。一套完整的国调基础数据包括主要包括基准值、厂站、母线、交流线、发电机、变压器、负荷、并联电容电抗器、串联电容电抗器、换流器、直流线这几类元件。
数据交换接口是解决不同软件或者系统之间数据交互问题的方法。电力系统数据交换方法可以分成两大类方法:一类是两种数据格式直接转换,一类是通过中间格式进行转换。第一类方法存在的问题是接口程序与两种格式耦合大,任何一个格式变化时都需要修改程序。第二类方法电力系统常用的是CIM-XML格式作为中间标准格式,它的不足主要是CIM-XML格式较为复杂,对于大量电网运行数据,数据文件太大,数据传输和解析开销大
为了增强系统的可靠性、通用性,系统开发了外部数据与E格式数据、E格式数据与Oracle数据库相关交换通道,能够实现数据高效便捷交换。E格式数据作为数据库与外界系统交换的数据接口,它的可读性、可维护性、可用性较强以方便对电网数据进行统一组织和交换。E格式数据作为统一计算平台与外部系统的交换标准,系统内部将E格式数据转换存入Oracle数据库进行管理。
如图4为数据库与外部数据源通过E语言格式中转的数据交换接口方案示意图:
数据导入程序的作用是将E格式数据文件内容,存入数据库对应的表中。导入的过程主要分为如图所示的四个部分,包括:初始化Oracle数据库、E格式数据文件至内存,表对表拷贝以及写数据至数据库。其流程图如图5所示,具体包括下述步骤:
(1)初始化Oracle数据库
数据入库前,需要先初始化Oracle数据库其中包括:建立数据库连接:设置数据库连接名、数据库名、端口号、用户名、连接密码以及主机名;打开数据库等操作。
(2)读E格式数据文件至内存
数据库准备完毕后,开始进行数据的入库工作。首先,需要将数据读入内存。由于E格式数据中包含数据的说明信息,如元件表的说明,数据属性的说明等。这些信息对于数据入库工作没有任何作用,所以需要将E格式数据文件中的此类数据剔除出去。然后,逐张表格进行数据的拷贝。E格式中,一行数据代表一条具体的元件信息,所以拷贝也是逐条进行的。如图6所示为E文件读入内存的程序流程图,其中省略的部分为其他表的拷贝,采用方法相同。具体包括下述步骤:
<1>以读取文本文件的方式打开E格式数据文件;
<2>初始化E语言格式数据存储变量;
<3>初始化读取结果标志位;
<4>判断结果标志位是否为真:若为真,则进行下一步,否则进行步骤<20>;
<5>读取E语言格式文件第一行数据信息;
<6>抛弃E语言格式文件第一行数据信息并过滤空行;
<7>过滤E语言格式文件的数据表头信息;
<8>判断该数据表是否为基准容量BaseMVA数据表:若是基准容量BaseMVA数据表,则进行下一步;否则进行步骤<13>;
<9>过滤数据信息的英文注释行和中文注释行;
<10>读取一条数据信息;
<11>判断数据信息是否为该表的结束符:若是结束符,则进行步骤<13>;否则进行下一步;
<12>将该条信息存入内存;并判断结果标志位是否为真:若为真,则返回步骤<8>;否则进行下一步;
<13>判断该表是否为基准电压Basevalue数据表:若为基准电压数据表,则进行下一步,否则进行步骤<18>;
<14>过滤数据信息的英文注释行和中文注释行;
<15>读取一条数据信息;
<16>判断数据信息是否为该表的结束符:若是结束符,则进行步骤<18>;否则进行下一步;
<17>将该条信息存入内存;并判断结果标志位是否为真:若为真,则返回步骤<15>;否则进行下一步;
<18>判断该表是否为厂站信息Substation数据表:若是,则进行下一步否则,返回步骤<13>;
<19>逐张表遍历,并读取E格式文件数据信息;
<20>读E语言格式数据文件至内存流程结束。
(3)表对表的拷贝:
E格式数据被读入内存后,需要将其拷贝至操作系统中数据库对应的内存里。一般情况下,数据读取完毕后可以直接写入数据库中,这里需要进行内存至内存的拷贝原因主要有两点:
1)通过内存至内存拷贝这个步骤,可以将读数据和写数据这两个程序模块剥离出来。使这两部分程序模块的编写可以完全脱离业务的需求,仅单单执行读或者写的编程任务。
2)为了增加平台的可扩展性,实现更多版本数据的兼容,E格式数据接口文件在今后的平台升级中可能会被重新定义。那么它与数据库的交互可能会存在数据转换的过程。将此过程完全定义在内存至内存的拷贝中,可以更加明确程序的执行任务。方便开发人员的维护。
(4)写数据至数据库:
最后,程序实现了内存数据写库的过程。如图7所示,其中省略的部分为其他表的拷贝,采用方法相同。具体包括下述步骤:
a、连接Oracle数据库;
b、向BaseMVA数据表中导入数据;
c、判断数据库内存中BaseMVA数据是否存在:若存在,则进行下一步;否则进行步骤i;
d、初始化系统内存数据表单list,储存内存数据;
e、定义内存指针,将其指向数据库内存BaseMVA中的一条数据;
f、将内存缓存区map中的一条数据内容存入系统内存数据表单list中;
g、判断内存指针是否指向数据库内存结束位置:若是,则进行步骤h;否则指针加1并返回步骤e;
h、将系统内存数据表单list中的数据批量存入数据库;
i、向Basevalue数据表中导入数据;
j、判断数据库内存中Basevalue数据是否存在:若存在,则进行下一步;否则进行步骤p;
k、初始化系统内存数据表单list,储存内存数据;
l、定义内存指针,将其指向数据库内存Basevalue中的一条数据;
m、将内存缓存区map中的一条数据内容存入系统内存数据表单list中;
n、判断内存指针是否指向数据库内存结束位置:若是,则进行步骤o;否则指针加1并返回步骤e;
o、将数据表list中的数据批量存入数据库;
p、向下一张表中导入数据,导入步骤与BaseMVA数据表和Basevalue数据表相同;
q、共处理厂站、母线、节点、交流线14张数据表;
r、写数据至Oracle数据库流程结束。
本发明提供的多人异地并行协同系统硬件结构图如图8所示,硬件作为系统实现和运行的基础,采用最新的计算机硬件技术,如多核、多CPU、集群、SAN等,并对硬件不敏感,在操作系统和支撑软件的统一管理下能够同时采用多种混合硬件平台。
为了满足数据安全和系统稳定的需要,操作系统层主要采用LINUX操作系统,但系统也应能支持Unix,Windows等不同的操作系统。做到跨硬件平台和跨操作系统是系统构建和开发的基本要求。
系统所使用的硬件包括省调用户、地调用户、系统维护服务器、通信装置、Web服务器、应用服务器、数据库服务器、调度服务器和磁盘阵列;所述省调用户、地调用户和系统维护服务器均通过广域网与通信装置连接,通信装置的中心交换机通过Web服务器与光缆连接;所述磁盘阵列通过光交换机与数据库服务器连接;所述应用服务器、数据库服务器和调度服务器均连接在光缆上。通信装置包括依次连接的路由器、防火墙和中心交换机;所述应用服务器的数量为2,两台应用服务器之间存在负载均衡;所述数据库服务器的数量为2,两台数据库服务器之间通过芯跳线连接。硬件清单如表1所示:
表1 系统硬件清单
大电网统一数据库的用户是通过互联网对数据库进行访问的,基本用户包括:各级电力公司的方式部门、调度调门、保护部门、规划部门,电科院系统维护人员,其他系统相关人员等。大电网统一数据库以网络数据库为基础,数据库服务器和存储设备均部署在省调,地调无需部署任何物理设备,省调、地调用户都通过web浏览器对数据库进行访问,进行查询、修改、增加、删除等数据操作。
本发明提供的多人异地并行协同系统功能结构图如图10所示,其中应用服务器包括协同管理模块以及仿真计算模块;
协同管理模块包括项目管理模块、工程管理模块、数据管理模块和权限控制模块;所述数据管理模块管理电网数据存储、数据维护和数据版本;所述权限控制模块控制用户权限、数据权限和作业权限;协同管理模块提供了图形化工具进行工作流程的自由定义,并提供了强大的工作流引擎,项目启动之后,工作流引擎会接管任务的流转,并通过短信、消息通知等多种消息提醒方式,提醒计算人员进行相关任务的处理,最终实现电网方式计算的多人异地联合计算模式,形成协作任务与网络应用高度融合的电力系统方式计算协同模块。
数据权限管理:本发明作为一个庞大复杂的开放性网络平台,在实现数据实时共享的同时,也要保证数据的保密性和在信息传输或者存储过程中的完整性。综合考虑网格的动态性、分布性、大规模性等特点,统一协同系统采用了基于角色的访问控制模型,多用户协同计算的数据认证模型和单点登陆机制。基于角色的访问控制模型是一个复合的策略,它既有自主访问控制的性质,又有强制访问控制的性质。它将访问许可权分配给角色,用户通过赋予不同的角色获得角色所拥有的访问许可权。多用户协同计算的数据认证模型,通过对数据进行授权,使得只有拥有权限的合法用户才能获取数据信息,而没有权限的用户不能获取数据信息。本发明提供的数据认证模型结构图如图11所示。
仿真计算:统一协同系统提供了一体化联合方式计算方法,主要包括潮流计算,暂稳计算,小干扰计算,静态安全分析,电压稳定计算,短路计算,数据结果报表及曲线展示等功能;支持多用户对同一套工程数据同时进行维护和修改,系统对修改后的分区数据进行并行计算和校核,保证全网和分区数据的唯一性、完整性和正确性。
在Web服务器与应用服务器和调度服务器之间均采用B/S架构,即浏览器/服务器架构;在浏览器上设有GIS图形模块,用于在浏览器上进行电网设备和模型参数的浏览、编辑,查询,定位,图形和数据库数据实时同步,进行运行方式安排、仿真计算及计算结果展示。
数据库服务器上包括数据库,省调用户和地调用户对数据库进行访问,进行查询、修改、增加、删除数据操作;在数据库上通过数据交换接口,实现与电力系统分析综合程序PSASP,电力系统分析软件工具PSD_BPA,和OMS操作系统多种数据源在线交互,支持在线、离线数据导入/导出功能,支持云导入数据功能。
电力系统分析综合程序PSASP和BPA集成在调度服务器上,通过集成算法接口与应用服务器的协同管理模块以及仿真计算模块进行数据交互。对电力系统分析综合程序PSASP和电力系统分析软件工具PSD_BPA两种数据分析工具,建立统一的设备参数数据标准(包括基础元件调度规划信息和用于潮流计算的元件物理参数信息)和电网仿真计算模型(包含发电机,调压器,调速器,稳定控制器PSS,直流系统控制模型,可控高抗,静止无功补偿器等设备的计算模型),用于实现数据维护。
本发明系统软件架构采用B/S方式,系统基于Java EE平台、MVC设计思想,使用企业应用开发中主流的Spring、SpringMVC3、Mybatis3、webservice等技术,同时使用数据库技术、分布式文件系统以及通信中间件来支持底层的数据存储和通信操作,使系统可以灵活、轻便、快速地提供服务,同时能够高效、稳定、安全地运行。
本发明提供的多人异地并行协同系统构架图如图9所示,B/S架构,即浏览器/服务器架构,浏览器是用户与系统交互的唯一客户端软件,它向服务器端发起用户操作请求,服务器端处则理客户端请求数据并处理相关业务逻辑,之后向客户端传输操作响应。B/S架构是随着Internet技术而兴起的一种软件架构,是当今企业应用的主流架构,它降低了客户端的软硬件需求,使其仅需要安装浏览器,即可以使用软件系统提供的服务。同时,它也大大降低了软件系统的维护和升级成本,提升了灵活性和易用性。
Java EE平台是基于Java语言的企业级应用开发平台,它包含一系列开放的企业级应用开发技术规范,包括JSP、Servlet、Webservice、JMS、JavaMail、JSF、EJB等。JSP和Servlet是Java EE平台的核心技术,它们是B/S架构应用程序的基础组件。JSP即是Java动态网页技术,它使开发者可以使用Java语言编写动态网页界面,在Java EE企业应用程序中通常作为界面展示层技术使用。Servlet即是Java服务端小程序,它为Java EE应用程序提供浏览器/服务器端的通信接口,使得开发者可以从网络通信协议中解放出来而专注于应用数据处理和业务逻辑开发。
Java EE应用程序由应用服务器和应用程序软件组成,应用程序软件是由企业开发的满足特定业务的软件系统,而应用服务器则是由一些专业厂商提供的,比如ApacheTomcat、Oracle GlassFish、Jboss Resin等,所有遵循Java EE规范的应用程序都可以运行于这些应用服务器中。协同系统使用的即是Apache Tomcat应用服务器,它是目前应用最广泛的Java EE应用服务器。
SpringMVC是由Spring组织开发的一套遵循Java EE规范、符合MVC设计思想的WEB应用程序开发框架,它定义了一系列精细的开发接口和可复用的组件,使开发者能够更规范、更快速地进行WEB应用程序开发。协同系统采用的是SpringMVC3,它是SpringMVC的最新版本,支持Java语言中目前较先进的注解特性,使WEB应用程序的开发更加简便和灵活。
Spring是由Spring组织开发的一套基于依赖注入软件设计思想Java对象管理框架,用于管理和维护Java应用程序运行时的各种内存对象。Spring已经广泛应用于各种软件系统,它使开发者不需要实现对象的创建和管理,而仅需要从Spring容器中获取期望的对象即可,这大大降低了应用程序各组件之间的耦合性,使应用程序能够具有更好的适应性和灵活性。
Mybatis是Jboss旗下的一套Java持久化框架,用于支持Java对象到关系数据库的持久化操作。Mybatis由应用程序接口和SQL映射文件组成,开发者首先需要编写SQL映射文件,然后调用它的应用程序接口,即可实现数据持久化。它是一种较为灵活和开放的Java持久化方案,开发者可以最大限度地控制数据库操作,进行相应地优化和调整。协同系统使用它来支持整个系统的数据持久化操作。
协同系统的部分功能是由Java程序和C++程序联合提供的,为了解决这种异构程序间的通信问题,我们引入了Webservice技术和通信中间件,它们能够简化异构程序间通信的复杂性和依赖性。Webservice用于支持异构程序间的同步调用模式,而通信中间件则用于支持异步调用模式。在协同系统中,数据抽取、数据检查等功能采用的是Webservice方式,而潮流计算、暂稳计算等需要即时返回计算过程数据的功能采用的是通信中间件方式。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。