Simulink生成代码

2023-12-20 15:34:14

建立工程

1、设置路径,弄个GenCode文件夹放工程,选择路径,打开simulink。

2、新建个空白模型

3、通过保存文件修改名字,里面的变量名会被这个文件名影响。保存后路径中会多一个slx文件

环境配置

?1、设置求解器,仿真时间10秒,定步长,离散,步长时间设置为0.01s

2、设置Code Generation,系统目标文件那里原本是grt.tlc的,改成ert.tlc,可以减少嵌入式C语言的代码量。

3、设置生成报告,代码成功生成后会自动打开生成报告。

搭建模型框架

1、打开Library Browser,选择控件来搭建模型。

2、搭建个简单的模型,连起来就行,需要分叉的话就用右键从原来的线上面拖出分支。

我们想生成个代码Out= in_x * in_y * in_z * 2.0;


?

数据管理

理解simulink数据管理,才能知道下面的信号和参数怎么管理。

三个层级:包、类、属性

包只有一个:Simulink Package

两个类:Signal信号、Parameter参数,分别有各自的属性

信号定义及关联

1、在信号线上定义信号名。

鼠标双击信号线,出现编辑框之后,写上信号线的名字in_x、in_y、in_z、out_num。

2、打开Link to Data Dictionary

3、新建个sldd文件

4、点击左下角的图标,选择Model Explorer

5、新建信号对象in_x、in_y、in_z、out_num,设置Storage Class。

6、关联信号对象和信号线。

右击信号线,选择Properties,然后选中Singal name must resolve to Simulink signal,成功设置之后线上的信号名前面会出现一个蓝色的三脚叉。

参数定义和关联

1、定义参数对象。

在Model Explorer里,添加Simulink Parameter,改名为gain_k,初始值为2,Storage Class为const Volatile。

2、关联参数

双击Gain模块,填入参数对象名gain_k

生成代码

快捷键Ctrl + B 会校验模型和生成代码,模型有硬伤就会报错,没硬伤就可以生成报告和代码

源代码路径在ert_rtw文件夹下面的.c文件,红框里面的就是我们要生成的代码了,跟预期一致。

文章来源:https://blog.csdn.net/qiu421/article/details/135101070
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。