本发明涉及电力系统仿真技术领域,并且更具体地,涉及一种适用于仿真计算程序移植的方法及系统。
背景技术:
电力系统仿真软件在70年代,伴随计算机技术,电力系统的仿真算法和第一批仿真软件就出现了。从那时候起,半个世纪的迭代进化,基础的仿真算法改进的并不多,但仿真的实现形式已经有过几次变革。尤其是随着互联网、物联网应用的日益广泛,云计算的理念被提出,通过网络提供计算、存储、网络资源,便捷地、按需地为用户提供各类计算服务。
目前亚马逊、微软、阿里巴巴、腾讯等国内外云计算服务商已经在互联网上向社会提供公有云和私有云计算服务解决方案。但由于传统电网仿真计算程序因为历史原因,设计之初面向单机版或mpi模式,很难直接部署或和现行云计算框架融合。并且电网仿真计算算法维护和相关计算模型数据的处理是一个相对专业的技术领域,对于前台和后台业务应用开发人员,很难理解相关业务细节,而电力专业人员也很难理解前台和后台通用计算机技术。按照云计算、云存储的架构、运行环境重构传统电网仿真计算程序,需要不同行业技术人员相互配合协作,工作量巨大。
技术实现要素:
针对上述问题,本发明提出了一种适用于电力系统云计算的计算中间件方法,包括:
针对电网仿真数据管理平台的仿真计算程序的可执行程序进行处理,生成可移植的程序;
针对可移植的程序,建立计算模板;
根据计算模板,对混合云计算服务进行封装,完成对仿真计算程序至混合云计算的移植。
可选的,对仿真计算程序进行分析,包括:
针对可执行的程序,确定所述可执行程序的输入及输出特征,根据输入及输出特征对可执行程序在psdb系统架构下进行封装,所述封装将可调用的程序从单机串行转换为集群分布式并行;
针对非可执行的程序,对非可执行的程序进行组合。
可选的,可移植的程序为组合的非可执行的程序,及封装的可执行的程序。
可选的,建立计算模板,包括:
统一入口,所述统一入口,包括:选择生成仿真计算模型的程序作为元程序;对元程序根据方式id,从设备库、方案库及方式库,根据潮流计算种类生成仿真计算模型;
统一仿真计算文件的存储,所述统一仿真计算文件的存储,包括:根据psdb的库表结构及文件服务器存储规范,把执行记录存到关系型数据库中,计算结果文件存储到文件服务器中;
根据统一入口及统一仿真计算文件的存储,执行元程序,所述执行元程序包括:以子进程的方式执行潮流计算;
对执行元程序的执行记录进行封装,完成计算模板的建立。
可选的,计算模板的建立,基于仿真计算数据管理平台库表结构,记录设备铭牌参数以及运行方式信息及执行元程序的返回值及执行过程记录;
建立完成后,对计算模板及结果文件使用服务器存储。
本发明还提出了一种适用于电力系统云计算的计算中间件系统,包括:
初始预处理模块,针对电网仿真数据管理平台的仿真计算程序的可执行程序进行处理,生成可移植的程序;
计算模块,针对可移植的程序,建立计算模板;
移植模块,根据计算模板,对混合云计算服务进行封装,完成对仿真计算程序至混合云计算的移植。
可选的,对仿真计算程序进行分析,包括:
针对可执行的程序,确定所述可执行程序的输入及输出特征,根据输入及输出特征对可执行程序在psdb系统架构下进行封装,所述封装将可调用的程序从单机串行转换为集群分布式并行;
针对非可执行的程序,对非可执行的程序进行组合。
可选的,可移植的程序为组合的非可执行的程序,及封装的可执行的程序。
可选的,建立计算模板,包括:
统一入口,所述统一入口,包括:选择生成仿真计算模型的程序作为元程序;对元程序根据方式id,从设备库、方案库及方式库,根据潮流计算种类生成仿真计算模型;
统一仿真计算文件的存储,所述统一仿真计算文件的存储,包括:根据psdb的库表结构及文件服务器存储规范,把执行记录存到关系型数据库中,计算结果文件存储到文件服务器中;
根据统一入口及统一仿真计算文件的存储,执行元程序,所述执行元程序包括:以子进程的方式执行潮流计算;
对执行元程序的执行记录进行封装,完成计算模板的建立。
可选的,计算模板的建立,基于仿真计算数据管理平台库表结构,记录设备铭牌参数以及运行方式信息及执行元程序的返回值及执行过程记录;
建立完成后,对计算模板及结果文件使用服务器存储。
本发明实现了电网仿真计算中间件的功能,并根据仿真计算场景抽象出计算模板,统一接口与输出,封装计算流程与业务实现细节,降低执行电网仿真计算的复杂度,衔接psdb前台业务应用和后台基础服务,并通过对超算公有云与psdb私有云计算计算服务接口的封装,屏蔽了后台云计算服务的差异与细节,实现了传统单机电力系统仿真程序向云计算的移植。
附图说明
图1为本发明方法流程图;
图2为本发明实施例计算中间件在psdb系统中的应用示意图;
图3为本发明实施例psdb系统潮流计算流程图;
图4为本发明实施例仿真计算中间件在psdb系统中功能示意图;
图5为本发明实施例潮流仿真计算业务流程示意图;
图6为本发明实施例psdb仿真计算相关表图;
图7为本发明实施例仿真计算数据模型和计算结果在文件服务器中逻辑存储结构图;
图8为本发明实施例计算模板对元程序的封装示意图;
图9为本发明实施例计算模板在混合云计算中的应用示意图;
图10为本发明实施例计算中间件在混和云计算中部署示意图;
图11为本发明系统的结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
本发明提出了一种适用于电力系统云计算的计算中间件方法,如图1所示,包括:
针对电网仿真数据管理平台的仿真计算程序的可执行程序进行处理,生成可移植的程序;
针对可移植的程序,建立计算模板;
根据计算模板,对混合云计算服务进行封装,完成对仿真计算程序至混合云计算的移植。
其中,对仿真计算程序进行分析,包括:
针对可执行的程序,确定所述可执行程序的输入及输出特征,根据输入及输出特征对可执行程序在psdb系统架构下进行封装,所述封装将可调用的程序从单机串行转换为集群分布式并行;
针对非可执行的程序,对非可执行的程序进行组合。
其中,可移植的程序为组合的非可执行的程序,及封装的可执行的程序。
其中,建立计算模板,包括:
统一入口,所述统一入口,包括:选择生成仿真计算模型的程序作为元程序;对元程序根据方式id,从设备库、方案库及方式库,根据潮流计算种类生成仿真计算模型;
统一仿真计算文件的存储,所述统一仿真计算文件的存储,包括:根据psdb的库表结构及文件服务器存储规范,把执行记录存到关系型数据库中,计算结果文件存储到文件服务器中;
根据统一入口及统一仿真计算文件的存储,执行元程序,所述执行元程序包括:以子进程的方式执行潮流计算;
对执行元程序的执行记录进行封装,完成计算模板的建立。
其中,计算模板的建立,基于仿真计算数据管理平台库表结构,记录设备铭牌参数以及运行方式信息及执行元程序的返回值及执行过程记录;
建立完成后,对计算模板及结果文件使用服务器存储。
下面结合实施例对本发明进行进一步的说明:
本发明基于电网仿真计算数据平台实现了一种适用于电力系统云计算的计算中间件功能,按照仿真计算业务场景抽象出计算模板,对单位单机版仿真计算程序进行封装,按照psdb系统架构统一输入与输入接口,封装计算流程与业务实现细节,并对超算公有云与psdb私有云计算服务进行封装,衔接psdb前台业务应用和后台基础服务,如图2所示。
针对现有的仿真计算可执行程序分析,包括:
仿真计算可执行程序调用;
在单机版计算软件设计之初,按照“松耦合,高内聚”原则,按照业务功能拆分出各自独立的可执行程序(exe或dll),可执行程序之间通过文件或数据库耦合起来。每个可执行程序的调用,都可以简化为“输入、执行、输出”三步。
本发明目的就是根据这些可执行程序输入、输出特点,在psdb系统架构下对其进一步封装,在不改变或少量调整源码的基础上,由单机版程序迁移到云计算环境,从单机串行变为集群分布式并行。
元计算程序;
按照电网仿真计算业务功能,执行某种业务功能且不能进一步拆分的计算功能称为元计算,通过组合元计算完成特性的仿真计算功能。psdb系统中部分元程序如表1所示。
表1
仿真计算模板;
仿真计算模板面向前台业务场景调用,把业务相关元程序组合起来。每个计算业务场景需要调用一系列的子可执行程序,有些前续计算结果为后续元计算输入,有些要根据子计算结果判断后续可执行程序流程。同时在计算模板中要考虑对不同计算软件的兼容性(bpa,psasp),跨平台兼容性,psdb私有云计算和超算平台的支持。如潮流计算的计算模板,就是把电网潮流计算相关元程序,按照业务流程执行逻辑封装起来,对外提供调用入口和出口,封装业务逻辑和实现细节,业务流程,如图3所示。
计算模板在psdb架构下,封装单机版潮流元计算程序对输入与输出的需求,适配web环境(云环境),如图4所示,如psdb前台应用调用潮流计算功能,只需调用潮流计算模板,选择执行软件是psd-bpa还是psasp,传入方式id等参数,接收执行返回值,而无需关注潮流计算本身的业务细节,后台执行哪些处理,是psdb私有云计算的还是超算服务计算的,计算结果如何保存解析等中间过程。
统一入口;
潮流计算种类[psd-bpa/psasp];
选择数据模型生成仿真计算模型的元程序。
待潮流计算方式的id主键;
生成潮流计算模型元程序根据方式id,从设备库、方案库、方式库按照潮流计算种类生成相应的仿真计算模型。
统一仿真计算相关文件存储;
元程序只关注业务功能的实现,计算模板会根据psdb的库表结构以及文件服务器存储规范,把相关的执行记录存到关系型数据库中,计算结果文件存储到文件服务器中,从而把孤立元程序从传统的单机版可执行程序“嵌入”psdb中;
执行元程序;
在bpa单机版计算程序中,执行潮流计算是以子进程的方式执行,在psdb架构下,私有云计算根据计算服务任务分配策略,在计算节点中同样以子进程方式执行,并对计算任务子进程进行监控与管理;在超算公有云环境下,计算模板封装其开放的计算api接口,完成计算的提交、查询、结果下载。
无论是私有云还是调用超算云,对于前台调用潮流计算功能,传入的参数、调用的潮流元程序、计算结果返回值、返回内容是一致。
业务流程封装;
在潮流计算模板中,把潮流计算要执行的元程序按业务功能组合起来,封装业务逻辑和实现细节(包括每个元程序的前序输入文件及参数检查,以及标志性结果文件检查,每个元程序的执行时间返回值、所有元程序的执行过程记录等),对外提供调用入口和出口,业务流程如图5所示,包括的元计算如下:
生成仿真计算潮流模型文件元程序;
根据计算类型和方式id生成psd-bpa或psasp的仿真计算模型;
潮流计算元程序;
执行电网潮流仿真计算;
潮流结果解析与存储元程序;
解析潮流计算结果,存储结果到数据库指定表和文件服务器。
计算任务的拆分;
一个计算模板可以包含子模板,如电网暂态稳定n-1扫描,可以拆分为n-1个单一暂态稳定计算,进而实现一个计算任务的多机分布式并行计算,而对于潮流计算目前只作为一个计算模板,在计算节点计算机上以一个子进程执行。
基于仿真计算数据管理平台库表结构;
psdb系统基于数据库表记录设备铭牌参数以及运行方式信息。部分仿真计算表如图6所示。
单机版的可执行程序输入输出基于仿真计算文件,计算模板根据psdb的数据库表记录主键id,调用相关元程序,生成相关的计算文件,适配传统单机可执行程序到psdb系统。
计算模板返回值及执行过程记录;
每个元计算程序都有自己特定的返回值,对于计算模板在全局统一所有元程序的返回值含义,方便前台应用调用,如:0,计算模板执行成功,程序正常退出;-1,潮流计算不收敛。
计算模板的执行过程记录在log日志文件中,包括执行元程序的返回结果int值、调用cmd屏幕返回、执行时间、执行异常等,便于错误定位与进一步的结果分析。
计算模型及结果文件服务器存储;
按照psdb设备库的关系,组织仿真计算数据模型和计算结果逻辑存储结构,在文件服务器中保证电网的一个运行方式版本下,只存在一份仿真计算模型,一份计算结果(潮流计算分析、短路电流计算分析、小干扰动态稳定计算分析、暂态稳定计算分析等),避免冗余存储,如图7所示。
对于psdb业务前台,调用计算模板后,计算模板会把仿真计算结果文件存储在文件服务器特定逻辑目录下,前台不需要关注仿真计算中间过程,以及结果文件是超算的公有云还是psdb的私有云计算的,只需要读取特定结构下仿真计算结果文件。
元计算程序间的衔接与交互;
单位软件以psd-bpa为例,主要的编程语言是c/c ,核心算法还有fortran,还可能涉及到java、vb、matlab编写的模块(可执行程序exe或动态链接库dll),目前用python和c 把不同的语言编写的模块打包起来,每个计算场景作为一个可执行程序。
应用开发人员只需维护好自己的元程序,规范好输入输出接口,计算模板就像搭建积木一样,组合完成特定的业务功能,如图8所示。
混合云计算服务封装;
包括:数据计算中间件,对超算云计算和psdb私有云计算api接口进行封装,统一输入输出,封装了后台细节,对于前台调用仿真计算功能,无论选择私有云还是超算云,传入的参数、调用的潮流元程序、计算结果返回值、返回内容都是一致。
对计算模板的架构进行计算,包括:
将计算模板和元程序保存在超算和psdb的文件服务器中,并作为共享存储,挂在在每个计算节点下。
计算模板对超算云计算和私有云计算进行封装,对于超算公有云,计算模板封装其开放的计算api接口,按照其要求实现提交并行计算任务,查询作业计算的进度,获取计算的结果文件,对于psdb私有云计算,计算模板发送计算请求消息给计算服务器,计算服务器执行超算同样的计算元程序。关于超算或私有云,如何执行计算任务,实现负载均衡、任务超时重算等,对于前台调用是黑盒,计算中间件,统一输入输出封装了后台细节。无论是私有云还是调用超算云,对于前台调用潮流计算功能,传入的参数、调用的潮流元程序、计算结果返回值、返回内容是一致,如图9所示。
统一输入输出接口;
统一输入;
专利基于psdb系统设备库、方案库、方式库中的记录id为输入参数,计算模板通过主键id在数据库中生成传统单机版程序需要的仿真计算相关文件。
统一输出;
元程序只关注业务功能的实现,计算模板会根据psdb的库表结构以及文件存储,把相关的执行记录存到关系型数据库中,计算结果文件存储到文件服务器中,前台应用只需调用计算模板,读取相应的输出结果,如标志性文件、数据库中的特定表,而无需关注是超算云平台计算的还是psdb私有云计算的。
计算中间件部署架构;
计算模板和元程序保存在超算和psdb的文件服务器中,并作为共享存储挂在在每个计算节点下,如图10所示。
可执行程序版本;
对于电网仿真计算程序,数据模型和计算程序要严格对应,目前系统只保留最新版本,简化仿真计算模型数据和元程序的管理。
可执行程序更新;
电网的数据模型、计算模型随着设备新模式的加入,调整等,可执行程序可能需要频繁更新。更新元程序和计算模板只需同步覆盖超算和psdb文件服务器上的可执行程序目录下同名文件,作为“共享目录”,每个计算节点都能及时更新。
本发明还提出了一种适用于仿真计算程序移植的系统200,如图11所示,包括:
初始预处理模块201,针对电网仿真数据管理平台的仿真计算程序的可执行程序进行处理,生成可移植的程序;
计算模块202,针对可移植的程序,建立计算模板;
移植模块203,根据计算模板,对混合云计算服务进行封装,完成对仿真计算程序至混合云计算的移植。
其中,对仿真计算程序进行分析,包括:
针对可执行的程序,确定所述可执行程序的输入及输出特征,根据输入及输出特征对可执行程序在psdb系统架构下进行封装,所述封装将可调用的程序从单机串行转换为集群分布式并行;
针对非可执行的程序,对非可执行的程序进行组合。
其中,可移植的程序为组合的非可执行的程序,及封装的可执行的程序。
其中,建立计算模板,包括:
统一入口,所述统一入口,包括:选择生成仿真计算模型的程序作为元程序;对元程序根据方式id,从设备库、方案库及方式库,根据潮流计算种类生成仿真计算模型;
统一仿真计算文件的存储,所述统一仿真计算文件的存储,包括:根据psdb的库表结构及文件服务器存储规范,把执行记录存到关系型数据库中,计算结果文件存储到文件服务器中;
根据统一入口及统一仿真计算文件的存储,执行元程序,所述执行元程序包括:以子进程的方式执行潮流计算;
对执行元程序的执行记录进行封装,完成计算模板的建立。
其中,计算模板的建立,基于仿真计算数据管理平台库表结构,记录设备铭牌参数以及运行方式信息及执行元程序的返回值及执行过程记录;
建立完成后,对计算模板及结果文件使用服务器存储。
本发明实现了一种适用于电力系统云计算的计算中间件功能,并根据仿真计算场景抽象出计算模板,统一接口与输出,封装计算流程与业务实现细节,降低执行电网仿真计算的复杂度,衔接psdb前台业务应用和后台基础服务,并通过对超算公有云与psdb私有云计算计算服务接口的封装,屏蔽了后台云计算服务的差异与细节,实现了传统单机电力系统仿真程序向云计算的移植。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言java和直译式脚本语言javascript等。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
1.一种适用于电力系统云计算的计算中间件的方法,所述方法包括:
针对电网仿真数据管理平台的仿真计算程序的可执行程序进行处理,生成可移植的程序;
针对可移植的程序,建立计算模板;
根据计算模板,对混合云计算服务进行封装,完成对仿真计算程序至混合云计算的移植。
2.根据权利要求1所述的方法,所述对仿真计算程序进行分析,包括:
针对可执行的程序,确定所述可执行程序的输入及输出特征,根据输入及输出特征对可执行程序在psdb系统架构下进行封装,所述封装将可调用的程序从单机串行转换为集群分布式并行;
针对非可执行的程序,对非可执行的程序进行组合。
3.根据权利要求1所述的方法,所述可移植的程序为组合的非可执行的程序,及封装的可执行的程序。
4.根据权利要求1所述的方法,所述建立计算模板,包括:
统一入口,所述统一入口,包括:选择生成仿真计算模型的程序作为元程序;对元程序根据方式id,从设备库、方案库及方式库,根据潮流计算种类生成仿真计算模型;
统一仿真计算文件的存储,所述统一仿真计算文件的存储,包括:根据psdb的库表结构及文件服务器存储规范,把执行记录存到关系型数据库中,计算结果文件存储到文件服务器中;
根据统一入口及统一仿真计算文件的存储,执行元程序,所述执行元程序包括:以子进程的方式执行潮流计算;
对执行元程序的执行记录进行封装,完成计算模板的建立。
5.根据权利要求4所述的方法,所述计算模板的建立,基于仿真计算数据管理平台库表结构,记录设备铭牌参数以及运行方式信息及执行元程序的返回值及执行过程记录;
建立完成后,对计算模板及结果文件使用服务器存储。
6.一种适用于仿真计算程序移植的系统,所述系统包括:
初始预处理模块,针对电网仿真数据管理平台的仿真计算程序的可执行程序进行处理,生成可移植的程序;
计算模块,针对可移植的程序,建立计算模板;
移植模块,根据计算模板,对混合云计算服务进行封装,完成对仿真计算程序至混合云计算的移植。
7.根据权利要求6所述的系统,所述对仿真计算程序进行分析,包括:
针对可执行的程序,确定所述可执行程序的输入及输出特征,根据输入及输出特征对可执行程序在psdb系统架构下进行封装,所述封装将可调用的程序从单机串行转换为集群分布式并行;
针对非可执行的程序,对非可执行的程序进行组合。
8.根据权利要求6所述的系统,所述可移植的程序为组合的非可执行的程序,及封装的可执行的程序。
9.根据权利要求6所述的系统,所述建立计算模板,包括:
统一入口,所述统一入口,包括:选择生成仿真计算模型的程序作为元程序;对元程序根据方式id,从设备库、方案库及方式库,根据潮流计算种类生成仿真计算模型;
统一仿真计算文件的存储,所述统一仿真计算文件的存储,包括:根据psdb的库表结构及文件服务器存储规范,把执行记录存到关系型数据库中,计算结果文件存储到文件服务器中;
根据统一入口及统一仿真计算文件的存储,执行元程序,所述执行元程序包括:以子进程的方式执行潮流计算;
对执行元程序的执行记录进行封装,完成计算模板的建立。
10.根据权利要求9所述的系统,所述计算模板的建立,基于仿真计算数据管理平台库表结构,记录设备铭牌参数以及运行方式信息及执行元程序的返回值及执行过程记录;
建立完成后,对计算模板及结果文件使用服务器存储。
技术总结