CN104091006B - Simulink中自适应的仿真和代码生成的控制方法 - Google Patents
Simulink中自适应的仿真和代码生成的控制方法 Download PDFInfo
- Publication number
- CN104091006B CN104091006B CN201410306518.8A CN201410306518A CN104091006B CN 104091006 B CN104091006 B CN 104091006B CN 201410306518 A CN201410306518 A CN 201410306518A CN 104091006 B CN104091006 B CN 104091006B
- Authority
- CN
- China
- Prior art keywords
- function
- simulink
- parameter
- data type
- parameters
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种Simulink中自适应的仿真和代码生成的控制方法,1)在MATLAB/Simulink中创建Simulink.Parameter类型或类似类型的参数;2)编写S函数;3)在Simulink模型文件中,创建S函数模块,将所述S函数链接至该模块;4)通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的各项参数信息并设置S函数模块的参数;5)编写TLC文件,所述TLC文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号确定参数的数据类型,可以生成不同的指定格式的自定义代码。本发明大大提高建模和生成代码的效率,具有很强的实用性。
Description
技术领域
本发明涉及汽车电子嵌入式系统开发领域,特别涉及基于MATLAB/Simulink的自动代码生成,具体涉及一种Simulink中自定义模块的数据类型自适应的仿真和代码生成的控制方法。
背景技术
在汽车电子领域,嵌入式系统的应用越来越广泛,它们大都使用微处理器作为控制核心。采用基于模型的V 型开发方式可以实现对控制器模型的建模仿真、快速原型、自动代码生成、硬件在环仿真和系统应用。MATLAB/Simulink是当今普遍使用的建模仿真和自动代码生成工具,可以完成整个建模仿真、快速原型和自动代码生成的过程。Simulink提供了大量的内置模块用于建模和代码生成,但是这些模块并不能完全满足建模和代码生成的需要,因此需要创建自定义模块。
对于汽车电子的嵌入式系统,其常量、变量和标定变量的数据类型可以是无符号整型、有符号整型和浮点型。与之相对应,Simulink模型中的参数和信号的数据类型需要支持任意属性的定点类型和浮点类型。但是自定义模块无法通过读取定点类型的参数得到该参数的定点类型属性,这会导致自定义模块使用错误的数据类型输出通过该参数计算的结果,使模块的输出错误的结果。通过为每种不同属性的定点类型参数编写特定的自定义模块虽然可以解决该问题,但是会耗费极大的系统开发时间,并且当参数的定点类型属性发生改变时,需要更换所有与之相关的自定义模块,导致建模过程非常繁琐,不能满足建模和代码生成的需要。
发明内容
本发明的目的是提供一种普遍适用于各种数据类型的Simulink中自适应的仿真和代码生成的控制方法。
本发明采用的技术方案:
一种Simulink中自适应的仿真和代码生成的控制方法,
1)在MATLAB/Simulink中创建Simulink.Parameter类型或类似类型的参数,该参数使用内置数据类型或者自定义的Simulink.NumericType或Simulink.AliasType类型的数据类型;
2)编写S函数,该S函数的参数至少包括所述Simulink.Parameter类型或类似类型的参数、所述参数的数据类型名称、所述参数的数据类型编号,该S函数根据数据类型名称可以确定参数的数据类型,所述S函数在输出仿真结果时根据参数的数据类型读取参数的数值,并计算输出,将输出的数值按照输出的数据类型进行转换,输出正确的数值结果;
3)在Simulink模型文件中,创建S函数模块,将所述S函数链接至该模块;
4)通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的各项参数信息并设置S函数模块的参数;
5)编写TLC文件,该TLC文件的名称与所述S函数的名称相同,在生成代码时,所述TLC文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号确定参数的数据类型,可以生成不同的指定格式的自定义代码。
本发明与现有技术相比其有益效果是:1、自定义模块可以自动识别任意数据类型的参数的数据类型,并输出正确的仿真结果,不需要为每种不同的数据类型创建不同的自定义模块,大大节约系统开发时间;2、参数的数据类型发生改变时,无需更换自定义模块,无需修改模型,提高建模仿真效率;3、自动根据参数的数据类型生成所需的指定格式的自定义代码,无需手动修改代码,提高代码生成效率;4、通过GUI工具提供的优化界面,能够根据用户操作自动读取参数属性信息,并自动设置自定义模块的参数,操作方便,显示直观,效率高;本发明由于使用了数据类型自适应的仿真和代码生成控制方法,可以大大提高建模和生成代码的效率,具有很强的实用性,可以广泛地应用于各种仿真模型和嵌入式系统中。
附图说明
图1为本发明的结构流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
如图1所示,一种Simulink中自适应的仿真和代码生成的控制方法,
1)在MATLAB/Simulink中创建Simulink.Parameter类型或类似类型的参数,该参数使用内置数据类型或者自定义的Simulink.NumericType或Simulink.AliasType类型的数据类型;
2)编写S函数,该S函数的参数至少包括所述Simulink.Parameter类型或类似类型的参数、所述参数的数据类型名称、所述参数的数据类型编号,该S函数根据数据类型名称可以确定参数的数据类型,所述S函数在输出仿真结果时根据参数的数据类型读取参数的数值,并计算输出,将输出的数值按照输出的数据类型进行转换,输出正确的数值结果;
3)在Simulink模型文件中,创建S函数模块,将所述S函数链接至该模块;
4)通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的各项参数信息并设置S函数模块的参数;
5)编写TLC文件,该TLC文件的名称与所述S函数的名称相同,在生成代码时,所述TLC文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号确定参数的数据类型,可以生成不同的指定格式的自定义代码。
具体内容如下 :一种Simulink模型中数据类型自适应的仿真和代码生成的控制方法,其在MATLAB/Simulink中创建Simulink.Parameter类型或类似类型的参数,该参数的属性至少包括数值、数据类型;所述数据类型使用MATLAB内置的数据类型或者自定义的Simulink.NumericType或Simulink.AliasType类型的数据类型,所述数据类型可以为任意定点类型或浮点类型;编写S函数,该S函数的参数至少包括所述Simulink.Parameter类型或类似类型的参数、所述参数的数据类型的名称、所述参数的数据类型的编号;所述S函数根据所述数据类型的名称,确定所述数据类型的属性,并在Simulink中注册所述数据类型;在Simulink模型文件中,创建S函数模块,将所述S函数链接至该S函数模块,使该S函数模块可以运行所述S函数;通过GUI工具,在该工具中输入所述参数名称,该工具能够自动读取所述参数的各项属性,如参数名称、数据类型名称、数据类型编号,并自动设置S函数模块的各项参数;编写TLC文件,该TLC文件的名称必须与S函数的名称相同;在Simulink模型进行仿真运算的过程中,所述S函数在输出仿真结果时,根据所述参数的数据类型读取参数的数值,并计算输出,根据输出的数据类型,将该输出的数值按照输出的数据类型的进行转换,可以输出正确的数值结果;在生成代码时,所述TLC文件读取所述S函数的参数信息,根据数据类型的编号确定参数的数据类型;所述TLC文件根据参数的数据类型,以及其他与所述S函数相关的信息,如S函数输入的信息、输出的信息,可以生成不同的指定格式的自定义代码。
Claims (1)
1.一种Simulink中自适应的仿真和代码生成的控制方法,其特征是:
1)在MATLAB/Simulink中创建Simulink.Parameter类型或类似类型的参数,该参数使用内置数据类型或者自定义的Simulink.NumericType或Simulink.AliasType类型的数据类型;
2)编写S函数,该S函数的参数至少包括所述Simulink.Parameter类型或类似类型的参数、所述参数的数据类型名称、所述参数的数据类型编号,该S函数根据数据类型名称可以确定参数的数据类型,所述S函数在输出仿真结果时根据参数的数据类型读取参数的数值,并计算输出,将输出的数值按照输出的数据类型进行转换,输出正确的数值结果;
3)在Simulink模型文件中,创建S函数模块,将所述S函数链接至该模块;
4)通过GUI工具,在该工具中输入所述参数的名称,该工具自动读取所述S函数所需的各项参数信息并设置S函数模块的参数;
5)编写TLC文件,该TLC文件的名称与所述S函数的名称相同,在生成代码时,所述TLC文件读取所述S函数的参数信息,以及其他与所述S函数相关的信息,根据数据类型的编号确定参数的数据类型,可以生成不同的指定格式的自定义代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306518.8A CN104091006B (zh) | 2014-07-01 | 2014-07-01 | Simulink中自适应的仿真和代码生成的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306518.8A CN104091006B (zh) | 2014-07-01 | 2014-07-01 | Simulink中自适应的仿真和代码生成的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104091006A CN104091006A (zh) | 2014-10-08 |
CN104091006B true CN104091006B (zh) | 2020-05-26 |
Family
ID=51638722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410306518.8A Active CN104091006B (zh) | 2014-07-01 | 2014-07-01 | Simulink中自适应的仿真和代码生成的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104091006B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461569B (zh) * | 2014-12-26 | 2018-02-27 | 东南大学 | 一种基于matlab的c/c++程序生成辅助方法 |
CN106649077A (zh) * | 2015-11-02 | 2017-05-10 | 中国船舶工业系统工程研究院 | 一种自动生成tps的方法 |
CN106933582A (zh) * | 2017-03-03 | 2017-07-07 | 浙江仕善汽车科技股份有限公司 | 一种提高汽车控制器开发软件代码执行效率的方法 |
CN110298062B (zh) * | 2019-05-08 | 2022-09-20 | 北京灵思创奇科技有限公司 | 一种Simulink的自动布局方法 |
CN111880796B (zh) * | 2020-07-30 | 2023-03-14 | 西安微电子技术研究所 | 一种多核模型架构实现方法及系统 |
CN115034069B (zh) * | 2022-06-20 | 2024-08-16 | 重庆邮电大学 | 一种由图像文件自动生成Simulink控制系统模型的快速建模方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1610905A (zh) * | 2001-12-28 | 2005-04-27 | 汤姆森许可贸易公司 | 针对数据类型依赖处理、自动检测数据类型的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8104017B2 (en) * | 2001-10-25 | 2012-01-24 | The Mathworks, Inc. | Traceability in a modeling environment |
US7593944B2 (en) * | 2004-08-17 | 2009-09-22 | National Instruments Corporation | Variable abstraction |
CN102436187A (zh) * | 2010-11-26 | 2012-05-02 | 北京航空航天大学 | 一种基于电动静液作动系统的多学科建模方法 |
CN103135989B (zh) * | 2013-03-11 | 2016-02-10 | 北京经纬恒润科技有限公司 | 一种回调函数代码生成方法及装置 |
-
2014
- 2014-07-01 CN CN201410306518.8A patent/CN104091006B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1610905A (zh) * | 2001-12-28 | 2005-04-27 | 汤姆森许可贸易公司 | 针对数据类型依赖处理、自动检测数据类型的方法和装置 |
Non-Patent Citations (1)
Title |
---|
智能车辆控制SIMULINK仿真中自定义模块的创建;于少伟;《山东交通科技》;20090425;第52-55页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104091006A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104091006B (zh) | Simulink中自适应的仿真和代码生成的控制方法 | |
EP3252594A1 (en) | System and methods for generating code from executable models with floating point data | |
CN106681726A (zh) | Python模型转换为Modelica模型的方法 | |
CN115952760B (zh) | 一种数模电路仿真方法、装置、设备及计算机存储介质 | |
CN106557079A (zh) | 一种组态方法及装置 | |
CN102566303B (zh) | Barco光绘机自动嵌入光绘参数的方法 | |
CN105279081A (zh) | 汽车控制器开发软件的在环测试方法 | |
CN113687814A (zh) | 基于autosar架构的模型框架和接口文件的自动化实现方法 | |
CN103810018A (zh) | 一种组件化、参数化仿真模型的设计方法 | |
CN103544358A (zh) | 车辆的制动性能的计算方法和装置 | |
KR20150030810A (ko) | 경량모델에 pmi를 생성하는 방법 | |
CN103559350A (zh) | 车辆的载荷文件处理方法和装置 | |
CN109086044B (zh) | 一种基于组件的仿真模型开发方法 | |
CN101908081B (zh) | 电路辅助设计方法及系统 | |
US7286975B2 (en) | Method for developing embedded code for system simulations and for use in a HMI | |
KR101460794B1 (ko) | 미디어 아트 콘텐츠 생성 방법 및 시스템 | |
CN110968938B (zh) | 一种用于电磁暂态仿真的理想开关过程分析方法及系统 | |
CN103942380B (zh) | 图形化控制系统设计与仿真工具 | |
WO2014204635A1 (en) | Cyber-physical systems programmable logic controller | |
CN108062223B (zh) | 一种Simulink模型之间建立连接关系的方法及装置 | |
CN111353335A (zh) | 一种将控制层逻辑图转换为仿真系统组态文件的方法 | |
CN115906491A (zh) | 一种从SysML模型到结构模型的转换方法及系统 | |
CN103257861B (zh) | 一种自动生成bios代码的方法及装置 | |
CN113076622B (zh) | Fmu仿真模型规范性分析与校验系统及方法 | |
JP6905296B1 (ja) | 制御対象の動作を模擬する計算装置、計算装置において状態方程式を解く演算の実行方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |