CN106294899A - 基于面向对象程序架构的电力系统用户自定义仿真方法 - Google Patents

基于面向对象程序架构的电力系统用户自定义仿真方法 Download PDF

Info

Publication number
CN106294899A
CN106294899A CN201510275129.8A CN201510275129A CN106294899A CN 106294899 A CN106294899 A CN 106294899A CN 201510275129 A CN201510275129 A CN 201510275129A CN 106294899 A CN106294899 A CN 106294899A
Authority
CN
China
Prior art keywords
user
model
power system
class
oriented program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510275129.8A
Other languages
English (en)
Inventor
夏天
安宁
徐得超
李蒙
李岩松
张景明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
China Electric Power Research Institute Co Ltd CEPRI
State Grid Shanghai Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
China Electric Power Research Institute Co Ltd CEPRI
State Grid Shanghai Electric Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, China Electric Power Research Institute Co Ltd CEPRI, State Grid Shanghai Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201510275129.8A priority Critical patent/CN106294899A/zh
Publication of CN106294899A publication Critical patent/CN106294899A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于面向对象程序架构的电力系统用户自定义仿真方法,包括以下步骤:基于面向对象程序架构的类定义;用户自定义模型的预处理;用户自定义模型的初始化;用户自定义模型的仿真计算。本发明使PSASP更加适应现阶段大量电力系统新型元件涌现,需要灵活的建模仿真手段以适应大电网安全稳定分析的需要,扩展电力系统仿真功能,扩大了电力系统仿真软件的使用范围并提高了仿真效率,便于进一步开拓电力系统仿真软件的市场;同时,将用户自定义功能与PSASP分离,使PSASP的销售变得更为灵活,基于面向对象程序架构设计,可以方便灵活地进行基本运算函数、UD接口函数的输入输出变量的扩展,不断丰富现有模型库,强化用户自定义的功能。

Description

