CN106445477A - 一种基于面向对象程序架构拓展用户自定义模型库的方法 - Google Patents
一种基于面向对象程序架构拓展用户自定义模型库的方法 Download PDFInfo
- Publication number
- CN106445477A CN106445477A CN201510492840.9A CN201510492840A CN106445477A CN 106445477 A CN106445477 A CN 106445477A CN 201510492840 A CN201510492840 A CN 201510492840A CN 106445477 A CN106445477 A CN 106445477A
- Authority
- CN
- China
- Prior art keywords
- user
- class
- model unit
- model
- defined model
- 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
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于面向对象程序架构拓展用户自定义模型库的方法,包括下述步骤:用户自定义模型单元的预处理;基于面向对象程序架构的类定义;用户自定义模型单元的初始化;用户自定义模型单元的仿真计算。本发明提供的技术方案解决现有国内电力系统用户自定义仿真技术落后,用户自定义模型库的模型单元太少,难以满足自定义建模的需要,用户自定义功能严重依赖于仿真主程序存在,难以割裂,使得用户自定义模型库的维护、拓展困难,电力系统建模效率低下,不适应现阶段需要频繁利用用户自定义技术完成大量新型电力元件建模需求的问题。
Description
技术领域
本发明涉及电力系统仿真领域,具体涉及一种在电力系统分析综合程序(PSASP)仿真平台上实现的基于面向对象程序架构拓展用户自定义(UD)模型库的方法。
背景技术
随着电力系统和电力电子技术的飞速发展,新型系统元件不断投入和系统控制技术日益进步,要求在电力系统计算中能够模拟若干新型元件和各种控制功能。一般的仿真分析软件均设置了用户自定义(UD)建模和/或第三方软件接口功能,以实现软件的开放式仿真,弥补专业仿真软件的不足。
国内现有电力系统仿真软件中,用户自定义(UD)功能技术较为落后,在电力系统分析综合程序(PSASP)中有UD功能,但UD模型库的模型单元太少,难以满足自定义建模的需要,用户自定义功能严重依赖于仿真主程序存在,难以割裂,使得用户自定义模型库的维护、拓展困难,电力系统建模效率低下,不适应现阶段需要频繁利用用户自定义技术完成大量新型电力元件建模需求。
国外的商业软件如DigSILENT、matlab、pscad等均具备UD功能,但实现机制与本方法不同,且多为变步长仿真,没有实现基于定步长仿真的拓展UD模型库的方法。
发明内容
为解决上述现有技术中的不足,本发明的目的是提供一种基于面向对象程序架构拓展用户自定义(UD)模型库的方法,该方法解决现有国内电力系统用户自定义仿真技术落后,用户自定义模型库的模型单元太少,难以满足自定义建模的需要,用户自定义功能严重依赖于仿真主程序存在,难以割裂,使得用户自定义模型库的维护、拓展困难,电力系统建模效率低下,不适应现阶段需要频繁利用用户自定义技术完成大量新型电力元件建模需求的问题。
本发明的目的是采用下述技术方案实现的:
本发明提供一种基于面向对象程序架构拓展用户自定义模型库的方法,其改进之处在于,所述方法包括下述步骤:
步骤1:用户自定义模型单元预处理;
步骤2:基于面向对象程序架构类定义;
步骤3:用户自定义模型单元初始化;
步骤4:用户自定义模型单元仿真计算。
进一步地,所述步骤1中,设定模型单元的内部编号及符号,确定模型单元的运算逻辑关系、输入/输出变量的个数以及类型,完成用户自定义模型单元的预处理;所述运算逻辑关系包括仿真运算逻辑关系以及初值运算逻辑关系。
进一步地,所述步骤2中,将用户自定义模型单元的共性属性设计成基类,基类包括参数类、端子类和功能模块类;将每个用户自定义模型单元设为独立的派生类成员,继承上述参数类、端子类和功能模块类中的关键变量和函数;
所述关键变量包括模型单元运算的参数、仿真计算的控制信息、输入/输出信息以及状态量信息;
所述关键函数包括仿真初始化函数、每时步仿真运算函数以及小干扰线性化函数(初始化函数、每时步仿真运算函数以及小干扰线性化函数均是类成员函数)。
进一步地,所述参数类是为用户自定义模型中模型单元的参数设计,初始化完成之后即可完成成员变量的赋值;所述端子类是为用户自定义模型中模型单元的输入/输出变量设计,将模型单元的输入/输出变量称为端子,模型单元之间的数据交换通过端子类对象实现;所述功能模块类是模型单元类的父类,模型单元类均从功能模块类继承得到,功能模块类包含所有模型单元类的共有属性;模型单元类是基类的子类,模型单元均从基类拓展得到,模型单元类包含与其逻辑运算相关的所有属性。
进一步地,所述步骤3中,针对初始化函数进行构造函数的重载,完成用户自定义模型单元的初始化。
进一步地,所述步骤4中,针对每时步仿真运算函数和小干扰线性化函数进行构造函数((构造函数是在类对象实例化时重新构造的初始化函数))的重载,完成用户自定义模型单元的仿真计算。
本发明提供的技术方案具有的优异效果是:
本发明提供的一种基于面向对象程序架构拓展用户自定义(UD)模型库的方法,该方法解决现有国内电力系统用户自定义仿真技术落后,用户自定义模型库的模型单元太少,难以满足自定义建模的需要,用户自定义功能严重依赖于仿真主程序存在,难以割裂,使得用户自定义模型库的维护、拓展困难,电力系统建模效率低下,不适应现阶段需要频繁利用用户自定义技术完成大量新型电力元件建模需求的问题。
本发明所提供的一种基于面向对象程序架构拓展电力系统仿真用户自定义模型库的方法,优化了现有电力系统分析仿真软件(PSASP)的用户自定义功能,使软件更加适应现阶段大量电力系统新型元件涌现,需要灵活的建模仿真手段以适应大电网安全稳定分析的需要,拓展电力系统仿真功能,扩大了电力系统仿真软件的使用范围并提高了仿真效率,便于进一步开拓电力系统仿真软件的市场。
基于面向对象的程序架构设计,其优点为,可以方便灵活地进行UD模型库的拓展,不断丰富现有模型库,强化用户自定义的功能。
类和接口的设计是开放的,用户可以自行对UD模型库进行拓展,按照用户的需求进行个性化设计。
拓展UD模型库流程,其优点为,方法简单,仅需要为模型单元申请内存空间和重构部分变量及函数即可实现,且代码格式化,编码过程高效快捷。
附图说明
图1是本发明提供的基类的依赖关系示意图;
图2是本发明提供的基类与模型单元派生类的继承关系示意图;
图3是本发明提供的用户自定义信号发生器的示意图;
图4是本发明提供的基于面向对象程序架构拓展电力系统仿真用户自定义模型库的方法的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
本发明提供一种基于面向对象程序架构拓展用户自定义模型库的方法,其流程图如图4所示,包括下述步骤:
步骤1:用户自定义模型单元的预处理:设定模型单元的内部编号及符号,确定模型单元的运算逻辑关系、输入/输出变量的个数以及类型,完成用户自定义模型单元的预处理;所述运算逻辑关系包括仿真运算逻辑关系以及初值运算逻辑关系。
步骤2:基于面向对象程序架构的类定义:将用户自定义模型单元的共性属性设计成基类,基类包括参数类、端子类和功能模块类;将每个用户自定义模型单元设为独立的派生类成员,继承上述参数类、端子类和功能模块类中的关键变量和函数;所述关键变量包括模型单元运算的参数、仿真计算的控制信息、输入/输出信息以及状态量信息;所述关键函数包括仿真初始化函数、每时步仿真运算函数以及小干扰线性化函数。
图1和图2为本发明实施例公开的基于面向对象程序架构拓展电力系统仿真用户自定义模型库的方法中,所定义的各个类之间的逻辑关系示意图。
根据用户自定义模型单元的特点,均具有输入、输出、参数和函数运算的共性。基于面向对象的程序设计理念,将共性的东西设计成为基类,个性的东西通过派生生成相应的派生类,采用类的封装、继承、多态性定义所有的基本运算函数。所设计的基类包括参数类(UDParameter CLASS),端子类(UDTerminal CLASS),功能模块类(UDBaseFunc CLASS)。参数类是为UD模型中各模型单元的参数设计,初始化完成之后即可完成成员变量的赋值;端子类是为UD模型中各模型单元的输入/输出变量(统称为端子)设计,各模型单元之间的数据交换通过端子类对象实现;功能模块类是各模型单元类的父类,各模型单元类都可以从该基类继承得到,功能模块类包含了所有模型单元类的共有属性;模型单元类是基类的子类,各个模型单元都可以从基类拓展得到,模型单元类包含了与其逻辑运算相关的所有属性。参数类和端子类是相互独立的两个类,功能模块类是依赖于参数类和端子类的。
步骤3:针对初始化函数进行构造函数的重载,完成用户自定义模型单元的初始化。
步骤4:针对每时步仿真运算函数和小干扰线性化函数进行构造函数的重载,完成用户自定义模型单元的仿真计算。
实施例
图3为一个典型的用户自定义模型库中的模型单元,称之为用户自定义信号发生器,其属于信号源模型单元,主要用于在UD模型中自定义随仿真时间变化的输入信号,以完成特定信号激励下的动态仿真过程。其中,自定义的输入信号可以存储在文本文件中,由程序读取并解析该文本文件,将相应字段上的值赋给某时刻的信号输出。下面以该典型的模型单元为例,介绍本发明所述的拓展UD模型库的方法,具体步骤如下:
1)指定该模型单元内部编号为65,符号为UDSIGNAL。
2)根据模型单元实现的功能,确定如下有关内容:
a)仿真运算逻辑:t时刻时,如果文件中有该时刻的信息,则模型单元输出信号y(t)等于模型单元输入信号x(t),否则y(t)=0;
b)初值运算逻辑:如文件中有t=0时刻的信息,则模型单元初始输出信号y(0)等于模型单元初始输入信号x(0),否则y(0)=0;
c)参数:仅包括一个参数A,为用户自定义信号发生器输入信息文件的标识符;
d)输入/输出:没有外部端子输入,仅有一个输出至外部端子;
该模型单元在模型文件中的书写格式为:
……
n,65,UDSIGNAL,0,1,1,
k,
A,p,
……
1.00000,0.00000,-1.00000,99999.00000,-99999.00000,……
……
其中,n表示序号,k表示输出端子号,p表示参数A所取值在参数行中的序号。
小干扰计算中,线性化结果为0。初值运算逻辑与b)中初值运算逻辑一致。
3)为模型单元派生类申请独立的内存空间。
4)定义独立的模型单元派生类成员,重构继承的变量及函数。
其中,接口是面向用户开放的,用户可自行开发模型单元,被编译成动态链接库(*.dll)文件的形式,被用户自定义(UD)程序调用。
本发明公开了一种基于面向对象程序架构拓展电力系统仿真用户自定义模型库的方法,通过将模型单元中的输入、输出、参数和函数运算作为共性属性设计成基类,并将每个模型单元作为一个独立的派生类成员,继承三个基类中的变量与函数并进行重构,可以方便地对现有用户自定义模型库进行拓展,不断满足建模需要,并可以设计成开放式代码,不仅可由开发人员,亦可由用户对模型库进行自由拓展,极大地满足用户自定义建模的需求,提高国内电力系统仿真用户自定义建模的效率和能力。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。
Claims (6)
1.一种基于面向对象程序架构拓展用户自定义模型库的方法,其特征在于,所述方法包括下述步骤:
步骤1:用户自定义模型单元预处理;
步骤2:基于面向对象程序架构类定义;
步骤3:用户自定义模型单元初始化;
步骤4:用户自定义模型单元仿真计算。
2.如权利要求1所述的基于面向对象程序架构拓展用户自定义模型库的方法,其特征在于:所述步骤1中,设定模型单元的内部编号及符号,确定模型单元的运算逻辑关系、输入/输出变量的个数以及类型,完成用户自定义模型单元的预处理;所述运算逻辑关系包括仿真运算逻辑关系以及初值运算逻辑关系。
3.如权利要求1所述的基于面向对象程序架构拓展用户自定义模型库的方法,其特征在于:所述步骤2中,将用户自定义模型单元的共性属性设计成基类,基类包括参数类、端子类和功能模块类;将每个用户自定义模型单元设为独立的派生类成员,继承上述参数类、端子类和功能模块类中的关键变量和函数;
所述关键变量包括模型单元运算的参数、仿真计算的控制信息、输入/输出信息以及状态量信息;
所述关键函数包括仿真初始化函数、每时步仿真运算函数以及小干扰线性化函数。
4.如权利要求3所述的基于面向对象程序架构拓展用户自定义模型库的方法,其特征在于:所述参数类是为用户自定义模型中模型单元的参数设计,初始化完成之后即可完成成员变量的赋值;所述端子类是为用户自定义模型中模型单元的输入/输出变量设计,将模型单元的输入/输出变量称为端子,模型单元之间的数据交换通过端子类对象实现;所述功能模块类是模型单元类的父类,模型单元类均从功能模块类继承得到,功能模块类包含所有模型单元类的共有属性;模型单元类是基类的子类,模型单元均从基类拓展得到,模型单元类包含与其逻辑运算相关的所有属性。
5.如权利要求1所述的基于面向对象程序架构拓展用户自定义模型库的方法,其特征在于:所述步骤3中,针对初始化函数进行构造函数的重载,完成用户自定义模型单元的初始化。
6.如权利要求1所述的基于面向对象程序架构拓展用户自定义模型库的方法,其特征在于:所述步骤4中,针对每时步仿真运算函数和小干扰线性化函数进行构造函数的重载,完成用户自定义模型单元的仿真计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510492840.9A CN106445477A (zh) | 2015-08-12 | 2015-08-12 | 一种基于面向对象程序架构拓展用户自定义模型库的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510492840.9A CN106445477A (zh) | 2015-08-12 | 2015-08-12 | 一种基于面向对象程序架构拓展用户自定义模型库的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445477A true CN106445477A (zh) | 2017-02-22 |
Family
ID=58093498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510492840.9A Pending CN106445477A (zh) | 2015-08-12 | 2015-08-12 | 一种基于面向对象程序架构拓展用户自定义模型库的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445477A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108305329A (zh) * | 2017-12-28 | 2018-07-20 | 深圳市创梦天地科技股份有限公司 | 一种构建模型的方法及终端 |
CN108628659A (zh) * | 2017-03-24 | 2018-10-09 | 中国电力科学研究院 | 基于动态链接adpss实时仿真的用户封装模型仿真方法及系统 |
CN109739490A (zh) * | 2018-12-15 | 2019-05-10 | 南京理工大学 | 一种基于qt图形框架的电气元件模型快速创建方法 |
CN111124373A (zh) * | 2019-12-26 | 2020-05-08 | 武汉精鸿电子技术有限公司 | 一种测试软件开发方法、装置及测试设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181778A1 (en) * | 2003-03-03 | 2004-09-16 | Tibazarwa Augustine K. | System and method for a requirement-centric extensible multilingual instruction language for computer programming |
CN103605560A (zh) * | 2013-11-25 | 2014-02-26 | 国家电网公司 | 一种继电保护与安全自动装置的连锁故障并行仿真方法 |
CN103942091A (zh) * | 2014-04-17 | 2014-07-23 | 国家电网公司 | Matlab自定义模型和psasp联合仿真的励磁系统仿真方法及系统 |
-
2015
- 2015-08-12 CN CN201510492840.9A patent/CN106445477A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181778A1 (en) * | 2003-03-03 | 2004-09-16 | Tibazarwa Augustine K. | System and method for a requirement-centric extensible multilingual instruction language for computer programming |
CN103605560A (zh) * | 2013-11-25 | 2014-02-26 | 国家电网公司 | 一种继电保护与安全自动装置的连锁故障并行仿真方法 |
CN103942091A (zh) * | 2014-04-17 | 2014-07-23 | 国家电网公司 | Matlab自定义模型和psasp联合仿真的励磁系统仿真方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628659A (zh) * | 2017-03-24 | 2018-10-09 | 中国电力科学研究院 | 基于动态链接adpss实时仿真的用户封装模型仿真方法及系统 |
CN108305329A (zh) * | 2017-12-28 | 2018-07-20 | 深圳市创梦天地科技股份有限公司 | 一种构建模型的方法及终端 |
CN108305329B (zh) * | 2017-12-28 | 2022-02-22 | 深圳市创梦天地科技有限公司 | 一种构建模型的方法及终端 |
CN109739490A (zh) * | 2018-12-15 | 2019-05-10 | 南京理工大学 | 一种基于qt图形框架的电气元件模型快速创建方法 |
CN109739490B (zh) * | 2018-12-15 | 2022-05-13 | 南京理工大学 | 一种基于qt图形框架的电气元件模型快速创建方法 |
CN111124373A (zh) * | 2019-12-26 | 2020-05-08 | 武汉精鸿电子技术有限公司 | 一种测试软件开发方法、装置及测试设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032369A (zh) | 一种代码自动生成方法、装置及介质 | |
CN106445477A (zh) | 一种基于面向对象程序架构拓展用户自定义模型库的方法 | |
CN107278290A (zh) | 积木式编程转换成程序代码的方法及装置 | |
CN106095376B (zh) | 一种快速组态监控画面的实现方法 | |
CN105005015A (zh) | 一种基于硬件电路故障注入的电路故障仿真系统 | |
Torgo | An infra-structure for performance estimation and experimental comparison of predictive models in r | |
CN106202681A (zh) | 可重用的卫星电源能量平衡仿真系统及其建模方法 | |
CN110069312A (zh) | 一种ui组件配置和生成ui组件库的方法及装置 | |
CN107632827A (zh) | 应用的安装包的生成方法及装置 | |
CN105573774B (zh) | 应用程序参数管理及配置方法 | |
CN106294899A (zh) | 基于面向对象程序架构的电力系统用户自定义仿真方法 | |
CN103164228B (zh) | 一种现场可编程门阵列程序的生成方法及装置 | |
CN112966328A (zh) | 基于BIM的应用Dynamo自动化创建共享参数方法 | |
CN104090995B (zh) | 一种ABAQUS轮胎模型中rebar单元网格的自动生成方法 | |
CN110414118A (zh) | 一种基于分离式建模的Boost变换器建模方法及应用 | |
CN112347534B (zh) | 一种基于ifc扩展的水利水电工程bim模型转换方法 | |
CN115705446A (zh) | 集成电路的后仿真方法和装置 | |
CN106201462B (zh) | 基于元件库的继电保护装置配置方法 | |
CN107741845A (zh) | 一种自定义类实例的生成方法和装置 | |
CN108846211A (zh) | 一种基于Matlab的直流控制保护功能模块建模的方法和装置 | |
CN108964107A (zh) | 一种基于rtds的直流控制保护模型的建模方法及设备 | |
CN105354298A (zh) | 基于Hadoop的大规模社交网络分析方法及其分析平台 | |
CN112784417A (zh) | 一种基于SysML的航电分布式联合仿真方法及系统 | |
Niu et al. | Augmenting Negation Normal Form With Irrelevant Variables | |
CN106528061A (zh) | 一种嵌入式系统软硬件协同设计方法 |
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: 20170222 |