首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Simulink Tutorial 3:结构体变量

Simulink Tutorial 3:结构体变量

作者头像
Defry
发布2022-04-19 17:13:47
发布2022-04-19 17:13:47
1.6K0
举报
文章被收录于专栏:Vehicle攻城狮Vehicle攻城狮

结构体是由不同数据类型的数据组成的集合体,声明形式如下:

Struct 结构体名

{

数据类型说明符1 成员名1;

数据类型说明符2 成员名2;

.

.

数据类型说明符n 成员名n;

};

仅仅声明结构体类型是不够的,要使用结构体数据,还要声明结构体变量,结构体类型变量的语法形式如下:

结构体名 结构体变量名;

结构体类型变量

如何使用Simulink实现如下代码?

typedef struct {

real_T x;

real_T y;

real_T m;

real_T n;

} Signals;

Signals z;

首先使用Bus Creator创建如下图所示的模型:

创建模型后需要在数据字典创建一名为Signals的Simulink Bus对象,以及与代码生成有关的参数和信号变量配置:

数据字典创建完所需的信号变量、参数等变量后,需要对Bus Creator属性进行一定的配置:

对相关变量关联Reslove后,即可生成所要的代码:

除了利用Bus Creator构造结构体变量,其实在数据字典中创建变量时,可通过设置变量的Storage Class类型也可实现结构体变量的创建,具体的小伙伴们可自己摸索下:

结构体类型变量的嵌套

如何利用Simulink实现如下结构体类型变量的嵌套?

typedef struct {

real_T x;

real_T y;

real_T m;

real_T n;

} Signal1;

typedef struct {

real_T h;

real_T f;

} Signal2;

typedef struct {

Signal1 S1;

Signal2 S2;

} Signal3;

通过Bus Creator的嵌套可将结构体嵌套实现,首先使用Bus Creator创建如下模型:

同样按照实例一在数据字典创建代码生成所必须的信号变量、参数等,此处主要着重说明三个Simulink Bus变量的设置:

然后在模型中对模型中的信号名与数据字典中的变量Reslove,其中三个Bus Creator的属性设置如下:

按照如上配置完成后将得到如下所示的代码:

结束语

Simulink Tutorials公众号文章已经推送三篇了,通过配置我们确实可得到可读性不错的嵌入式C代码,但有了函数接口,如何将其结合具体的嵌入系统实现呢?其实思路已经在楼主一篇公众号文章有体现了:

简聊Simulink功能开发和集成

下篇楼主将在一可运行FreeRTOS实时操作系统的嵌入式单片机上结合实例讲解如何将Simulink搭建的功能模型在嵌入式系统中实现,敬请期待!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Vehicle攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简聊Simulink功能开发和集成
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档