Simulink代码生成:AliasType配置

您所在的位置:网站首页 alias是什么牌子 Simulink代码生成:AliasType配置

Simulink代码生成:AliasType配置

2024-07-17 20:30| 来源: 网络整理| 查看: 265

AliasType也是Simulink数据字典中的一种对象。本文研究在数据字典中配置AliasType以及生成的代码。

文章目录 1 问题引入2 AliasType的建立和使用3 代码生成研究4 总结

1 问题引入

在Simulink中的数据类型有single,double,uint和int这些基本础类型,也可以给这些基本类型定义一个别名,这就是AliasType的概念。定义好AliasType以后,在模块中需要填写数据类型的时候,可以直接填我们定义的别名,Simulink就会认识这个别名所对应的基本类型。 在这里插入图片描述 那么为什么要引入AliasType的概念呢,这么麻烦还要去配置,直接用single这样的基础类型他不香吗?

原因是在实际项目开发的时候,模型往往非常大非常复杂,不像是上面举的例子这么简单。当后期发现有很多处地方的数据类型都要修改,如果都是以基类型表示的话,就要每一处都点开修改类型。如果建模的时候用了AliasType来表达数据类型,只需要一次修改AliasType背后对应的基础类型就行了。 在这里插入图片描述

2 AliasType的建立和使用

本章节用一个简单的例子描述如何建立AliasType以及如何使用。 1)新建一个模型、一个数据字典文件,并将两者关联。如何建立数据字典可以参考博主另一篇博客《Simulink代码生成:数据字典的建立、关联模型》。 在这里插入图片描述 在这里插入图片描述 2)在Model Explorer界面中,选中Design Data–>点击Add–>点击Simulink AliasType, 在这里插入图片描述 3)将新建的AliasType的名字改为Hz,博主习惯把AliasType取名为物理单位。 在这里插入图片描述 4)将右侧的Base type改为single,Header file改为Aliasdef.h,Description填上"Define Hz as single.",最后Apply保存。 在这里插入图片描述 5)保存sldd文件。 在这里插入图片描述 6)打开模型,把所有的Gain模块的输出类型都改成Hz,然后仿真一下。信号线上显示的类型就都变成Hz这个AliasType了。由于Inport的类型是自动的,所以也继承了Hz这个单位。 在这里插入图片描述

3 代码生成研究

1)Ctrl + B将模型生成代码。代码中输入输出就是用Hz这个类型定义的。 在这里插入图片描述 2)但是,生成的代码中并没有我们预先在AliasType中指定的Aliasdef.h,这又是怎么回事呢?事实上,由于之前的Data Scope保持默认的Auto,Simulink认为这个头文件是用户自己外部提供的,所以就不生成这个头文件了。 在这里插入图片描述 3)把Data Scope改成Exported再生成一次代码,就会发现生成了Aliasdef.h头文件,其中用typedef关键字把Hz定义为float。要注意一下,rtwtypes.h先把real32_T定义为float,Aliasdef.h再把Hz定义为real32_T。 在这里插入图片描述 在这里插入图片描述 4)如果把数据字典里面Hz的Base Type改成其他基本类型,比如uint16,再生成代码,Aliasdef.h头文件里面的typedef就会不同。可以自己试一试,这里不再赘述。

4 总结

AliasType的数据字典配置并不复杂,但是却非常实用,在建模的过程中会大量地使用到。

>>返回个人博客总目录



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3