Simulink自动生成代码

栏目: 编程工具 · 发布时间: 5年前

内容简介:一、建立系统框图为了方便起见,在这里我们实现一个的简单算法,我们在simulink中建立系统框图如下所示:
编辑推荐:
本文来自于csdn,本文通过实例进一步加深对代码自动生成的理解和应用,希望对您的学习有所帮助。

一、建立系统框图

为了方便起见,在这里我们实现一个的简单算法,我们在simulink中建立系统框图如下所示:

Simulink自动生成代码

在生成代码之前,给k输入一个数,在命令行输入k=3,如下所示:

Simulink自动生成代码

然后配置一些参数,ctrl+E调出Configuration Parameters,首先设置Solver标签页,如下所示:

Simulink自动生成代码

然后设置Code Generation标签页,如下所示:

Simulink自动生成代码

然后在Report子标签页,配置允许生成报告,如下所示:

Simulink自动生成代码

再按ok,如下:

Simulink自动生成代码

二、代码生成

当参数配置完成以后,我们就可以利用ctrl+B快捷键生成代码:

Simulink自动生成代码

不巧,产生错误了,这个只需要更改一下文件保存路径就好了,我们将红框中的路径更改为要保存文件的地址,我就放在桌面,如下所示:

Simulink自动生成代码

重新进入simulink,ctrl+B编译模型,可以看到算法的基本代码已经生成了,如下所示:

Simulink自动生成代码

但是可以看到,上面生成的代码比较复杂,无法直接使用到嵌入式系统中去,接下来我们使用Embedded Coder来生成接近我们使用的嵌入式代码。

三、代码优化

我们再次打开代码配置管理器(ctrl+E),按下图配置,将系统目标文件更改为ert.tlc,如下所示:

Simulink自动生成代码

再次生成的代码如下所示,可以看到代码文件数量明显减少,算法也慢慢接近我们想看到的:

Simulink自动生成代码

但是,生成的代码名称都是结构体,看起来略显复杂,能不能简单化呢?

接下来将使用“数据对象”进行数据管理,让代码看起来更简单化。

便于管理,首先将模型文件中所有模块选中,然后生成子模块,如下所示:

Simulink自动生成代码

子系统的建立,有两种方法,一种是将模型文件中所有模块选中,按ctrl+G快捷键;一种是将模型文件中所有模块选中,选择Diagram->Subsystem & Model Reference ->Create Subsystem from Selection,如下所示:

Simulink自动生成代码

在各个信号线上双击,添加信号名,x,y和z,如下:

Simulink自动生成代码

然后进入Model Explorer:

Simulink自动生成代码

Simulink自动生成代码

添加信号对象和信号名关联起来,添加MPT Signal的信号对象x,y,z,步骤如下:

Simulink自动生成代码

Simulink自动生成代码

如此重复三遍即可添加MPT Signal的信号对象x,y,z,如下所示:

Simulink自动生成代码

添加x,y,z信号对象后,需要关联信号名,关联信号名,在信号线上右键,点击Signal Properties…,点击Signal Properties…后,按下图勾选Signal name must resolve to Simulink signal object ,让信号名解析到信号对象上去 ,x,y,z都按如下设置,设置之后图变为右边所示,保存。

Simulink自动生成代码

我们再按下ctrl+B快捷键,生成的代码如下:

Simulink自动生成代码

注意,在MATLAB关闭后,工作空间里的东西就没了,为此我们必须保存workspace里的环境,在命令窗口输入save(‘my_dat_data.mat’),这样我们的工作空间就保存为了my_dat_data.mat文件,下次运行该模型之前,可以先load(‘my_dat_data.mat’)加载工作空间,恢复环境。还可以使用Simulink.saveVars(‘my_m_data.m’)保存,需要的时候,拖拽进命令行,则直接打开工作空间,如下:

Simulink自动生成代码

我们生成的算法,也许在很多地方被调用,这是就需要把我们的算法模块单独出来作为一个子系统,可以把算法单独放在一个文件中,首先选中算法子模块,在菜单栏点击Diagram->Block Parameter (Subsystem ):

Simulink自动生成代码

弹出如下菜单,设置我们需要的子模块名称及文件名称:

Simulink自动生成代码

再按下ctrl+B快捷键,子模块及其功能代码就生成了,如下:

Simulink自动生成代码


以上所述就是小编给大家介绍的《Simulink自动生成代码》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大数据时代小数据分析

大数据时代小数据分析

屈泽中 / 电子工业出版社 / 2015-7-1 / 69.00元

《大数据时代小数据分析》是一本大数据时代下进行小数据分析的入门级教材,通过数据分析的知识点,将各类分析工具进行串联和对比,例如:在进行线性规划的时候可以选择使用Excel或LINGO或Crystal Ball。工具的应用难易结合,让读者循序渐进地学习相关工具。JMP和Mintab用来分析数据,分析的结果使用Excel、LINGO、Crystal Ball来建立数据模型,最后使用Xcelsius来动......一起来看看 《大数据时代小数据分析》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具