一种Simulink生成动态链接库的优化方法技术

技术编号:22021800 阅读:21 留言:0更新日期:2019-09-04 01:10
本发明专利技术提供了一种Simulink生成动态链接库的优化方法,所述方法包括以下步骤:首先提供模型编译模板文件;将文件放在同一个文件夹下,并且将文件夹的路径添加到Matlab的搜索路径列表里;在模型的配置对话栏,选择选项Code Generate,在System target file下拉列表里选中links_ert_shrlib.tlc文件,并点击确定,关闭对话框;选择选项Code Generate,并选择子选项Interface,在Interface下拉列表里选择CAPI,并勾选signals、parameters、states和root‑leave I/O四个勾选框;编译完成后,调用方通过动态链接库的导出符号获得模型接口静态信息和内存地址映射表;本发明专利技术极大的方便了动态链接库的使用,提高了Simulink生成动态链接库的扩展性,提高了使用效率。

An Optimal Method of Simulink Generating Dynamic Link Library

【技术实现步骤摘要】
一种Simulink生成动态链接库的优化方法
本专利技术涉及图形化建模工具MATLAB/Simulink生成动态链接库
,具体是一种Simulink生成动态链接库的优化方法。
技术介绍
MATLAB是美国MathWorks公司出品的商业数学软件,主要用于算法开发、数据可视化、数据分析以及数值计算等,在科学研究及工程计算等多个领域得到广泛的应用。Simulink是MATLAB中的一种图形化建模工具,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink提供了图形化的设计界面,以模块为功能单位,通过信号线进行连接,用户通过模块的参数设置对话框来设置参数,仿真的结果以数值和图像等方式展示。Simulink提供了种类繁多、功能强大的模块库。在基于模型设计的开发流程下,设计人员可以使用Simulink进行模型仿真和早期设计的验证,还可以生成C/C++、PLC等代码,甚至多种硬件平台的二进制可执行代码,直接应用于PC、MCU、DSP等平台,在软件开发中发挥着重要的作用。动态链接库(DynamicLinkLibrary或者Dynamic-linkLibrary,缩写为DLL)是一种二进制可执行文件,通过进程动态加载的方式执行。Simulink可以使用官方提供的编译模板文件TLC(TargetLanguageCompiler)直接把设计人员开发验证好的模型编译成动态链接库,供其他程序使用。Simulink模型使用官方提供的编译模板文件TLC生成动态链接库的时候,模型的输入、输出和变量都是和模型紧密耦合,扩展性极差。其他程序在调用动态链接库的时候,无法直接通过DLL文件了解调用接口的信息,包括输入、输出和变量的数量、数据类型等,必须打开原始模型文件才可以达到目的,协作效率低下。
技术实现思路
本专利技术的目的在于提供一种Simulink生成动态链接库的优化方法,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种Simulink生成动态链接库的优化方法,所述方法包括以下步骤:S1:首先提供模型编译模板文件links_export_shrlib_model_info.tlc、links_export_shrlib_def.tlc和links_ert_shrlib.tlc;S2:将S1中的三个文件放在同一个文件夹下,并且将文件夹的路径添加到Matlab的搜索路径列表里;S3:在模型编译之前,先设置模型的配置;在模型的配置对话栏,选择选项CodeGenerate,在Systemtargetfile下拉列表里选中links_ert_shrlib.tlc文件,并点击确定,关闭对话框;S4:在模型的配置对话框里,选择选项CodeGenerate,并选择子选项Interface,在Interface下拉列表里选择CAPI,并勾选signals、parameters、states和root-leaveI/O四个勾选框,在模型编译的时可生成模型接口静态信息;根据模型接口静态信息,获得模型变量列表、输入列表、输出列表、模块参数列表、模型参数列表、数据类型映射表、维数映射表和定点数映射表;S5:编译完成后,调用方通过动态链接库的导出符号获得模型接口静态信息和内存地址映射表;对于单个变量来说,可以通过内存地址索引在内存地址映射表获取变量的数据,可以通过数据类型索引在数据类型映射表中获取数据类型信息,可以通过维度索引在维度映射表中获取维度信息;对于单个参数来说,可以通过内存地址索引在内存地址映射表获取并设置参数的数据,可以通过数据类型索引在数据类型映射表中获取数据类型信息,可以通过维度索引在维度映射表中获取维度信息。作为本专利技术进一步的方案:所述links_ert_shrlib.tlc文件是在官方提供的动态链接库的模型编译模板TLC文件的基础上引用了S1中的links_export_shrlib_model_info.tlc,目的是生成c代码文件model_info.c;model_info.c代码文件定义了函数void**getDataAddrMap(),用来获取模型的内存地址映射表。作为本专利技术进一步的方案:所述links_ert_shrlib.tlc文件引用了S1中的的links_export_shrlib_def.tlc,目的是生成符号导出def文件,该文件基于官方def文件修改,添加了导出符号getDataAddrMap,这样调用动态链接库的程序可以看到这个符号并调用。作为本专利技术再进一步的方案:所述单个变量的信息包括内存地址索引,模块路径,名称,数据类型索引,维度索引;单个参数的信息包括内存地址索引,模块路径,名称,数据类型索引,维度索引。与现有技术相比,本专利技术的有益效果是:本专利技术通过此方法可以生成有模型接口信息的动态链接库文件,用户可以直接通过优化后的动态链接库文件获取丰富的模型接口信息,包括模型输入、输出和变量的数量、名称、数据类型和内存地址等,极大的方便了动态链接库的使用,提高了Simulink生成动态链接库的扩展性,提高了使用效率。附图说明图1为一种Simulink生成动态链接库的优化方法中模型接口静态信息结构示意图。图2为一种Simulink生成动态链接库的优化方法中实例模型生成动态链接库后被调用的流程图的结构示意图。图3为一种Simulink生成动态链接库的优化方法中使用流程图的结构示意图。具体实施方式下面结合具体实施方式对本专利的技术方案作进一步详细地说明。请参阅图1-3,一种Simulink生成动态链接库的优化方法,包括以下步骤:S1:首先提供模型编译模板文件links_export_shrlib_model_info.tlc、links_export_shrlib_def.tlc和links_ert_shrlib.tlc,其中links_ert_shrlib.tlc引用前面两个文件;S2:将S1中的三个文件放在同一个文件夹下,并且将文件夹的路径添加到Matlab的搜索路径列表里;S3:在模型编译之前,先设置模型的配置;在模型的配置对话栏,选择选项CodeGenerate,在Systemtargetfile下拉列表里可以看到本方法提供的links_ert_shrlib.tlc文件,选中并点击确定,关闭对话框;所述links_ert_shrlib.tlc文件是在官方提供的动态链接库的模型编译模板TLC文件的基础上引用了S1中的links_export_shrlib_model_info.tlc,目的是生成c代码文件model_info.c;model_info.c代码文件定义了函数void**getDataAddrMap(),用来获取模型的内存地址映射表;所述links_ert_shrlib.tlc文件引用了S1中的的links_export_shrlib_def.tlc,目的是生成符号导出def文件,该文件基于官方提供的def文件修改,添加了导出符号getDataAddrMap,这样调用动态链接库的程序可以看到这个符号并调用;S4:模型在编译之前,设置模型的配置;在模型的配置对话框里,选择选项CodeGenerate,并选择子选项Interface,在Int本文档来自技高网
...

