[发明专利]面向对象及面向过程语言的Modelica仿真组件生成方法在审
申请号: | 202210365983.3 | 申请日: | 2021-04-13 |
公开(公告)号: | CN114706592A | 公开(公告)日: | 2022-07-05 |
发明(设计)人: | 田卫新;徐超 | 申请(专利权)人: | 三峡大学 |
主分类号: | G06F8/51 | 分类号: | G06F8/51 |
代理公司: | 宜昌市三峡专利事务所 42103 | 代理人: | 成钢 |
地址: | 443002 *** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 对象 面向过程语言 modelica 仿真 组件 生成 方法 | ||
1.面向对象及面向过程语言的Modelica仿真组件生成方法,其特征在于,将动态库形式的面向对象语言或面向过程语言编写的外部函数制作成Modelica仿真组件,通过生成新的动态库对原始动态库函数进行封装,实现编译器兼容和接口转换;
所述方法包括以下步骤:
步骤1:从指定的文件夹中逐一获取待转换的动态库及外部函数;
步骤2:分析得到每个外部函数的返回值类型、函数名称、函数参数列表;
步骤3:生成项目文件和源代码文件;
步骤4:为每一个外部函数在代码文件中生成符合Modelica使用规范的外部函数;
步骤4.1:在源代码文件中增加对原始动态库头文件的include包含;
步骤4.2:对由步骤2输出的每一个原始动态库导出函数原型,在源代码中生成一个新的函数原型,新函数返回值为整数;新函数名称由原始动态库对应的导出函数的名称转换得到;新函数的参数列表由原函数的参数列表的基础上增加原函数的返回值参数形成;
步骤4.3:生成由大括号对构成的函数体;
步骤4.4:在函数体内,根据原始动态库采用的不同编写语言类型生成不同的执行语句;
步骤5:将步骤3生成的项目编译成动态库文件;
步骤6:建立外部语言函数对应的mo文件,将外部函数引入到Modelica函数中,生成Modelica组件。
2.根据权利要求1所述的Modelica仿真组件生成方法,其特征在于,步骤1采用默认模式或配置文件模式获取待转换的动态库及外部函数;
采用默认模式时,遍历指定文件夹中扩展名为dll的动态库文件,对每一个动态库文件,在当前文件夹中查找与动态库文件主文件名相同且扩展名为h的头文件,没有则记录错误,处理下一个动态库文件,直到所有动态库文件处理完后结束;
采用配置文件模式时,读取配置文件,根据配置文件中的记录的文件名,依次读取动态库文件和对应的头文件,对每一个头文件采用文本分析方式去掉注释,然后按照标识符提取状态转换图方式分析得到标识符列表,然后从列表中倒序读取获取外部函数原型。
3.根据权利要求2所述的Modelica仿真组件生成方法,其特征在于,步骤2包括:
步骤2.1:首先从标识符列表中获取函数的返回值类型和函数名称;
步骤2.2:由左括号开始,按照函数参数分析状态转换图确定函数包括参数类型和参数名称的参数列表。
4.根据权利要求3所述的Modelica仿真组件生成方法,其特征在于,步骤3包括:
步骤3.1:用程序方式生成Mingw规范的项目文件;
步骤3.2:生成C语言源代码文件,源代码文件文件名由原始动态库文件名转换得到;并将该源代码文件加入到步骤3.1生成的项目中。
5.根据权利要求4所述的Modelica仿真组件生成方法,其特征在于,步骤6包括:
步骤6.1:根据外部函数名生成Modelica语言函数名,按照一定规则生成函数名前缀,避免重名;
步骤6.2:根据参数的输入、输出类型和数据类型,按照语言规范映射成Modelica语言的输入Input、输出Output及对应的数据类型;
步骤6.3:生成external引用的函数名称、动态库文件路径与头文件路径,并生成XML格式的组件安装引导文件,相关的动态库文件、静态库文件、mo文件、xml文件统一输出到相同的文件夹并根据应用需要决定是否压缩打包。
6.根据权利要求1-5任意一项所述的Modelica仿真组件生成方法,其特征在于,步骤4.4中,对C或Fortran语言编写的动态库,在函数体内用新生成函数的参数列表中的参数名称作为参数,按照调用约定和参数次序对原始动态库函数进行调用;
对C++语言编写的动态库,在函数体内,首先对原始动态库中的类进行实例化,然后根据导出的方法的参数次序,用新生成函数参数列表中的参数名称作为参数对方法进行调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于三峡大学,未经三峡大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210365983.3/1.html,转载请声明来源钻瓜专利网。