电力系统数值仿真开放式应用程序接口的制作方法

文档序号:6372705阅读:423来源:国知局
专利名称:电力系统数值仿真开放式应用程序接口的制作方法
技术领域
本发明涉及一种电力系统数值仿真开放式应用程序接口。
背景技术
数值仿真在电力系统规划、运行以及安全防御等方面发挥着不可替代的作用。完备的模型、可接受的计算精度和效率是对电力系统数值仿真程序的基本要求。随着电力系统规模不断增大、用户分析需求多样,为使用户能快速、灵活地分析和解决各种问题,提供具有良好开放性的电力系统仿真程序具有十分重要的意义。软件开放性本质上为一种符合规范的接口,该规范可能是软件本身定义并独有,也可能是一种公共采用的标准。就电力系统分析软件而言,用户自定义建模(User-Defined Modeling, UDM)、应用程序接口(Application Program Interface, API)、不同分析软件数据格式的转换以及计算结果按规定格式的导入\导出等功能都是开放性的表现。其中,前二者是软件与用户之间的接口,其余的为软件与软件之间的接口。在这些接口中,最为体现开放性的就是UDM功能和API功能,因为两者对于用户而言都是强大的二次开发工具。对于UDM,已有文献研究了其描述形式和求解算法,并以电厂和电力系统数字仿真软件为例,分析了不同建模技术的优缺点,还介绍了 UDM技术的具体应用,从而呈现了 UDM技术实现原理的整体架构。对于API,在电力系统分析中已有诸多的应用或者类似功能的应用,例如PSAT/command line usage、PSASP/UPI、PSSE/API,从应用结果可知,基于API的二次开发功能在电力系统仿真分析中发挥着重要作用,它对于实验各种新算法、处理各种分析问题都有极大的帮助,其好坏是衡量软件开放性的一个重要标准,然而,尽管在电力系统分析中已有诸多应用,但其技术的具体实现原理往往作为商业机密,并未见公开报道。
基于API的二次开发功能的本质是通过函数命令对计算引擎进行调用,传递参数并处理返回结果,因此其基本架构如图1,折线表示语句、函数接口、功能函数之间的对应关系,一个用户程序的语句对应一个函数接口,但函数接口所实现的某个功能可能需调用软件计算引擎的一个或多个功能函数(图中为两个)。这样,用户就可以通过编写程序调用软件的接口函数,实现与软件计算引擎的交互,从而快速、方便地进行二次开发,完成特定的高级分析任务。上述基本架构十分简单,按此架构进行开发,可以实现具有类似PSSE/API功能的电力系统分析软件,这种传统式的软件完全安装于用户端,具有两个明显的缺点,一是受限于用户的设备条件,无法达到最佳计算速度和精度,无法应用一些基于硬件的前沿技术(如需要运行在NVIDIA专门显卡上的GPU并行计算技术);二是不便于计算引擎的升级,每次都需要用户更新软件,如果计算引擎改变较大,可能导致软件更新十分繁琐甚至发生不兼容的情况
发明内容
为解决上述问题,本发明引入了客户端/服务器(C/S)模式,图2和图3分别是基于C/S模式架构的网络结构图和应用程序接口架构图,其基本工作原理为用户在各种硬件设备上,包括个人计算机、笔记本、PDA、智能手机等,通过网络将计算命令发送给服务器,月艮务器收到消息后,分析语句并调用对应的计算引擎函数接口从而完成计算,最后将计算结果返回。显然,此架构将计算引擎完全放在服务器端,具有两个优点首先,使计算引擎独立于用户的硬件设备,解决了上述因客户端硬件设备水平参差不齐而带来的问题;其次,使得计算引擎的升级维护独立于用户,只要函数接口不变,当软件的计算引擎需要改进时,只需更新服务器端的分析软件,或是改动内部代码重新生成可执行程序EXE,或是更为简单地替换一个动态链接库(Dynamic Link Library, DLL),即完成了更新,使用户从计算引擎的升级管理中解脱出来。因此,此接口方案基于C/S模式将原本的基本架构在物理上进行分割,实现了用户和软件职能的分离,使用户能更专注于高级分析功能的开发,而软件计算引擎也能得到 的更高效的应用和简便的维护、更新。为实现上述目的,本发明采用如下技术方案一种电力系统数值仿真开放式应用程序接口,基于C/S模式的网络架构,在客户端与服务器端之间设置消息打包单元、消息传输单元、消息分析单元,实现两端的交互;其中,消息打包单元负责将需要发送的信息按照规定的统一格式进行整理和打包;消息传输单元负责将已打包的消息通过TCP/IP传送到接收端;消息分析单元设有一张规范化的函数表,用于对接收到的消息进行查表、确定函数,从而处理消息中的参数或者返回值,其中函数表的结构为函数名I参数个数I各参数类型I返回值个数I各返回值类型。对于客户端而言,所述消息打包单元负责分析不同语言编写的语句,提炼出函数名、参数个数和具体参数,再按此顺序打包发送;对于服务器端而言,此单元负责整理计算结果,按照函数名、参数个数、具体返回值的顺序打包发送;不论客户端还是服务器端,打包消息的开头都是函数名和参数个数,它们是消息接收端查表的依据,因为只有函数名和其参数个数同时给定才能唯一确定一个函数。所述消息分析单元首先提取消息的前两个信息即函数名和参数个数用于查表确定函数,再根据查表结果正确地提取出消息的其他内容;就客户端而言,此单元负责根据查表所确定的各返回值的类型读入计算结果;就服务器端而言,此单元负责根据查表所确定的各参数值的类型读入所有参数,为函数的调用做好准备。本发明提出了一种电力系统仿真计算程序开放式应用程序接口实现方案基于C/S模式,在客户端和服务器端建立相同的制定结构的数据库(一张规范化的函数表),通过查表实现开放式应用程序接口 ;基于TCP/IP,实现两端的通讯。在客户端,开发了全新的客户端二次开发平台以及基于C++、Matlab和Python环境的接口软件包;在服务器端,开发了具有牛拉法潮流计算、动态潮流计算、暂态稳定计算等功能的计算引擎及其接口。最后,基于开发的电力系统分析软件,通过实例演示了进行二次开发的思路和方法,证明此架构方案具有很好的开放性和灵活性,增强了仿真程序的综合计算分析功能。本发明的有益效果是本发明基于C/S模式的开放式应用程序接口架构实现了用户和软件的职能分离。对于客户端而言,使用户能更专注于高级分析功能的开发,且这种二次开发独立于用户所使用的计算机语言,即面向使用不同编程语言的用户,具有很好的灵活性和推广性;对于服务器端而言,软件计算引擎的修改或者升级独立于客户端,与传统的将软件完全安装于用户的方式相比,不仅使用户从软件的维护和更新中解脱出来,更使计算引擎能基于服务器端在最优配置的条件下,利用服务器端各种普通用户不具备的软硬件资源高效运行;对于电力系统高级分析而言,此种架构有利于快速、灵活地实验各种新算法、处理各种分析问题,其强大的开放性能很好地适应电力系统日益庞大的电网和日新月异的电力技术。


图I为应用程序接口的基本架构; 图2为基于C/S模式的网络结构;图3为基于C/S模式的应用程序接口架构;图4为函数表的格式;图5为假定的函数表;图6为命令执行过程;图7为基于C/S模式的架构方案实现原理;图8为软件的整体架构图;图9为算例的示意图;图10为程序编写流程图。
具体实施例方式下面结合附图与实施例对本发明做进一步说明。基于C/S模式的API架构方案关键在于实现客户端与服务器端之间的交互,通过建立制定结构的数据库(一张规范化的函数表),要求客户端、服务器端在发送和接收消息时都“依表查表”,可以方便地实现两者之间的交互。因此,客户端、服务器端都有一张相同的函数表,其格式如图4所示。基于此表,客户端和服务器端之间的交互过程可以分为三步消息打包、消息传输和消息分析,其实现对应于消息分析单元、消息传输单元和消息分析单元。“消息打包”单元按照规定的统一格式整理好需要发送的内容,以便接收端查表并处理。就客户端而言,此环节负责分析不同语言编写的语句,提炼出函数名、参数个数和具体参数,再按此顺序打包发送;就服务器端而言,此环节负责整理计算结果,按照函数名、参数个数、具体返回值的顺序打包发送。不论客户端还是服务器端,打包消息的开头都是函数名和参数个数,它们是消息接收端查表的依据,因为只有函数名和其参数个数同时给定才能唯一确定一个函数。“消息传输”单元可以利用客户端和服务器端各自开发平台的Socket模块实现基于TCP/IP的通讯。“消息分析”单元首先提取消息的前两个信息(函数名和参数个数)用于查表确定函数,再根据查表结果正确地提取出消息的其他内容。就客户端而言,此环节负责根据查表所确定的各返回值的类型读入计算结果;就服务器端而言,此环节负责根据查表所确定的各参数值的类型读入所有参数,为函数的调用做好准备。为清晰地描述上述消息打包、消息传输和消息分析的具体执行过程,假定现要执行一条命令Fun (I, 2. 3),已知对应的函数表如图5所示,计算结果返回值为9. 85、7、‘y’,则执行此命令的过程如图6所示。显然,这种基于查表的执行机制具有规范化和易扩展的优点,而且易应用于各种不同的语言环境,所以整体的基于C/S模式的架构方案实现原理如图7所示。就服务器端而言,此架构将计算引擎完全放在服务器,优点如前所述。就客户端而言,此架构不限于客户端具体的语言实现形式,面向使用不同语言的用户。假使每种编程语言或主流编程语言都实现了对应的客户端开发平台,那么对于计算 引擎而言,这种资源利用将独立于客户端语言,使得对于软件整体而言,拥有了强大的开放性优势。需要指出的是,架构的核心是图7中的函数表,实际使用按此架构开发的软件时,客户端需要及时更新数据库(函数表),才可以使用服务器端新添的接口函数。上述架构基于规范化的函数表,将C/S模式配合应用程序接口,充分结合并利用了各自的优势,使软件整体不论对客户端还是服务器端都具有很好的开放性和独立性。值得一提的是,这种基于C/S模式的应用程序接口方案可以升级成基于“云计算”模式的方案,即将C/S模式中的服务器扩展为云,可由通过网络连接的具有计算分析功能的各种硬件设备构成,从而拥有更加丰富、强大的资源,通过把计算任务放在云上,利用云上的各种资源,完成分析计算任务,而客户端仍然只起到调用、通信的作用。根据本发明的接口方式,对于客户端,可以开发全新的编程平台,也可以基于现有的编程平台开发专用软件包。软件包需要实现图7中①⑥的功能,而全新开发的编程平台除了这些功能外,还要实现用户编程界面。对于服务器端,可以开发全新的计算引擎,也可以基于现有的分析程序进行修改和封装,但软件的接口部分都需实现图7中③④的功能,而且软件的计算引擎应模块化,一个模块对应于一个DLL,譬如潮流计算模块就对应于潮流计算DLL,其中包含所有潮流计算需要用到的函数,便于计算引擎的维护、修改和扩充。软件的整体架构如图8所示,不论客户端是基于现有平台开发软件包,还是开发的全新客户端编程平台,其接口实现方法都完全对应于图7的基于C/S模式的架构实现原理。实施例I :测试如图9的输电线路极限功率,原理为不断增加母线2处的负荷,然后求解潮流,一旦母线2处电压低于0. 9 (p. u)时,就进行电容补偿,使电压满足要求,重复这一过程,直到潮流不再收敛,那么最后一次潮流收敛时的负荷功率就是此线路的传输极限(受端)。在C++、Matlab和Python的开发环境下,按图10流程图编写代码,其中Matlab平
台下代码如下
权利要求
1.一种电力系统数值仿真开放式应用程序接口,其特征是基于C/s模式的网络架构,在客户端与服务器端之间设置消息打包单元、消息传输单元、消息分析单元,实现两端的交互;其中,消息打包单元负责将需要发送的信息按照规定的统一格式进行整理和打包;消息传输单元负责将已打包的消息通过TCP/IP传送到接收端;消息分析单元设有一张规范化的函数表,用于对接收到的消息进行查表、确定函数,从而处理消息中的参数或者返回值,其中函数表的结构为函数名I参数个数I各参数类型I返回值个数I各返回值类型。
2.如权利要求I所述的电力系统数值仿真开放式应用程序接口,其特征是对于客户端而言,所述消息打包单元负责分析不同语言编写的语句,提炼出函数名、参数个数和具体参数,再按此顺序打包发送;对于服务器端而言,此单元负责整理计算结果,按照函数名、参数个数、具体返回值的顺序打包发送;不论客户端还是服务器端,打包消息的开头都是函数名和参数个数,它们是消息接收端查表的依据,因为只有函数名和其参数个数同时给定才能唯一确定一个函数。
3.如权利要求I所述的电力系统数值仿真开放式应用程序接口,其特征是所述消息分析单元首先提取消息的前两个信息即函数名和参数个数用于查表确定函数,再根据查表结果正确地提取出消息的其他内容;就客户端而言,此单元负责根据查表所确定的各返回值的类型读入计算结果;就服务器端而言,此单元负责根据查表所确定的各参数值的类型读入所有参数,为函数的调用做好准备。
全文摘要
本发明公开了一种电力系统数值仿真开放式应用程序接口,即基于C/S模式的网络架构,通过在客户端与服务器端设置的消息打包单元、消息传输单元、消息分析单元实现两端的交互;其中,消息打包单元负责将需要发送的信息按照规定的统一格式进行整理和打包;消息传输单元负责将已打包的消息通过TCP/IP传送到接收端;消息分析单元设有一张规范化的函数表,用于对接收到的消息进行查表、确定函数,从而处理消息中的参数或者返回值,其中函数表的结构为函数名|参数个数|各参数类型|返回值个数|各返回值类型。本发明基于C/S模式的网络架构实现了用户和软件的职能分离,使用户(客户端)能更专注于高级分析功能的开发,软件计算引擎(服务器端)也能得到更高效的应用和简便的维护、更新,因此,这种开放式的架构能大大提高开发电力系统高级分析功能的效率和灵活性。
文档编号G06F9/46GK102750183SQ20121022902
公开日2012年10月24日 申请日期2012年7月3日 优先权日2012年7月3日
发明者刘玉田, 吕文欣, 孙华东, 张恒旭 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1