Simulink中自适应的仿真和代码生成的控制方法

文档序号:6551699阅读:1826来源:国知局
Simulink中自适应的仿真和代码生成的控制方法
【专利摘要】本发明涉及一种Simulink中自适应的仿真和代码生成的控制方法,1)在MATLAB/Simulink中创建Simulink.Parameter类型或类似类型的参数;2)编写S函数;3)在Simulink模型文件中,创建S函数模块,将所述S函数链接至该模块;4)通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的各项参数信息并设置S函数模块的参数;5)编写TLC文件,所述TLC文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号确定参数的数据类型,可以生成不同的指定格式的自定义代码。本发明大大提高建模和生成代码的效率,具有很强的实用性。
【专利说明】Simu I ink中自适应的仿真和代码生成的控制方法

【技术领域】
[0001] 本发明涉及汽车电子嵌入式系统开发领域,特别涉及基于MATLAB/Simulink的自 动代码生成,具体涉及一种Simulink中自定义模块的数据类型自适应的仿真和代码生成 的控制方法。

【背景技术】
[0002] 在汽车电子领域,嵌入式系统的应用越来越广泛,它们大都使用微处理器作为控 制核心。采用基于模型的V型开发方式可以实现对控制器模型的建模仿真、快速原型、自动 代码生成、硬件在环仿真和系统应用。MATLAB/Simul ink是当今普遍使用的建模仿真和自动 代码生成工具,可以完成整个建模仿真、快速原型和自动代码生成的过程。Simulink提供了 大量的内置模块用于建模和代码生成,但是这些模块并不能完全满足建模和代码生成的需 要,因此需要创建自定义模块。
[0003] 对于汽车电子的嵌入式系统,其常量、变量和标定变量的数据类型可以是无符号 整型、有符号整型和浮点型。与之相对应,Simulink模型中的参数和信号的数据类型需要 支持任意属性的定点类型和浮点类型。但是自定义模块无法通过读取定点类型的参数得到 该参数的定点类型属性,这会导致自定义模块使用错误的数据类型输出通过该参数计算的 结果,使模块的输出错误的结果。通过为每种不同属性的定点类型参数编写特定的自定义 模块虽然可以解决该问题,但是会耗费极大的系统开发时间,并且当参数的定点类型属性 发生改变时,需要更换所有与之相关的自定义模块,导致建模过程非常繁琐,不能满足建模 和代码生成的需要。


【发明内容】

[0004] 本发明的目的是提供一种普遍适用于各种数据类型的Simulink中自适应的仿真 和代码生成的控制方法。
[0005] 本发明采用的技术方案: 一种Simulink中自适应的仿真和代码生成的控制方法, 1) 在MATLAB/Simulink中创建Simulink. Parameter类型或类似类型的参数,该参数使 用内置数据类型或者自定义的Simulink. NumericType或Simulink. AliasType类型的数据 类型; 2) 编写S函数,该S函数的参数至少包括所述Simulink. Parameter类型或类似类型的 参数、所述参数的数据类型名称、所述参数的数据类型编号,该S函数根据数据类型名称可 以确定参数的数据类型,所述S函数在输出仿真结果时根据参数的数据类型读取参数的数 值,并计算输出,将输出的数值按照输出的数据类型进行转换,输出正确的数值结果; 3) 在Simulink模型文件中,仓ij建S函数模块,将所述S函数链接至该模块; 4) 通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的 各项参数信息并设置S函数模块的参数; 5)编写TLC文件,该TLC文件的名称与所述S函数的名称相同,在生成代码时,所述TLC 文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号 确定参数的数据类型,可以生成不同的指定格式的自定义代码。
[0006] 本发明与现有技术相比其有益效果是:1、自定义模块可以自动识别任意数据类型 的参数的数据类型,并输出正确的仿真结果,不需要为每种不同的数据类型创建不同的自 定义模块,大大节约系统开发时间;2、参数的数据类型发生改变时,无需更换自定义模块, 无需修改模型,提高建模仿真效率;3、自动根据参数的数据类型生成所需的指定格式的自 定义代码,无需手动修改代码,提高代码生成效率;4、通过GUI工具提供的优化界面,能够 根据用户操作自动读取参数属性信息,并自动设置自定义模块的参数,操作方便,显示直 观,效率高;本发明由于使用了数据类型自适应的仿真和代码生成控制方法,可以大大提高 建模和生成代码的效率,具有很强的实用性,可以广泛地应用于各种仿真模型和嵌入式系 统中。

