CN106681727A - Modelica外部函数图形化编辑系统及其实现方法 - Google Patents
Modelica外部函数图形化编辑系统及其实现方法 Download PDFInfo
- Publication number
- CN106681727A CN106681727A CN201611256236.7A CN201611256236A CN106681727A CN 106681727 A CN106681727 A CN 106681727A CN 201611256236 A CN201611256236 A CN 201611256236A CN 106681727 A CN106681727 A CN 106681727A
- Authority
- CN
- China
- Prior art keywords
- function
- modelica
- module
- input paramete
- output variable
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种Modelica外部函数图形化编辑系统及其实现方法,所述系统其包括一输入参数模块、一函数编辑模块、一输出变量模块和一代码生成模块;所述输入参数模块、所述函数编辑模块和所述输出变量模块开放给用户用来设置输入参数信息、输出参数信息以及编辑外部函数内容,这些信息向下传递给代码生成模块,根据用户的配置自动生成基于Modelica语法的模型组件,实现以可视化操作的方式将其他程序语言的函数封装为Modelica外部函数。本发明的图形化编辑系统图形化可读性好,封装为Modelica外部函数的Modelica function组件可以直接被其他模型使用,实现一次编辑,重复利用,方便后期修改与维护。
Description
技术领域
本发明属于机械仿真技术领域,具体而言涉及一种基于Modelica的建模仿真工具软件。
背景技术
Modelica是国际仿真界于1997年提出的一种开放的全新多领域统一建模语言,它归纳和统一了先前多种建模语言,且融合了键合图的非因果建模思想、Java语言的面向对象技术和Matlab的数值与矩阵机制,因而具备极其强大的建模功能。面向对象性和非因果性是Modelica 语言最大的优点。面向对象的建模方法具有数据封装、分层、连接和继承等特征,易于减少错误的发生并容易实现模型的重用。所谓非因果性建模,就是以一种中性、自然的形式表达模型方程,从而不必更多的考虑计算顺序,避免了对模型方程的繁琐推导,从而提高了建模效率,并使部件模型易于被重复使用。Modelica语言采用陈述式、基于方程的非因果建模方法建立模型,通过定义接口,使模型接口的标准化,因此采用Modelica建模可以使物理系统各子系统之间既能完全独立又可互相统一。
基于扩展性的考虑,Modelica支持以外部函数的方式调用C/C++、Python等多种编程语言函数,在传统的Modelica语言建模工具软件中,仅支持以文本编辑的方式引入外部函数,需要以Modelica语言编码制定外部函数的来源、参数和描述信息等,若能以图形化的方式进行外部函数编辑,不仅能够提高界面友好性,使软件易于上手,对于不熟悉Modelica语法的使用者来说,还能自动根据用户图形化操作生成Modelica代码,减少工作量。
发明内容
为克服现有技术中的不足,本发明的目的在于提供一种Modelica外部函数图形化编辑系统,该系统可供用户通过图形化用户界面,将外部函数封装为Modelica函数,并将Modelica函数与模型组件进行关联,从而实现组件调用外部函数。
本发明的另一目的在于提供一种Modelica外部函数图形化编辑系统的实现方法。
为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种Modelica外部函数图形化编辑系统,其包括一输入参数模块、一函数编辑模块、一输出变量模块和一代码生成模块;
所述输入参数模块对应于可视化的输入参数配置面板,采集用户配置的两个外部函数配置项,并传递给所述代码生成模块,所述的两个外部函数配置项分别为输入参数类型和输入参数名称;
所述输出变量模块对应于可视化的输出变量配置面板,采集用户配置的另外两个外部函数配置项,并传递给所述代码生成模块,所述的另外两个外部函数配置项分别为输出变量类型和输出变量名称;
所述函数编辑模块对应于可视化的外部函数编辑面板,所述外部函数编辑模块可以直接输入函数代码或者指定函数链接库位置,所述函数编辑模块采集所述函数代码的信息或者所述函数链接库位置的信息传递给所述代码生成模块;
所述代码生成模块采集所述输入参数模块、所述输出变量模块和所述函数编辑模块的数据,分别通过语法解析,信息有效性和完整性鉴别,最后生成符合Modelica语法的,已被封装为Modelica外部函数的Modelica function组件,该组件可以直接被其他模型使用,实现一次编辑,重复利用。
本系统的工作逻辑如下:
所述输入参数模块、所述函数编辑模块和所述输出变量模块开放给用户用来设置输入参数信息、输出参数信息以及编辑外部函数内容,这些信息向下传递给代码生成模块,根据用户的配置自动生成基于Modelica语法的模型组件,实现以可视化操作的方式将其他程序语言的函数封装为Modelica外部函数。
一种Modelica外部函数图形化编辑系统的实现方法,其包括以下制备步骤:
步骤0:用户在输入参数配置面板配置每个输入参数的类型、名称、注释以及初始值信息,在输出变量配置面板配置输出变量的类型和名称,在函数编辑面板配置函数体内容或函数动态库路径,这些配置信息传递到底层代码生成模块;
步骤1:代码生成模块获取上层输入后解析输入参数;
步骤2:检查输入参数类型、名称和注释是否一一对应,其中,每个输入参数必须具有类型和名称,注释可以为空,若一一对应,则跳转到步骤3,否则逻辑结束,输出错误信息;
步骤3:检查输入参数信息是否符合Modelica语义,若均符合语义规定则跳转到步骤4,否则逻辑结束,输出错误信息;
步骤4:检查输出参数类型、名称、注释是否一一对应,输出参数必须具有类型和名称,注释可以为空,若一一对应,则跳转到步骤5,否则逻辑结束,输出错误信息;
步骤5:检查输出参数信息是否符合Modelica语义,若均符合语义规定则跳转到步骤6,否则逻辑结束,输出错误信息;
步骤6:生成输入参数信息,每个输入参数均与Modelica语义中的input对应,对于每个输入参数信息,生成如下Modelica代码:
input 输入参数类型 输入参数名称;“输入参数注释”
步骤7:生成输出变量信息,每个输出变量均与Modelica语义中的output对应,对于每个输出变量信息,生成如下Modelica代码:
out 输出变量类型 输出变量名称;“输出变量注释”;
步骤8:校验函数配置信息,判断函数配置类型,跳转到步骤9;
步骤9:解析函数文本是否符合语法规则,或解析配置函数库是否存在及可用,若是则跳转到步骤10;
步骤10:对于符合规范的函数文本生成Modelica代码,或根据配置的函数库路径生成Modelica代码;
步骤11:将生成的Modelica代码进行组合,插入组件名称,外部函数编辑器将生成一个Modelica function组件,完成从其他语言函数到Modelica function外部函数的自动封装。
与现有技术相比,本发明具有以下有益效果:
1)Modelica引用外部函数的相关语法复杂难懂,通过图形化的方式自动根据用户配置将外部函数进行封装,降低了建模门槛;
2)图形化可读性好,封装为Modelica外部函数的Modelica function组件可以直接被其他模型使用,实现一次编辑,重复利用,方便后期修改与维护。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明的Modelica外部函数图形化编辑系统的系统架构图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
参见图1所示,一种Modelica外部函数图形化编辑系统,其包括一输入参数模块1、一函数编辑模块2、一输出变量模块3和一代码生成模块4;
所述输入参数模块1对应于可视化的输入参数配置面板,采集用户配置的两个外部函数配置项,并传递给所述代码生成模块4,所述的两个外部函数配置项分别为输入参数类型和输入参数名称;
所述输出变量模块3对应于可视化的输出变量配置面板,采集用户配置的另外两个外部函数配置项,并传递给所述代码生成模块4,所述的另外两个外部函数配置项分别为输出变量类型和输出变量名称;
所述函数编辑模块2对应于可视化的外部函数编辑面板,所述外部函数编辑模块可以直接输入函数代码或者指定函数链接库位置,所述函数编辑模块2采集所述函数代码的信息或者所述函数链接库位置的信息传递给所述代码生成模块4;
所述代码生成模块4采集所述输入参数模块1、所述输出变量模块2和所述函数编辑模块3的数据,分别通过语法解析,信息有效性和完整性鉴别,最后生成符合Modelica语法的,已被封装为Modelica外部函数的Modelica function组件,该组件可以直接被其他模型使用,实现一次编辑,重复利用。
本系统的工作逻辑如下:
所述输入参数模块1、所述函数编辑模块2和所述输出变量模3块开放给用户用来设置输入参数信息、输出参数信息以及编辑外部函数内容,这些信息向下传递给代码生成模块4,根据用户的配置自动生成基于Modelica语法的模型组件,实现以可视化操作的方式将其他程序语言的函数封装为Modelica外部函数。
一种Modelica外部函数图形化编辑系统的实现方法,其包括以下制备步骤:
步骤0:用户在输入参数配置面板配置每个输入参数的类型、名称、注释以及初始值信息,在输出变量配置面板配置输出变量的类型和名称,在函数编辑面板配置函数体内容或函数动态库路径,这些配置信息传递到底层代码生成模块;
步骤1:代码生成模块获取上层输入后解析输入参数;
步骤2:检查输入参数类型、名称和注释是否一一对应,其中,每个输入参数必须具有类型和名称,注释可以为空,若一一对应,则跳转到步骤3,否则逻辑结束,输出错误信息;
步骤3:检查输入参数信息是否符合Modelica语义,若均符合语义规定则跳转到步骤4,否则逻辑结束,输出错误信息;
步骤4:检查输出参数类型、名称、注释是否一一对应,输出参数必须具有类型和名称,注释可以为空,若一一对应,则跳转到步骤5,否则逻辑结束,输出错误信息;
步骤5:检查输出参数信息是否符合Modelica语义,若均符合语义规定则跳转到步骤6,否则逻辑结束,输出错误信息;
步骤6:生成输入参数信息,每个输入参数均与Modelica语义中的input对应,对于每个输入参数信息,生成如下Modelica代码:
input 输入参数类型 输入参数名称;“输入参数注释”;
步骤7:生成输出变量信息,每个输出变量均与Modelica语义中的output对应,对于每个输出变量信息,生成如下Modelica代码:
out 输出变量类型 输出变量名称;“输出变量注释”;
步骤8:校验函数配置信息,判断函数配置类型,跳转到步骤9;
步骤9:解析函数文本是否符合语法规则,或解析配置函数库是否存在及可用,若是则跳转到步骤10;
步骤10:对于符合规范的函数文本生成如下Modelica代码:
external "C" data = getIntServer(输入变量1名称, 输入变量1名称, ……)annotation
(Include="函数文本")
,或根据配置的函数库路径生成如下Modelica代码:
external "C" data = getIntServer(输入变量1名称, 输入变量1名称, ……)annotation (Include = "#include \"头文件名称\"",
IncludeDirectory = "头文件寻址目录",
Library = "库文件名称",
LibraryDirectory = "库文件寻址目录");
;
步骤11:将生成的Modelica代码进行组合,插入组件名称,外部函数编辑器将生成一个Modelica function组件,完成从其他语言函数到Modelica function外部函数的自动封装。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.Modelica外部函数图形化编辑系统,其特征在于:包括一输入参数模块(1)、一函数编辑模块(2)、一输出变量模块(3)和一代码生成模块(4);
所述输入参数模块(1)对应于可视化的输入参数配置面板,采集用户配置的两个必要外部函数配置项,并传递给所述代码生成模块(4),所述的两个必要外部函数配置项分别为输入参数类型和输入参数名称;
所述输出变量模块(3)对应于可视化的输出变量配置面板,采集用户配置的另外两个外部函数配置项,并传递给所述代码生成模块(4),所述的另外两个外部函数配置项分别为输出变量类型和输出变量名称;
所述函数编辑模块(2)对应于可视化的外部函数编辑面板,所述外部函数编辑模块可以直接输入函数代码或者指定函数链接库位置,所述函数编辑模块(2)采集所述函数代码的信息或者所述函数链接库位置的信息传递给所述代码生成模块(4);
所述代码生成模块(4)采集所述输入参数模块(1)、所述输出变量模块(2)和所述函数编辑模块(3)的数据,分别通过语法解析,信息有效性和完整性鉴别,最后生成符合Modelica语法的,已被封装为Modelica外部函数的Modelica function组件,该组件可以直接被其他模型使用,实现一次编辑,重复利用。
2.Modelica外部函数图形化编辑系统的实现方法,其特征在于,包括以下制备步骤:
步骤0:用户在输入参数配置面板配置每个输入参数的类型、名称、注释以及初始值信息,在输出变量配置面板配置输出变量的类型和名称,在函数编辑面板配置函数体内容或函数动态库路径,这些配置信息传递到底层代码生成模块;
步骤1:代码生成模块获取上层输入后解析输入参数;
步骤2:检查输入参数类型、名称和注释是否一一对应,其中,每个输入参数必须具有类型和名称,注释可以为空,若一一对应,则跳转到步骤3,否则逻辑结束,输出错误信息;
步骤3:检查输入参数信息是否符合Modelica语义,若均符合语义规定则跳转到步骤4,否则逻辑结束,输出错误信息;
步骤4:检查输出参数类型、名称、注释是否一一对应,输出参数必须具有类型和名称,注释可以为空,若一一对应,则跳转到步骤5,否则逻辑结束,输出错误信息;
步骤5:检查输出参数信息是否符合Modelica语义,若均符合语义规定则跳转到步骤6,否则逻辑结束,输出错误信息;
步骤6:生成输入参数信息,每个输入参数均与Modelica语义中的input对应,对于每个输入参数信息,生成如下Modelica代码:
input 输入参数类型 输入参数名称;“输入参数注释”;
步骤7:生成输出变量信息,每个输出变量均与Modelica语义中的output对应,对于每个输出变量信息,生成如下Modelica代码:
out 输出变量类型 输出变量名称;“输出变量注释”;
步骤8:校验函数配置信息,判断函数配置类型,跳转到步骤9;
步骤9:解析函数文本是否符合语法规则,或解析配置函数库是否存在及可用,若是则跳转到步骤10;
步骤10:对于符合规范的函数文本生成Modelica代码,或根据配置的函数库路径生成Modelica代码;
步骤11:将生成的Modelica代码进行组合,插入组件名称,外部函数编辑器将生成一个Modelica function组件,完成从其他语言函数到Modelica function外部函数的自动封装。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611256236.7A CN106681727B (zh) | 2016-12-30 | 2016-12-30 | Modelica外部函数图形化编辑系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611256236.7A CN106681727B (zh) | 2016-12-30 | 2016-12-30 | Modelica外部函数图形化编辑系统及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106681727A true CN106681727A (zh) | 2017-05-17 |
CN106681727B CN106681727B (zh) | 2020-10-02 |
Family
ID=58873374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611256236.7A Active CN106681727B (zh) | 2016-12-30 | 2016-12-30 | Modelica外部函数图形化编辑系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106681727B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657150A (zh) * | 2017-09-07 | 2018-02-02 | 北京荣之联科技股份有限公司 | 一种可视化生物信息分析工具生成方法和装置 |
CN111352742A (zh) * | 2018-12-21 | 2020-06-30 | 北京奇虎科技有限公司 | 一种基于app组件化的信息传递方法及装置 |
CN111414695A (zh) * | 2020-03-19 | 2020-07-14 | 苏州同元软控信息技术有限公司 | 一种基于Modelica的联合仿真系统及其构建方法 |
CN113220309A (zh) * | 2021-04-13 | 2021-08-06 | 三峡大学 | 多语言的Modelica组件批量生成系统和方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306102A (zh) * | 2011-08-25 | 2012-01-04 | 中兴通讯股份有限公司 | 程序文件自动生成方法及装置 |
CN102385509A (zh) * | 2010-08-31 | 2012-03-21 | 苏州大学 | 一种图形化嵌入式开发方法和平台 |
US20130179152A1 (en) * | 2012-01-11 | 2013-07-11 | Siemens Aktiengesellschaft | Computer Implemented Method, Apparatus, Network Server And Computer Program Product |
US8666709B1 (en) * | 2008-01-08 | 2014-03-04 | The Mathworks, Inc. | Verification and validation system for a graphical model |
CN103885782A (zh) * | 2014-04-03 | 2014-06-25 | 南京南瑞继保电气有限公司 | 一种可视化编程页面程序库函数封装重用方法 |
CN103942086A (zh) * | 2014-01-26 | 2014-07-23 | 华东师范大学 | 基于aadl的创建、分析和仿真混成系统模型的方法 |
CN105243223A (zh) * | 2015-10-28 | 2016-01-13 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
US20160188752A1 (en) * | 2014-12-24 | 2016-06-30 | International Business Machines Corporation | Defining reusable metrics for architectural optimization |
-
2016
- 2016-12-30 CN CN201611256236.7A patent/CN106681727B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8666709B1 (en) * | 2008-01-08 | 2014-03-04 | The Mathworks, Inc. | Verification and validation system for a graphical model |
CN102385509A (zh) * | 2010-08-31 | 2012-03-21 | 苏州大学 | 一种图形化嵌入式开发方法和平台 |
CN102306102A (zh) * | 2011-08-25 | 2012-01-04 | 中兴通讯股份有限公司 | 程序文件自动生成方法及装置 |
US20130179152A1 (en) * | 2012-01-11 | 2013-07-11 | Siemens Aktiengesellschaft | Computer Implemented Method, Apparatus, Network Server And Computer Program Product |
CN103942086A (zh) * | 2014-01-26 | 2014-07-23 | 华东师范大学 | 基于aadl的创建、分析和仿真混成系统模型的方法 |
CN103885782A (zh) * | 2014-04-03 | 2014-06-25 | 南京南瑞继保电气有限公司 | 一种可视化编程页面程序库函数封装重用方法 |
US20160188752A1 (en) * | 2014-12-24 | 2016-06-30 | International Business Machines Corporation | Defining reusable metrics for architectural optimization |
CN105243223A (zh) * | 2015-10-28 | 2016-01-13 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657150A (zh) * | 2017-09-07 | 2018-02-02 | 北京荣之联科技股份有限公司 | 一种可视化生物信息分析工具生成方法和装置 |
CN111352742A (zh) * | 2018-12-21 | 2020-06-30 | 北京奇虎科技有限公司 | 一种基于app组件化的信息传递方法及装置 |
CN111352742B (zh) * | 2018-12-21 | 2024-02-09 | 三六零科技集团有限公司 | 一种基于app组件化的信息传递方法及装置 |
CN111414695A (zh) * | 2020-03-19 | 2020-07-14 | 苏州同元软控信息技术有限公司 | 一种基于Modelica的联合仿真系统及其构建方法 |
CN113220309A (zh) * | 2021-04-13 | 2021-08-06 | 三峡大学 | 多语言的Modelica组件批量生成系统和方法 |
CN113220309B (zh) * | 2021-04-13 | 2022-05-06 | 三峡大学 | 多语言的Modelica组件批量生成系统和方法 |
CN114706592A (zh) * | 2021-04-13 | 2022-07-05 | 三峡大学 | 面向对象及面向过程语言的Modelica仿真组件生成方法 |
CN114706592B (zh) * | 2021-04-13 | 2024-04-19 | 三峡大学 | 面向对象及面向过程语言的Modelica仿真组件生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106681727B (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196719B (zh) | 一种基于自然语言处理的业务规则生成方法与系统 | |
EP3745256B1 (en) | External code integrations within a computing environment | |
CN105843630B (zh) | 一种基于机器人图形化编程开发的方法 | |
Thompson et al. | Specification-based prototyping for embedded systems | |
CN106681727A (zh) | Modelica外部函数图形化编辑系统及其实现方法 | |
CN103942086B (zh) | 基于aadl的创建、分析和仿真混成系统模型的方法 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN103150200B (zh) | 一种c语言到msvl语言的转换方法 | |
CN108038294B (zh) | Uvm环境搭建方法和系统 | |
CN106648662A (zh) | 基于工程造价计算描述语言bcl的报表生成装置及生成方法 | |
CN106021816B (zh) | 一种基于行为树的分布式系统行为仿真分析工具的实现方法 | |
CN105761007B (zh) | 信息管理软件设计的辅助方法及系统 | |
WO2020199423A1 (zh) | Yang模型配置界面的自动化构建方法及系统 | |
CN114840196B (zh) | Modelica语言模型处理方法、设备和存储介质 | |
CN110222318A (zh) | 基于xml的数据生成工具开发方法 | |
CN107844093A (zh) | 一种基于元件模型的自定义功能块及组态封装方法 | |
CN107391111A (zh) | 人工智能协同开发框架及实现方法 | |
CN110262794A (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN110554863A (zh) | 一种类集成电路的图形化编程方法 | |
CN110209389A (zh) | 一种基于xml的数据生成工具开发系统 | |
CN106682323B (zh) | 一种将架构模型转换为动态仿真模型的转换系统及其方法 | |
CN107861459A (zh) | 一种可配置显控一体化的plc控制系统及其控制方法 | |
CN106372359B (zh) | 一种设备虚拟样机系统 | |
Colombo et al. | A study for neutral format to exchange and reuse engineering knowledge in KBE applications | |
CN103593188A (zh) | 一种用于仪器所见即所得菜单的管理系统及管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |