Simulink Tutorial 3:结构体变量

Vehicle攻城狮

Simulink Tutorial 3:结构体变量:原文配图 1

The people who are crazy enough to think they can change the world are the …

Simulink Tutorial 3:结构体变量:原文配图 2

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

Struct 结构体名

{

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

.

.

数据类型说明符n 成员名n;};仅仅声明结构体类型是不够的,要使用结构体数据,还要声明结构体变量,结构体类型变量的语法形式如下:结构体名 结构体变量名;

Simulink Tutorial 3:结构体变量:原文配图 3

结构体类型变量

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

typedef struct {

real_T x;real_T y;real_T m;real_T n;} Signals;Signals z;首先使用Bus Creator创建如下图所示的模型:

Simulink Tutorial 3:结构体变量:原文配图 4

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

Simulink Tutorial 3:结构体变量:原文配图 5
Simulink Tutorial 3:结构体变量:原文配图 6
Simulink Tutorial 3:结构体变量:原文配图 7

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

Simulink Tutorial 3:结构体变量:原文配图 8

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

Simulink Tutorial 3:结构体变量:原文配图 9
Simulink Tutorial 3:结构体变量:原文配图 10
Simulink Tutorial 3:结构体变量:原文配图 11

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

Simulink Tutorial 3:结构体变量:原文配图 12
Simulink Tutorial 3:结构体变量:原文配图 13

结构体类型变量的嵌套

如何利用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 Tutorial 3:结构体变量:原文配图 14

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

Simulink Tutorial 3:结构体变量:原文配图 15
Simulink Tutorial 3:结构体变量:原文配图 16
Simulink Tutorial 3:结构体变量:原文配图 17

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

Simulink Tutorial 3:结构体变量:原文配图 18
Simulink Tutorial 3:结构体变量:原文配图 19
Simulink Tutorial 3:结构体变量:原文配图 20

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

Simulink Tutorial 3:结构体变量:原文配图 21
Simulink Tutorial 3:结构体变量:原文配图 22
Simulink Tutorial 3:结构体变量:原文配图 23
Simulink Tutorial 3:结构体变量:原文配图 24
← 返回文章列表