CN104091006A - Simulink中自适应的仿真和代码生成的控制方法 - Google Patents
Simulink中自适应的仿真和代码生成的控制方法 Download PDFInfo
- Publication number
- CN104091006A CN104091006A CN201410306518.8A CN201410306518A CN104091006A CN 104091006 A CN104091006 A CN 104091006A CN 201410306518 A CN201410306518 A CN 201410306518A CN 104091006 A CN104091006 A CN 104091006A
- Authority
- CN
- China
- Prior art keywords
- parameter
- function
- simulink
- data type
- type
- 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
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 true CN104091006A (zh) | 2014-10-08 |
CN104091006B 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) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461569A (zh) * | 2014-12-26 | 2015-03-25 | 东南大学 | 一种基于matlab的c/c++程序生成辅助方法 |
CN106649077A (zh) * | 2015-11-02 | 2017-05-10 | 中国船舶工业系统工程研究院 | 一种自动生成tps的方法 |
CN106933582A (zh) * | 2017-03-03 | 2017-07-07 | 浙江仕善汽车科技股份有限公司 | 一种提高汽车控制器开发软件代码执行效率的方法 |
CN110298062A (zh) * | 2019-05-08 | 2019-10-01 | 北京灵思创奇科技有限公司 | 一种Simulink的自动布局方法 |
CN111880796A (zh) * | 2020-07-30 | 2020-11-03 | 西安微电子技术研究所 | 一种多核模型架构实现方法及系统 |
CN115034069A (zh) * | 2022-06-20 | 2022-09-09 | 重庆邮电大学 | 一种由图像文件自动生成Simulink控制系统模型的快速建模方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1610905A (zh) * | 2001-12-28 | 2005-04-27 | 汤姆森许可贸易公司 | 针对数据类型依赖处理、自动检测数据类型的方法和装置 |
US20090070736A1 (en) * | 2004-08-17 | 2009-03-12 | Rogers Steven W | Configuring Variables |
CN102436187A (zh) * | 2010-11-26 | 2012-05-02 | 北京航空航天大学 | 一种基于电动静液作动系统的多学科建模方法 |
CN103135989A (zh) * | 2013-03-11 | 2013-06-05 | 北京经纬恒润科技有限公司 | 一种回调函数代码生成方法及装置 |
US8627272B1 (en) * | 2001-10-25 | 2014-01-07 | The Mathworks, Inc. | Traceability in a modeling environment |
-
2014
- 2014-07-01 CN CN201410306518.8A patent/CN104091006B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8627272B1 (en) * | 2001-10-25 | 2014-01-07 | The Mathworks, Inc. | Traceability in a modeling environment |
CN1610905A (zh) * | 2001-12-28 | 2005-04-27 | 汤姆森许可贸易公司 | 针对数据类型依赖处理、自动检测数据类型的方法和装置 |
US20090070736A1 (en) * | 2004-08-17 | 2009-03-12 | Rogers Steven W | Configuring Variables |
CN102436187A (zh) * | 2010-11-26 | 2012-05-02 | 北京航空航天大学 | 一种基于电动静液作动系统的多学科建模方法 |
CN103135989A (zh) * | 2013-03-11 | 2013-06-05 | 北京经纬恒润科技有限公司 | 一种回调函数代码生成方法及装置 |
Non-Patent Citations (3)
Title |
---|
于少伟: "智能车辆控制SIMULINK仿真中自定义模块的创建", 《山东交通科技》 * |
刘耀锋 等: "基于RTW的C代码生成及其在汽车ECU开发中的应用", 《机电一体化》 * |
宏: "《MATLAB 6.5及其在信号处理中的应用》", 31 October 2004, 清华大学出版社 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461569A (zh) * | 2014-12-26 | 2015-03-25 | 东南大学 | 一种基于matlab的c/c++程序生成辅助方法 |
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 | 浙江仕善汽车科技股份有限公司 | 一种提高汽车控制器开发软件代码执行效率的方法 |
CN110298062A (zh) * | 2019-05-08 | 2019-10-01 | 北京灵思创奇科技有限公司 | 一种Simulink的自动布局方法 |
CN110298062B (zh) * | 2019-05-08 | 2022-09-20 | 北京灵思创奇科技有限公司 | 一种Simulink的自动布局方法 |
CN111880796A (zh) * | 2020-07-30 | 2020-11-03 | 西安微电子技术研究所 | 一种多核模型架构实现方法及系统 |
CN111880796B (zh) * | 2020-07-30 | 2023-03-14 | 西安微电子技术研究所 | 一种多核模型架构实现方法及系统 |
CN115034069A (zh) * | 2022-06-20 | 2022-09-09 | 重庆邮电大学 | 一种由图像文件自动生成Simulink控制系统模型的快速建模方法 |
CN115034069B (zh) * | 2022-06-20 | 2024-08-16 | 重庆邮电大学 | 一种由图像文件自动生成Simulink控制系统模型的快速建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104091006B (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104091006A (zh) | Simulink中自适应的仿真和代码生成的控制方法 | |
CN106095376B (zh) | 一种快速组态监控画面的实现方法 | |
CN103838672A (zh) | 一种通用报表的自动化测试方法及装置 | |
CN104536400B (zh) | 核电站dcs仿真建模方法 | |
JP2012523644A (ja) | Cpiシミュレーション・システムのフローシートを有するスプレッドシート・ユーザ・インターフェースの利用 | |
CN101872176A (zh) | 测控软件生成方法及系统 | |
CN106681726B (zh) | Python模型转换为Modelica模型的方法 | |
DE60128895D1 (de) | Methode und schema zum anwenden von xml schemata | |
CN103593527B (zh) | 一种一键设置pcb板中不同类型布线规则bga的设计方法 | |
CN103309659A (zh) | 基于富客户端的用户界面动态生成方法及其生成装置 | |
CN104063495A (zh) | 表单扩展方法与表单扩展装置 | |
CN109558380B (zh) | 用于处理工业自动化环境中的工程对象的方法和系统 | |
CN110941934B (zh) | 一种fpga原型验证开发板分割仿真系统、方法、介质及终端 | |
CN104050333A (zh) | 航空电子系统分布式实时综合仿真系统 | |
CN103353902A (zh) | 一种电力系统二次设备仿真模型构建方法 | |
CN105095568A (zh) | 一种用于大型风机的快速建模方法 | |
CN104267966A (zh) | 软件的程序代码的生成方法及装置 | |
CN104375814A (zh) | 接口文档的生成方法及装置 | |
CN103810018A (zh) | 一种组件化、参数化仿真模型的设计方法 | |
CN104750535B (zh) | NAND Flash仿真控制器及控制调试方法 | |
CN106558346A (zh) | 一种基于raim构架的固态硬盘寿命计算的方法及装置 | |
CN106776275B (zh) | 一种基于分组复用的测试流程自动生成方法 | |
KR101460794B1 (ko) | 미디어 아트 콘텐츠 생성 방법 및 시스템 | |
CN101609614A (zh) | 一种半实物仿真系统的仿真平台及对目标系统进行在线调参的方法 | |
KR20020079320A (ko) | Emi 시뮬레이션용 반도체 집적 회로 전원 모델의 작성방법, 장치 및 프로그램 |
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 |