用于读写PSD‑BPA数据文件的面向对象编程方法技术

技术编号:11108210 阅读:91 留言:0更新日期:2015-03-04 21:33
本发明专利技术涉及一种用于读写PSD‑BPA数据文件的面向对象编程方法,具体包括以下步骤:(1)分析BPA数据文件中所有卡片的类型及其数据格式,并进行数据抽象;(2)根据数据抽象的结果来定义服务原语,并设计类结构框架;(3)以自顶向下的方式,依次完善类结构框架中派生类的定义:(4)采用面向对象的编程语言来实现该类结构框架:(5)根据应用需求确定好类结构框架的具体使用方式后,进行接口程序的实现与部署:(6)在不同的计算环境下,对部署好的接口程序进行正确性校验。与现有技术相比,本发明专利技术实现了BPA数据接口的设计与BPA程序用户手册具有一致的层次关系,从而保证了数据接口程序的可扩展性、可移植性和可维护性,降低了开发和维护BPA双向数据转换接口的难度。

【技术实现步骤摘要】
用于读写PSD-BPA数据文件的面向对象编程方法
本专利技术涉及电力系统仿真及分析领域,尤其是涉及一种用于读写PSD-BPA数据文件的面向对象编程方法。
技术介绍
电力系统仿真分析与计算是电网安全稳定运行的重要前提和基础保障。PSD-BPA是由中国电科院于上个世纪八十年代在美国电科院的BPA基础上,逐渐开发完善的一套用于大规模电力系统仿真分析与计算的商业软件包,现已成为国内电力行业仿真与计算软件的标杆之一。PSD-BPA由静态分析和动态分析两个部分组成。静态分析包括以潮流计算为基础的各类应用,动态分析包括以时域仿真计算为基础的各类应用。除非另有提及,下文中的 “BPA” 一律指代 “PSD-BPA”。 任何电力系统仿真计算的第一步就是读取电网数据。由于国内绝大部分电网企业偏向于采用BPA的文件格式来存储实际电网的静态和动态元件数据,因此,为了将数据正确导入到其他的电力系统仿真分析软件中,业内人士已开发了诸多面向BPA文件格式的双向数据转换接口,包括 BPA 到 PSASP、BPA 到 PSS/E、BPA 到 MATPOWER、BPA 到 PSAT、BPA 到PSCAD, BPA 到 DSA TOOLS、BPA 到 DIGSILENT、BPA 到 EUROSTAG、BPA 到 SMPOW 等。 现阶段,BPA数据转换接口所面临的主要问题有以下几点:第一,为了能正确使用电网企业提供的BPA数据,除了中国电科院以外的软件开发商或者研究机构,必须首先解析BPA的数据格式,然后针对自己的软件或者程序,采用不同的语言或环境来开发相应的数据转换接口,这其中充斥着大量的重复性工作,并且数据转换接口不具备任何通用性;第二,BPA几乎每隔一段时间就会更新一次,而每次更新或为给出新的卡片格式,或对已有卡片的某些数据段进行少量修改和调整,这给数据转换接口程序的维护工作带来了很大的负担;第三,数据转换接口对编程语言、开发环境、操作系统等因素的依赖程度较高,接口程序的可移植性和可扩展性不强。 考虑到诸多电力系统仿真计算软件对BPA数据文件的需求,以及计算环境(串行计算、分布式内存并行计算、共享式内存并行计算、网格计算和云计算)的日益变化等因素,研究一种独立于实现细节的、且能够用于正确读写BPA数据文件的编程方法,至关重要。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种用于读写PSD-BPA数据文件的面向对象编程方法,设计一套满足BPA数据文件卡片定义的类结构框架,采用某种支持面向对象的编程语言对该类结构框架进行具体实现和部署之后,能够得到具有多种使用方式的BPA数据转换接口,最终实现根据应用需求定制的、不依赖于计算环境的、方便维护和扩展的一套用于正确读写BPA数据文件的软件包;从而实现了 BPA数据接口的设计与BPA程序用户手册具有一致的层次关系,从而保证了数据接口程序的可扩展性、可移植性和可维护性,降低了开发和维护BPA双向数据转换接口的难度。 本专利技术的目的可以通过以下技术方案来实现: 一种用于读写PSD-BPA数据文件的面向对象编程方法,其特征在于,具体包括以下步骤: (I)分析BPA数据文件中所有卡片的类型及其数据格式,并进行数据抽象; (2)根据数据抽象的结果来定义服务原语,并设计类结构框架; (3)以自顶向下的方式,依次完善类结构框架中派生类的定义; (4)采用面向对象的编程语言来实现该类结构框架; (5)根据应用需求确定好类结构框架的具体使用方式后,进行接口程序的实现与部署; (6)在不同的计算环境下,对部署好的接口程序进行正确性校验。 所述的步骤(I)中BPA数据文件中所有卡片的数据抽象具体包括: 〈1>分析DAT文件的层次结构,将其分为控制参数域、元件参数域、输出显示域和结束域; <2>DAT文件的控制参数域具体为,BPA潮流计算的常用控制语句,其中包括潮流开始和结束、指定支路和节点数据文件、指定潮流结果输出二进制文件的控制语句; <3>DAT文件的元件参数域具体为,电网的静态元件参数,其中包括区域控制数据卡、节点数据卡、支路数据卡以及数据修改卡; <4>DAT文件的输出显示域具体为,用户自定义控制语句和基于潮流计算的BPA高级应用控制语句; <5>DAT文件的结束域具体为,从控制语句(END)或(STOP)开始,到文件最后一行的所有数据; <6>分析SWI文件的层次结构,将其分为控制参数域、动态元件参数域、静态元件补充参数域和输出显示域; <7>SWI文件的控制参数域具体为,计算控制卡CASE和所有的故障操作卡; <8>SWI文件的动态元件参数域具体为,所有的动态元件卡,包括发电机及其控制系统、电动机、风电机组及其控制系统、直流控制系统和FACTS设备; <9>SWI文件的静态元件补充参数域具体为,所有的静态元件补充卡,包括静态元件的序分量参数、发电机转负荷模型和静态负荷模型; <10>SWI文件的输出显示域具体为,从计算控制卡FF开始,到文件最后一行的所有数据。 所述的步骤(2)中类结构框架包括5个基类,分别是BPA文件类、BPA数据行类、BPA数据行集合类、BPA卡片类和BPA卡片集合类,其各自的职责和功能为: <1>BPA文件类,为虚基类,其职责是定义BPA文件操作的服务原语,功能是派生出具体的子类; <2>BPA数据行类,为基类,其职责是定义BPA文件中某一行数据操作的服务原语,功能是对该行数据的字符串执行某些特定的操作; <3>BPA数据行集合类,为基类,其职责是定义BPA文件中多行数据操作的服务原语,功能是对若干行数据执行集合方面的操作; <4>BPA卡片类,为虚基类,其职责是定义BPA卡片操作的服务原语,功能是派生出具体的子类; <5>BPA卡片集合类,为虚基类,其职责是定义BPA卡片集合操作的服务原语,功能是派生出具体的子类。 所述的步骤(3)中根据BPA的潮流程序用户手册和稳定程序用户手册,自顶向下逐层定义5大基类的派生类; I)派生类按照以下方法进行逐层定义: <1>BPA文件类派生出DAT文件类和SWI文件类; <2>BPA数据行类和BPA数据行集合类不派生任何子类; <3>BPA卡片类派生出节点类、支路类、机组类、故障操作类等,节点类派生出交流节点类(B卡)、直流节点类(BD卡、BM卡)、延续节点类(+A卡)等,支路类派生出对称线路类(L卡)、高抗线路类(L+卡)、不对称线路类(E卡)、双端直流线路类(LD卡)、变压器类(T卡)等,机组类派生出发电机模型类(MC卡、MF卡、MG卡)、发电机次暂态模型类(M卡)、励磁系统模型类(EA?EK卡、FA?FL卡结合FZ卡、FM?FV卡结合F+卡等)、PSS模型类(SS卡等)、调速器和原动机模型类(GH卡、TB卡等); <4>BPA卡片集合类派生出与BPA卡片类同等数量和层次的子类,此处不加以赘述本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201410629360.html" title="用于读写PSD‑BPA数据文件的面向对象编程方法原文来自X技术">用于读写PSD‑BPA数据文件的面向对象编程方法</a>

