Simulink生成代码

建立工程

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

设置代码打包为函数

每个subsystem里面的属性都可以设置为打包成一个函数,勾选这个Treat as atomic unit就会自动将里面的代码打包为一个函数。或者创建的时候就创建个atomic subsystem.

生成代码

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

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

  • 9
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃鱼的羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值