基于面向对象程序架构的电力系统用户自定义仿真方法
技术领域
本发明涉及一种仿真方法,具体涉及一种基于面向对象程序架构的电力系统用户自定义仿真方法。
背景技术
随着电力系统和电力电子技术的飞速发展,新型系统元件不断投入和系统控制技术日益进步,要求在电力系统计算中能够模拟若干新型元件和各种控制功能。一般的仿真分析软件均设置了用户自定义(UD)建模和/或第三方软件接口功能,以实现软件的开放式仿真,弥补专业仿真软件的不足。
国内现有电力系统仿真软件中,用户自定义(User-defined,UD)功能技术较为落后,在电力系统分析综合程序(Power System Analysis Software Package,PSASP)中有UD功能,但不采用面向对象程序架构的方法,UD功能与电力系统分析综合程序相融合,不能独立运行,程序架构不清晰,不便于维护、功能扩展、使用以及销售。
国外的商业软件如matlab、PSCAD等均具备用户自定义功能,但实现机制与本方法不同,且多为变步长仿真,没有实现基于定步长仿真的独立运行用户自定义功能的方法。
发明内容
为了克服上述现有技术的不足,本发明提供一种基于面向对象程序架构的电力系统用户自定义仿真方法,并采取如下技术方案:
本发明提供一种基于面向对象程序架构的电力系统用户自定义仿真方法,所述方法包括以下步骤:
步骤1:基于面向对象程序架构的类定义;
步骤2:用户自定义模型的预处理;
步骤3:用户自定义模型的初始化;
步骤4:用户自定义模型的仿真计算。
所述步骤1中,将基本运算函数以及用户自定义模型的共性属性设计为基类,并将个性属性通过派生生成相应的派生类;采用基类的封装、继承和多态性定义基本运算函数;
所述基类包括参数类、端子类和功能模块基类;
所述派生类包括功能模块类、模型类、模型集合类、模型实例类和模型实例集合类。
所述步骤2中,设定仿真计算的控制参数及信息文件路径,完成用户自定义模型的预处理;
仿真计算的控制参数包括系统频率、迭代次数上限、迭代误差和计算步长。
所述步骤3中,采用Kosaraju算法对用户自定义模型进行拓扑结构分析,完成用户自定义模型的初始化。
所述步骤3具体包括以下步骤:
步骤3-1:在有向图中,从某个顶点出发进行深度优先遍历,并按遍历的先后顺序入栈;当被遍历的顶点不存在未访问的邻接点时,则将该顶点出栈;若仍存在未被访问的邻接点,则继续遍历,并将其邻接点入栈;遍历过程中按照出栈的先后顺序将所有顶点排列起来;
步骤3-2:在有向图中,从最后出栈的顶点出发,沿着该顶点为头做逆向深度优先遍历,若此次遍历不能访问到有向图中的所有顶点,则从余下的顶点中最后完成访问的那个顶点出发,继续进行逆向的深度优先遍历,依次类推,直至有向图中所有顶点都被访问为止;
步骤3-3:每次逆向深度优先遍历所访问到的顶点集即为该有向图的强连通分量的顶点集,若每次逆向深度优先遍历就能访问到有向图的所有顶点,则该有向图是强连通图。
在用户自定义模型初始化阶段,利用用户自定义接口函数将多个用户自定义模型联合起来进行仿真,通过将用户自定义模型中约定的临时变量指定为同一个内存地址,在用户自定义模型拓扑分析时将多个用户自定义模型进行合并处理。
所述步骤4中,在一个仿真步长内将用户自定义模型外部输入变量的值作为常量处理,完成一次计算后,将计算结果输出到用户自定义模型外部输出变量中;每一时步仿真计算结束,都由电力系统分析综合程序判断仿真时间是否到达,如果到达则停止调用用户自定义接口函数;否则电力系统分析综合程序继续进行计算,并调用用户自定义接口函数,直至仿真结束。
所述用户自定义接口函数形成的函数集合存放在用户自定义接口模块中,所述用户自定义接口模块使用VC编写,且其被编译成动态链接库*.dll文件形式,被电力系统分析综合程序调用。
与现有技术相比,本发明的有益效果在于:
1.本发明优化了PSASP的用户自定义功能,使PSASP更加适应现阶段大量电力系统新型元件涌现,需要灵活的建模仿真手段以适应大电网安全稳定分析的需要,扩展电力系统仿真功能,扩大了电力系统仿真软件的使用范围并提高了仿真效率,便于进一步开拓电力系统仿真软件的市场;同时,由于将用户自定义功能与PSASP分离,单独作为用户自定义模块与用户自定义接口,使PSASP的销售变得更为灵活。
2.本发明基于面向对象程序架构设计,可以方便灵活地进行基本运算函数、UD接口函数的输入输出变量的扩展,不断丰富现有模型库,强化用户自定义的功能。
3.采用基于搜寻强连通分量Kosaraju算法对用户自定义模型进行拓扑分析,实现比较简单,有效避免了用户自定义模型基本运算单元的无效、重复计算,提高了用户自定义模型的仿真效率,且该Kosaraju算法仅在仿真初始化阶段使用,不会影响到后续每时步的仿真计算,提高了用户自定义模型仿真效率。
4.通过将多个用户自定义模型中约定的临时变量指定为同一个内存地址,在模型拓扑分析时将多个用户自定义模型进行合并处理,减少了用户自定义模型在仿真计算过程中所占用的计算机存储空间,同时保证了多个用户自定义模型联合计算时数据传输的稳定性。
附图说明
图1是本发明实施例中功能模块基类依赖关系示意图;
图2是本发明实施例中各功能模块类继承关系示意图;
图3是本发明实施例中模型类依赖和继承关系示意图;
图4是本发明实施例中模型集合类依赖关系示意图;
图5是本发明实施例中模型实例类依赖关系示意图;
图6是本发明实施例中模型实例集合类依赖关系示意图;
图7是本发明实施例中基于面向对象程序架构的电力系统用户自定义仿真方法流程图;
图8是本发明实施例中有向图示意图;
图9是本发明实施例中将顶点V2从栈顶弹出示意图;
图10是本发明实施例中将顶点V4、V3、V1从栈顶弹出示意图;
图11是本发明实施例中从顶点V1从发作逆向遍历,得到第一个强连通分量示意图;
图12是本发明实施例中从顶点V2从发作逆向遍历,得到第二个强连通分量示意图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明基于面向对象程序架构将用户自定义功能以动态链接库模块的形式与电力系统分析综合程序分离开来,各流程清晰独立,并开发完整方便的接口,对模型框、端子、参数、函数运算等都进行了详细的描述,方便开发人员对电力系统分析综合程序以及用户自定义模型进行进一步的修改和优化;采用基于搜寻强连通分量Kosaraju算法的用户自定义模型优化拓扑分析方法,提高了用户自定义模型的仿真效率。
本发明提供的基于面向对象程序架构的电力系统用户自定义仿真方法包括以下步骤:
步骤1:基于面向对象程序架构的类定义;
步骤2:用户自定义模型的预处理;
步骤3:用户自定义模型的初始化;
步骤4:用户自定义模型的仿真计算。
所述步骤1中,将基本运算函数以及用户自定义模型的共性属性设计为基类,并将个性属性通过派生生成相应的派生类;采用基类的封装、继承和多态性定义基本运算函数;各个类之间的逻辑关系如图1-6,图1-6中,实线表示继承关系,虚线表示依赖关系。
所述基类包括参数类(UD Parameter CLASS)、端子类(UD Terminal CLASS)和功能模块基类(UD BaseFunc CLASS);
所述派生类包括功能模块类(UD Func CLASS)、模型类(UD Model CLASS)、模型集合类(UD Models CLASS)、模型实例类(UD ModelInstance CLASS)和模型实例集合类(UDModelInstances CLASS)。
参数类为用户自定义模型中各功能模块的参数设计,初始化完成之后即可完成成员变量的赋值;
端子类是为用户自定义模型中各个功能模块的输入/输出变量设计,各功能模块之间的数据交换通过端子类对象实现;
功能模块基类是各功能模块类以及模型类的父类,各功能模块类和模型类都可以从该功能模块基类继承得到,功能模块基类包含所有功能模块类和模型类的共有属性;
功能模块类是功能模块基类的子类,各个功能模块都可以从功能模块基类扩展得到,功能模块类包含与该功能框计算相关的所有属性;
模型类也是功能模块基类的子类,通过功能模块基类的继承得到,模型类包含与用户自定义模型相关的所有属性;
模型集合类为了完成用户自定义模型描述信息文件中所有模型的信息生成而设计,其中包含被调用的和不被调用的用户自定义模型的信息;
模型实例类是为被调用的用户自定义模型设计,即通过读取用户自定义模型调用信息文件完成模型实例类信息的生成,其中除了包含被调用用户自定义模型的信息之外,还包含了用户自定义模型的接口信息;
模型实例集合类是为模型实例类构成的集合所定义,通过实例集合类中的成员变量和成员函数的调用,即可以完成所有被调用用户自定义模型的仿真计算。
所述步骤2中,设定仿真计算的控制参数及信息文件路径,完成用户自定义模型的预处理;
仿真计算的控制参数包括系统频率、迭代次数上限、迭代误差和计算步长。
所述步骤3中,采用Kosaraju算法对用户自定义模型进行拓扑结构分析,完成用户自定义模型的初始化。
所述步骤3具体包括以下步骤:
步骤3-1:在有向图中,从某个顶点出发进行深度优先遍历,并按遍历的先后顺序入栈;当被遍历的顶点不存在未访问的邻接点时,则将该顶点出栈;若仍存在未被访问的邻接点,则继续遍历,并将其邻接点入栈;遍历过程中按照出栈的先后顺序将所有顶点排列起来;
步骤3-2:在有向图中,从最后出栈的顶点出发,沿着该顶点为头做逆向深度优先遍历,若此次遍历不能访问到有向图中的所有顶点,则从余下的顶点中最后完成访问的那个顶点出发,继续进行逆向的深度优先遍历,依次类推,直至有向图中所有顶点都被访问为止;
步骤3-3:每次逆向深度优先遍历所访问到的顶点集即为该有向图的强连通分量的顶点集,若每次逆向深度优先遍历就能访问到有向图的所有顶点,则该有向图是强连通图。
图3为用户自定义模型拓扑分析中的有向图强连通分量Kosaraju算法示例。对于如图8所示的有向图,从顶点V1出发做深度优先遍历,在访问顶点V2后,顶点V2不存在未访问的邻接点从而成为一个“死结点”,如图9所示,将V2从栈顶弹出后,再从顶点V1出发,在访问顶点V3、V4后,顶点V4不存在未访问的邻接点从而成为“死结点”,如图10所示。将V4从栈顶弹出后,顶点V3不存在未访问的邻接点从而成为“死结点”,将V3从栈顶弹出后,顶点V1不存在未访问的邻接点从而成为“死结点”,将V1从栈顶弹出,所以,得到出栈的顶点序列V2,V4,V3,V1;再从最后一个出栈的顶点V1出发作逆向的深度优先遍历(逆着有向图的方向),得到一个顶点集(V1,V3,V4),如图11所示;再从顶点V2出发作逆向的深度优先遍历,得到一个顶点集(V2),如图12所示,这就是该有向图的两个强连通分量的顶点集。
在用户自定义模型初始化阶段,利用用户自定义接口函数将多个用户自定义模型联合起来进行仿真,通过将用户自定义模型中约定的临时变量指定为同一个内存地址,在用户自定义模型拓扑分析时将多个用户自定义模型进行合并处理。
所述步骤4中,在一个仿真步长内将用户自定义模型外部输入变量的值作为常量处理,完成一次计算后,将计算结果输出到用户自定义模型外部输出变量中;每一时步仿真计算结束,都由电力系统分析综合程序判断仿真时间是否到达,如果到达则停止调用用户自定义接口函数;否则电力系统分析综合程序继续进行计算,并调用用户自定义接口函数,直至仿真结束。
所述用户自定义接口函数形成的函数集合存放在用户自定义接口模块中,所述用户自定义接口模块使用VC编写,且其被编译成动态链接库*.dll文件形式,被电力系统分析综合程序调用。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员参照上述实施例依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。

