MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

时间:2024-03-19 22:36:47

1、solver设置:必须选择固定点解算器

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

2、optimization – parameters设置:

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试,参数将以常数的方式直接生成到代码逻辑中,不再以一个参数变量的形式生成。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试生成的代码会为了节省储存用量,而不为中间信号生成中间变量(如命名的信号线)

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

3、code generation设置:

系统目标文件ert.tlc文件是Embedded Coder 提供的能够生成专用于嵌入式系统C代码的系统目标文件。

系统目标文件grt.tlc,由simulink code生成代码

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试只生成代码,不对生成的代码进行编译链接

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试生成的代码打包,并需命名压缩包

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

4、code generation - report设置:

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试创建模型生成报告并自动打开。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试将会在代码生成报告中包含静态代码的参数指标。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试 报告中含有模型到代码、代码到模型的双向追踪。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

5、code generation - comments设置:

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试在生成的代码中添加注释。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试注释中有代码到模型的超链接。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

模型到代码方法:右击模块选择C/C++code—navigate to C codeMATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

6、code generation – code style:

括号生成频率、if-else与switch-case语句的选用、是否保留函数声明中的extern关键字、缩进方式、缩进字节等。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

7、code generation – code placement:生成文件的组织方式

compact简洁只包含model.c和model.h

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

8、code generation – data type replacement:

自定义类型名不仅是一个别名字符串,还必须在Base Workspace中定义其作为Simulink.AliasType类型对象才可以。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

9、code generation – interface:

默认不勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试生成的代码层次较少,执行效率略高。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试输出与状态更新生成到同一个函数model_step(),不勾选则分开生成model_update()和model_output()函数。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试可以为模型生成model_terminate()终止函数。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试生成代码时模型中的信号变量及状态变量将会结合在一个结构体变量中,不勾选信号变量与状态变量分别存储。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

code generation – interface – configure model functions:

整体模型入口函数接口自定义:

这时输入输出数据的存储类型要设置为auto。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

列表中后三项表示:

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

10、Verification设置:

是否使能代码中函数执行时间记录、代码覆盖度记录,以及是否创建SIL和PIL的模块等。在等效性测试细说。

 

11、Memory section设置:

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

12、子系统函数接口自定义

Main页面:勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试将子系统设置为原子子系统(此时子系统模块边框加粗显示)

Code generation页面:function package有以下四种选项,

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

可通过此页面设置子系统生成的函数名字、文件名字等。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

13、信号线自定义

外部信号线设置为simulink.signal:

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试structname相同时,多个信号线生成到同一结构体变量中。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试实现数据对象(m语言)与信号线的绑定,绑定了数据对象的信号线上有一个蓝色右向三叉标记。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

//此处input即为自定义命名,且in1与in2生成在同一结构体中

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

当storage class选择BitField时可以将一个完整的字节划分为不同的二进制位区,实现单个位域结构体的生成,节省存储空间。此时需要将模型的输入输出类型改为布尔型。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

外部信号线设置为mpt.signal:

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

子系统信号线:勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试显示单个信号的传播信号标签。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

14、数据对象的创建和设定Ctrl+H打开Model Explorer管理页面

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

15、命令窗口输入>> targetinstaller打开附加功能资源管理器,下载外设驱动库

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

下载之后,如何添加:

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

16、代码使用对象的数据管理,使生成的代码更简洁:

对于信号线的数据管理:给信号线命名x。

在workspace中添加与信号线同名x的MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试simulink signal。

勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试信号和信号对象之间关联起来。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

对参数的数据管理:需勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试,并添加MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试mpt parameter 命名为k

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

数据的保存:保存工作空间的数据到.m文件,也可以通过操作.m文件改变这些变量的属性。

在工作空间输入>> Simulink.saveVars('my_m_data.m')

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

17、代码生成的优化设置,通过向导选择合适的代码生成配置

先设置MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试,再点击MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

18、平台化代码设置:基于Variant Subsystem模块

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试内部有两个不同的子系统,可选择不同的工作方式

右击Variant Subsystem选择block parameters

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

并勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试,然后在interface设置如下

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

生成的代码中含有if-elseif的选择分支编程。

 

19、等效性测试:

法一:设置data-input使用外部输入,分别normal和SIL模式下运行,记录输出,输出差别不大,生成代码和模型是一致的,否则可能引入了一些错误。

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

法二:选择verification – create block为SIL,不勾选MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

设置好之后Ctrl+B,会生成一个子系统,把它copy到模型中并把输入输出连接,然后运行模型,如果这时两个输出差别不大则认为模型和生成代码是一致的。(输入越多越好,包含多种情况)

MATLAB/simulink生成代码的系统设置、数据对象的处理、代码等效性测试

 

 

 

By chaikeya 2020/4/22