Simulink代码生成之数据管理(上)

Simulink代码生成之数据管理(上)欢迎关注我的微信公众号/知乎专栏【新能源动力电池与BMS】,头条号:阿Q在江湖。所有文章资料会在公众号首发。

大家好,欢迎来到IT知识分享网。

欢迎关注我的微信公众号/知乎专栏【新能源动力电池与BMS】,头条号:阿Q在江湖。所有文章资料会在公众号首发。

本文同步视频教程:Simulink代码生成之数据管理(1)_视频教程

Simulink数据对象的管理可以选择两种方法,默认是Base Workspace(基本工作空间),另一种是Data Dictionary(数据字典)。今天讲工作空间的数据管理方法,数据字典留待下次有机会讲解(其实数据字典设置方式基本类似)

Simulink代码生成之数据管理(上)

如上图,在Simulink菜单栏选择File–>> Model Properties,选择Base Workspace(当然默认就是该项)。

选择的示例模型依然还是沿用上节的模型案例。链接 我们看看经过优化的数据管理设置后,生成的代码有何不同。


1. 信号线管理(Signal)

Simulink代码生成之数据管理(上)

Ø 对我们关注的三个信号线命名。分别是模块In1对应的输入信号线命名为a,模块In2对应的输入信号线命名为b,模块out1对应的输出信号线命名为out。

Ø 同时,在信号线处右键选择Properties,对话框见下图勾选或者直接在Model Explorer中统一勾选。这表明对应信号线名称与工作空间中的同名变量已绑定在一起,信号线属性可直接在工作空间修改。

Simulink代码生成之数据管理(上)

Simulink代码生成之数据管理(上)

以上是表明将信号线绑定到工作空间中,定义成数据对象进行管理。信号(Signal)是一个变量,是存储在MCU中的RAM中的。

Ø 还需要补充一点,如果不将信号线与工作空间的变量绑定,也是可以设置信号线的一些属性的。这时可以通过输入输出端口设置数据类型(DataType)、尺寸等属性。

Simulink代码生成之数据管理(上)

2. 工作空间定义信号

在工作空间输入a = Simulink.Signal, b = Simulink.Signal.

当然也可以直接在Model Explorer中定义。

Simulink代码生成之数据管理(上)

上图直接在Model Explorer中定义信号线,这里我们只改了三个参数,名称、数据类型(DataType)、存储类别(StorageClass)。这里注意:存储类别(StorageClass)选择ExportedGlobal,表示定义为全局变量,如果选择ImportedExtern,则表示该变量只是是声明引用外部变量。

3. 常量参数管理(Parameter)

Simulink代码生成之数据管理(上)

模型中,常量一般是存储在MCU中的ROM区域,它是可标定的参数。我们将其定义为k1和k2。

Simulink代码生成之数据管理(上)

选择Parameter,这里同样修改名称为k1和k2,目的也是为了与模块中k1和k2名称绑定。同时也将存储类别改为存储类别(StorageClass)选择ExportedGlobal。

4. 生成C代码

Simulink代码生成之数据管理(上)

变的可读性更强,与手写代码差别不大。同时数据对象Signal与Parameter的管理更加方便。

下面是设置前后代码生成的对比图:

Simulink代码生成之数据管理(上)

Simulink代码生成之数据管理(上)

总结

本文主要总结Simulink嵌入式代码生成中的数据管理的一般方法。主要有基于工作空间的方法和数据字典的管理方法。将Signal与Parameter数据对象进行统一的设置管理,不仅更加方便快捷,而且通过合理的设置,生成代码的可读性也更好。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/53460.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信