Claims (8)

1.基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:所述方法包括以下步骤:
步骤1:基于面向对象程序架构的类定义;
步骤2:用户自定义模型的预处理;
步骤3:用户自定义模型的初始化;
步骤4:用户自定义模型的仿真计算。
2.根据权利要求1所述的基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:所述步骤1中,将基本运算函数以及用户自定义模型的共性属性设计为基类,并将个性属性通过派生生成相应的派生类;采用基类的封装、继承和多态性定义基本运算函数;
所述基类包括参数类、端子类和功能模块基类;
所述派生类包括功能模块类、模型类、模型集合类、模型实例类和模型实例集合类。
3.根据权利要求1所述的基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:所述步骤2中,设定仿真计算的控制参数及信息文件路径,完成用户自定义模型的预处理;
仿真计算的控制参数包括系统频率、迭代次数上限、迭代误差和计算步长。
4.根据权利要求1所述的基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:所述步骤3中,采用Kosaraju算法对用户自定义模型进行拓扑结构分析,完成用户自定义模型的初始化。
5.根据权利要求4所述的基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:所述步骤3具体包括以下步骤:
步骤3-1:在有向图中,从某个顶点出发进行深度优先遍历,并按遍历的先后顺序入栈;当被遍历的顶点不存在未访问的邻接点时,则将该顶点出栈;若仍存在未被访问的邻接点,则继续遍历,并将其邻接点入栈;遍历过程中按照出栈的先后顺序将所有顶点排列起来;
步骤3-2:在有向图中,从最后出栈的顶点出发,沿着该顶点为头做逆向深度优先遍历,若此次遍历不能访问到有向图中的所有顶点,则从余下的顶点中最后完成访问的那个顶点出发,继续进行逆向的深度优先遍历,依次类推,直至有向图中所有顶点都被访问为止;
步骤3-3:每次逆向深度优先遍历所访问到的顶点集即为该有向图的强连通分量的顶点集,若每次逆向深度优先遍历就能访问到有向图的所有顶点,则该有向图是强连通图。
6.根据权利要求4所述的基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:在用户自定义模型初始化阶段,利用用户自定义接口函数将多个用户自定义模型联合起来进行仿真,通过将用户自定义模型中约定的临时变量指定为同一个内存地址,在用户自定义模型拓扑分析时将多个用户自定义模型进行合并处理。
7.根据权利要求1所述的基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:所述步骤4中,在一个仿真步长内将用户自定义模型外部输入变量的值作为常量处理,完成一次计算后,将计算结果输出到用户自定义模型外部输出变量中;每一时步仿真计算结束,都由电力系统分析综合程序判断仿真时间是否到达,如果到达则停止调用用户自定义接口函数;否则电力系统分析综合程序继续进行计算,并调用用户自定义接口函数,直至仿真结束。
8.根据权利要求6或7所述的基于面向对象程序架构的电力系统用户自定义仿真方法,其特征在于:所述用户自定义接口函数形成的函数集合存放在用户自定义接口模块中,所述用户自定义接口模块使用VC编写,且其被编译成动态链接库*.dll文件形式,被电力系统分析综合程序调用。
CN201510275129.8A 2015-05-26 2015-05-26 基于面向对象程序架构的电力系统用户自定义仿真方法 Pending CN106294899A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510275129.8A CN106294899A (zh) 2015-05-26 2015-05-26 基于面向对象程序架构的电力系统用户自定义仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510275129.8A CN106294899A (zh) 2015-05-26 2015-05-26 基于面向对象程序架构的电力系统用户自定义仿真方法