【技术保护点】
1.一种Simulink生成动态链接库的优化方法,其特征在于,所述方法包括以下步骤:S1:首先提供模型编译模板文件links_export_shrlib_model_info.tlc、links_export_shrlib_def.tlc和links_ert_shrlib.tlc;S2:将S1中的三个文件放在同一个文件夹下,并且将文件夹的路径添加到Matlab的搜索路径列表里;S3:在模型编译之前,先设置模型的配置;在模型的配置对话栏,选择选项Code Generate,在System target file下拉列表里选中links_ert_shrlib.tlc文件,并点击确定,关闭对话框;S4:在模型的配置对话框里,选择选项Code Generate,并选择子选项Interface,在Interface下拉列表里选择CAPI,并勾选signals、parameters、states和root‑leave I/O四个勾选框,在模型编译的时可生成模型接口静态信息;根据模型接口静态信息,获得模型变量列表、输入列表、输出列表、模块参数列表、模型参数列表、数据类型映射表、维数映射表和定点数映射表;S5:编译完成后,调用方通过动态链接库的导出符号获得模型接口静态信息和内存地址映射表;对于单个变量来说,可以通过内存地址索引在内存地址映射表获取变量的数据,可以通过数据类型索引在数据类型映射表中获取数据类型信息,可以通过维度索引在维度映射表中获取维度信息;对于单个参数来说,可以通过内存地址索引在内存地址映射表获取并设置参数的数据,可以通过数据类型索引在数据类型映射表中获取数据类型信息,可以通过维度索引在维度映射表中获取维度信息。...

【技术特征摘要】
1.一种Simulink生成动态链接库的优化方法,其特征在于,所述方法包括以下步骤:S1:首先提供模型编译模板文件links_export_shrlib_model_info.tlc、links_export_shrlib_def.tlc和links_ert_shrlib.tlc;S2:将S1中的三个文件放在同一个文件夹下,并且将文件夹的路径添加到Matlab的搜索路径列表里;S3:在模型编译之前,先设置模型的配置;在模型的配置对话栏,选择选项CodeGenerate,在Systemtargetfile下拉列表里选中links_ert_shrlib.tlc文件,并点击确定,关闭对话框;S4:在模型的配置对话框里,选择选项CodeGenerate,并选择子选项Interface,在Interface下拉列表里选择CAPI,并勾选signals、parameters、states和root-leaveI/O四个勾选框,在模型编译的时可生成模型接口静态信息;根据模型接口静态信息,获得模型变量列表、输入列表、输出列表、模块参数列表、模型参数列表、数据类型映射表、维数映射表和定点数映射表;S5:编译完成后,调用方通过动态链接库的导出符号获得模型接口静态信息和内存地址映射表;对于单个变量来说,可以通过内存地址索引在内存地址映射表获取变量的数据,可以通过数据类型索引在数据类型映射表中获取数据类型信息,可以通过维度索引...

【专利技术属性】
技术研发人员:陈浩赵瑞永黄晓郭悦
申请(专利权)人:北京灵思创奇科技有限公司
类型:发明
国别省市:北京,11

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

1