【技术保护点】
一种用于读写PSD‑BPA数据文件的面向对象编程方法,其特征在于,具体包括以下步骤:(1)分析BPA数据文件中所有卡片的类型及其数据格式,并进行数据抽象;(2)根据数据抽象的结果来定义服务原语,并设计类结构框架;(3)以自顶向下的方式,依次完善类结构框架中派生类的定义;(4)采用面向对象的编程语言来实现该类结构框架;(5)根据应用需求确定好类结构框架的具体使用方式后,进行接口程序的实现与部署;(6)在不同的计算环境下,对部署好的接口程序进行正确性校验。

【技术特征摘要】
1.一种用于读写PSD-BPA数据文件的面向对象编程方法,其特征在于,具体包括以下步骤: (1)分析BPA数据文件中所有卡片的类型及其数据格式,并进行数据抽象; (2)根据数据抽象的结果来定义服务原语,并设计类结构框架; (3)以自顶向下的方式,依次完善类结构框架中派生类的定义; (4)采用面向对象的编程语言来实现该类结构框架; (5)根据应用需求确定好类结构框架的具体使用方式后,进行接口程序的实现与部署; (6)在不同的计算环境下,对部署好的接口程序进行正确性校验。2.根据权利要求1所述的一种用于读写PSD-BPA数据文件的面向对象编程方法,其特征在于,所述的步骤(I)中BPA数据文件中所有卡片的数据抽象具体包括: <1>分析DAT文件的层次结构,将其分为控制参数域、元件参数域、输出显示域和结束域; <2>DAT文件的控制参数域具体为,BPA潮流计算的常用控制语句,其中包括潮流开始和结束、指定支路和节点数据文件、指定潮流结果输出二进制文件的控制语句; <3>DAT文件的元件参数域具体为,电网的静态元件参数,其中包括区域控制数据卡、节点数据卡、支路数据卡以及数据修改卡; <4>DAT文件的输出显示域具体为,用户自定义控制语句和基于潮流计算的BPA高级应用控制语句; <5>DAT文件的结束域具体为,从控制语句(END)或(STOP)开始,到文件最后一行的所有数据; 〈6>分析SWI文件的层次结构,将其分为控制参数域、动态元件参数域、静态元件补充参数域和输出显示域; <7>SWI文件的控制参数域具体为,计算控制卡CASE和所有的故障操作卡; <8>SWI文件的动态元件参数域具体为,所有的动态元件卡,包括发电机及其控制系统、电动机、风电机组及其控制系统、直流控制系统和FACTS设备; <9>SWI文件的静态元件补充参数域具体为,所有的静态元件补充卡,包括静态元件的序分量参数、发电机转负荷模型和静态负荷模型; <10>SWI文件的输出显示域具体为,从计算控制卡FF开始,到文件最后一行的所有数据。3.根据权利要求1所述的一种用于读写PSD-BPA数据文件的面向对象编程方法,其特征在于,所述的步骤(2)中类结构框架包括5个基类,分别是BPA文件类、BPA数据行类、BPA数据行集合类、BPA卡片类和BPA卡片集合类,其各自的职责和功能为: <1>BPA文件类,为虚基类,其职责是定义BPA文件操作的服务原语,功能是派生出具体的子类; <2>BPA数据行类,为基类,其职责是定义BPA文件中某一行数据操作的服务原语,功能是对该行数据的字符串执行某些特定的操作; <3>BPA数据行集合类,为基类,其职责是定义BPA文件中多行数据操作的服务原语,功能是对若干行数据执行集合方面的操作; <4>BPA卡片类,为虚基类,其职责是定义BPA卡片操作的服务原语,功能是派生出具体的子类; <5>BPA卡片集合类,为虚基类,其职责是定义BPA卡片集合操作的服务原语,功能是派生出具体的子类。4.根据权利要求1所述的一种用于读写PSD-BPA数据文件的面向对象编程方法,其特征在于,所述的步骤⑶中根据BPA的潮流程序用户手册和稳定程序用户手册,自顶向下逐层定义5大基类的派生类; 1)派生类按照以下方法进行逐层定义: <1>BPA文件类派生出DAT文件类和SWI文件类; <...

【专利技术属性】
技术研发人员:赵文恺严正张逸飞曹路李建华周挺辉范翔
申请(专利权)人:上海交通大学华东电网有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1