Publications (1)

Publication Number Publication Date
CN106294899A true CN106294899A (zh) 2017-01-04

Family

ID=57635170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510275129.8A Pending CN106294899A (zh) 2015-05-26 2015-05-26 基于面向对象程序架构的电力系统用户自定义仿真方法

Country Status (1)

Country Link
CN (1) CN106294899A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628659A (zh) * 2017-03-24 2018-10-09 中国电力科学研究院 基于动态链接adpss实时仿真的用户封装模型仿真方法及系统
CN110209376A (zh) * 2018-02-28 2019-09-06 无锡锐泰节能系统科学有限公司 一种应用系统中的公式设计及解析方法
CN112380192A (zh) * 2020-12-03 2021-02-19 广州海量数据库技术有限公司 数据库中面向对象框架的实现方法及系统
CN113469364A (zh) * 2020-03-31 2021-10-01 杭州海康威视数字技术股份有限公司 一种推理平台、方法及装置
CN113609694A (zh) * 2021-08-13 2021-11-05 国家电网有限公司华北分部 基于pscad的继电保护闭环仿真系统数据传输及同步方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628659A (zh) * 2017-03-24 2018-10-09 中国电力科学研究院 基于动态链接adpss实时仿真的用户封装模型仿真方法及系统
CN110209376A (zh) * 2018-02-28 2019-09-06 无锡锐泰节能系统科学有限公司 一种应用系统中的公式设计及解析方法
CN113469364A (zh) * 2020-03-31 2021-10-01 杭州海康威视数字技术股份有限公司 一种推理平台、方法及装置
CN113469364B (zh) * 2020-03-31 2023-10-13 杭州海康威视数字技术股份有限公司 一种推理平台、方法及装置
CN112380192A (zh) * 2020-12-03 2021-02-19 广州海量数据库技术有限公司 数据库中面向对象框架的实现方法及系统
CN112380192B (zh) * 2020-12-03 2024-02-09 广州海量数据库技术有限公司 数据库中面向对象框架的实现方法及系统
CN113609694A (zh) * 2021-08-13 2021-11-05 国家电网有限公司华北分部 基于pscad的继电保护闭环仿真系统数据传输及同步方法
CN113609694B (zh) * 2021-08-13 2024-01-02 国家电网有限公司华北分部 基于pscad的继电保护闭环仿真系统数据传输及同步方法