【专利附图】

【附图说明】
[0007] 图1为本发明的结构流程图。

【具体实施方式】
[0008] 下面结合附图和实施例对本发明进行详细的描述。
[0009] 如图1所示,一种Simulink中自适应的仿真和代码生成的控制方法, 1) 在MATLAB/Simulink中创建Simulink. Parameter类型或类似类型的参数,该参数使 用内置数据类型或者自定义的Simulink. NumericType或Simulink. AliasType类型的数据 类型; 2) 编写S函数,该S函数的参数至少包括所述Simulink. Parameter类型或类似类型的 参数、所述参数的数据类型名称、所述参数的数据类型编号,该S函数根据数据类型名称可 以确定参数的数据类型,所述S函数在输出仿真结果时根据参数的数据类型读取参数的数 值,并计算输出,将输出的数值按照输出的数据类型进行转换,输出正确的数值结果; 3) 在Simulink模型文件中,仓ij建S函数模块,将所述S函数链接至该模块; 4) 通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的 各项参数信息并设置S函数模块的参数; 5) 编写TLC文件,该TLC文件的名称与所述S函数的名称相同,在生成代码时,所述TLC 文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号 确定参数的数据类型,可以生成不同的指定格式的自定义代码。
[〇〇1〇] 具体内容如下:一种Simulink模型中数据类型自适应的仿真和代码生成的控制 方法,其在MATLAB/Simulink中创建Simulink. Parameter类型或类似类型的参数,该参数 的属性至少包括数值、数据类型;所述数据类型使用MATLAB内置的数据类型或者自定义的 Simulink. NumericType或Simulink. AliasType类型的数据类型,所述数据类型可以为任 意定点类型或浮点类型;编写S函数,该S函数的参数至少包括所述Simulink. Parameter 类型或类似类型的参数、所述参数的数据类型的名称、所述参数的数据类型的编号;所述S 函数根据所述数据类型的名称,确定所述数据类型的属性,并在Simulink中注册所述数据 类型;在Simulink模型文件中,创建S函数模块,将所述S函数链接至该S函数模块,使 该S函数模块可以运行所述S函数;通过⑶I工具,在该工具中输入所述参数名称,该工具 能够自动读取所述参数的各项属性,如参数名称、数据类型名称、数据类型编号,并自动设 置S函数模块的各项参数;编写TLC文件,该TLC文件的名称必须与S函数的名称相同;在 Simulink模型进行仿真运算的过程中,所述S函数在输出仿真结果时,根据所述参数的数 据类型读取参数的数值,并计算输出,根据输出的数据类型,将该输出的数值按照输出的数 据类型的进行转换,可以输出正确的数值结果;在生成代码时,所述TLC文件读取所述S函 数的参数信息,根据数据类型的编号确定参数的数据类型;所述TLC文件根据参数的数据 类型,以及其他与所述S函数相关的信息,如S函数输入的信息、输出的信息,可以生成不同 的指定格式的自定义代码。
【权利要求】
1. 一种Simulink中自适应的仿真和代码生成的控制方法,其特征是: 1) 在MATLAB/Simulink中创建Simulink. Parameter类型或类似类型的参数,该参数使 用内置数据类型或者自定义的Simulink. NumericType或Simulink. AliasType类型的数据 类型; 2) 编写S函数,该S函数的参数至少包括所述Simulink. Parameter类型或类似类型的 参数、所述参数的数据类型名称、所述参数的数据类型编号,该S函数根据数据类型名称可 以确定参数的数据类型,所述S函数在输出仿真结果时根据参数的数据类型读取参数的数 值,并计算输出,将输出的数值按照输出的数据类型进行转换,输出正确的数值结果; 3) 在Simulink模型文件中,仓ij建S函数模块,将所述S函数链接至该模块; 4) 通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的 各项参数信息并设置S函数模块的参数; 5) 编写TLC文件,该TLC文件的名称与所述S函数的名称相同,在生成代码时,所述TLC 文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号 确定参数的数据类型,可以生成不同的指定格式的自定义代码。
【文档编号】G06F17/50GK104091006SQ201410306518
【公开日】2014年10月8日 申请日期:2014年7月1日 优先权日:2014年7月1日
【发明者】褚全红, 方成, 张维彪, 范燕朝, 吴飚, 胡勇, 郭佳旭, 杨凤秋 申请人:中国北方发动机研究所(天津)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1