多语言展示
当前在线:970今日阅读:103今日分享:49

基于Simulink模型的MBD如何自动生成代码

MBD优势:(1)可执行且不断细化的需求(2)更加直观,易于交流(3)自动代码生成,可移植性强(4)贯穿整个开发过程的持续性测试与验证
方法/步骤一:模型配置
1

在模型工具栏中,选择Simulation ->> Configuration ParametersSolver面板Type:Fixed-step; Solver:discrete(no continuous states);Fixed-step size(fundamental sample time):设置为步长time_step(此变量由m文件赋值,此处可直接赋值,如0.01)。

2

Hardware Implementation面板在Device vender选择Infineon,在Device type处选择设备类型C16x,XC16x(此处以Infineon C166 系列为例)

3

3、 Real-Time Workshop面板设置System target file为ert.tlc(用于生成嵌入式代码)设置代码生成优先项(用于设置后期模型检测的目标)

4

Real-Time Workshop->>Report面板

5

Real-Time Workshop->>Interface面板

6

Real-Time Workshop->>SIL and PIL Verification面板用portable word sizes验证ERT产品级代码      Real-Time Workshop Embedded Coder软件提供了模型设置选项——Enable portable word sizes,支持处理器字长不同的主机-目标机系统的代码生成。选择Enable portable word sizes选项,则生成的代码中包含有条件的处理宏,使生成的源代码文件能用于SIL测试。

7

Real-Time Workshop->>Templates面板选中Generate an example main program, 将生成一个应用程序的模板范例。

8

Real-Time Workshop->>Code Placement面板将File packing format选为Compact(代码文件为紧凑类型)。

方法/步骤2代码生成
1

编译模型:针对整个模型:参数配置文件中“build”;针对部分模块:选中相应的模块,右键->>Real-Time Workshop->>Build Subsystem

2

设置常量属性Inlined:内嵌(直接用具体数值代替);ImportedExtern:外部赋值的常量(常量的形式)

3

代码生成在matlab的当前工作路径下生成了一个同名的文件夹—“模型+目标语言+rtw”

注意事项
1

1、软件要求 MATLAB/Simulink 包含Real-Time Workshop 和Real-Time Workshop Embedded Coder. RTW 支持的编译器 (Windows ) LCC ( Matlab 自带)、Microsoft Visual C/C++、Borland C/C++和Watcom C/C++. 注:一般在安装Matlab 时都已默认安装。2012版以下64位MATLAB在编译stateflow时有Bug,建议安装32位或高版本64位。

2

2、嵌入式代码生成器的要求和限制 RTW嵌入式代码生成器程序以离散时间运行,用户的模型必须使用如下Solver选项: Solver type: fixed-step Algorithm: discrete (no continuous states) 模型必须离散化 包括用于代码生成的和非代码生成的模块,ERT不支持的模块如下表。

推荐信息