Similar Documents

Publication Publication Date Title
CN106294899A (zh) 基于面向对象程序架构的电力系统用户自定义仿真方法
CN107103113B (zh) 面向神经网络处理器的自动化设计方法、装置及优化方法
CN104391692B (zh) 用于读写psd‑bpa数据文件的面向对象编程方法
CN106681726B (zh) Python模型转换为Modelica模型的方法
TW200907735A (en) Method, system, and computer program product for generating automated assumption for compositional verification
CN106445477A (zh) 一种基于面向对象程序架构拓展用户自定义模型库的方法
CN105574269B (zh) 一种专用指令处理器的设计验证方法
CN109684517A (zh) 一种历史数据存储方法、读写方法、存储装置和设备
CN102800115B (zh) 一种基于模型的动画制作系统及其制作方法
Nicolescu et al. Complex objects for complex applications
EP3413220A1 (en) Generating models for real time embedded systems that approximate non-embedded models while reducing complexity associated with the non-embedded models
Bravo et al. Generalised verification of the observer property in discrete event systems
CN104765616B (zh) 一种自动生成io模型的方法及系统
CN104951583B (zh) 数字集成电路仿真方法及仿真器
CN106294901A (zh) 一种基于混合变步长仿真的电力系统用户自定义仿真方法
Gaudio et al. Agri-food supply-chain traceability: a multi-layered solution
Shi A simple implementation of determinant decision diagram
Toma et al. Combining several paradigms for circuit validation and verification
Izmaylov et al. Automated analysis of DP-systems using timed-arc Petri nets via TAPAAL tool
Ivannikov et al. The basics of digital system designs simulation for hardware/software joint debugging
Caiyu et al. Mining potential 5G mobile users based on logistic regression and random forest
Fellah et al. Automata-based timed event program comprehension for real-time systems
Kapoor Open source mesh generation and CFD simulations for Francis Turbine
Guerraoui et al. On failure detectors and type boosters
CN107526585A (zh) 基于Scala的FPGA开发平台及其调试、测试方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170104