主要内容

在MATLAB金宝app函数中访问Simulink总线信号

这个例子展示了如何使用MATLAB和statflow®结构在MATLAB®函数中读取和写入Simu金宝applink®总线信号。MATLAB结构使您能够将不同大小和类型的数据捆绑到单个变量中。你可以创建一个MATLAB结构:

  • 将相关数据存储在MATLAB函数的局部或持久变量中

  • 从本地状态流结构中读取或写入

  • 在输入或输出端口带有Simulin金宝appk总线信号的接口

MATLAB函数只支持非虚拟总线。金宝app有关更多信息,请参见复合信号的类型(金宝app模型)

在MATLAB函数中定义结构

在本例中,状态流图处理来自一个Simulink总线信号的数据,并将结果输出到另一个Simulink总线信号。金宝app总线的输入和输出信号都是由金宝app仿真软件。公共汽车(金宝app模型)对象BusObject.这些总线有四个字段:某人一个b,c.这个领域某人总线信号也是由金宝app仿真软件。公共汽车对象subbu.它有一个字段叫做避署

在图中,Simulink总线信号与s金宝apptatflow结构接口.这个函数sb2abc从输入结构中提取信息并将其存储在本地的statflow结构中localbus.然后图表通过结合局部结构的值和结构数组中的一个元素写入输出结构subBusArray.有关访问和修改statflow结构或statflow结构数组的内容的更多信息,请参见为状态流结构建立索引和赋值

MATLAB®函数sb2abc接受类型为statflow的结构subbu并返回类型为statflow的结构BusObject.函数分解字段的值避署从它的输入变成三个分量:一个向量,一个3 × 2矩阵和一个标量。函数将这些组件存储在本地的MATLAB中结构体它的字段和金宝app仿真软件。公共汽车对象BusObject.然后函数赋值给MATLAB结构体输出结构y

函数y = sb2abc (u)
从输入结构中提取数据
=双(u.ele (1:2, 1));B = uint8 (u.ele (: 2:3));C =双(u.ele (3,1));
创建本地结构
X =结构(“避署”int8 (0 (3)));Y =结构(“某人”, X,“一个”一个,“b”B“c”C);
给输出结构赋值
y = y;
结束

定义输入和输出结构

在一个MATLAB函数中,你可以通过定义函数的输入和输出结构来访问一个带有Simulink总线信号的本地statflow结构或接口:金宝app

  1. 在基本工作区中,创建金宝app仿真软件。公共汽车对象,该对象定义结构数据类型。

  2. 在“符号”窗格中,选择函数输入或输出。

  3. 在属性检查器中,设置类型财产总线:<对象名称>.对象的名称替换<对象名称>金宝app仿真软件。公共汽车对象,该对象定义statflow结构。

例如,在函数中sb2abc

  • 类型属性的输入结构u被指定为总线:subbu

  • 类型属性的输出结构y被指定为总线:BusObject

有关更多信息,请参见定义Stateflow结构

定义局部和持久结构变量

要将相关数据存储在MATLAB函数中的单个变量中,可以创建一个MATLAB结构体作为局部或持久变量。例如,函数sb2abc定义两个MATLAB局部结构来临时存储从输入结构中提取的数据u在写入输出结构之前y

  • X是一个标量结构体调用一个字段避署.该字段包含类型为3 × 3的矩阵int8的结构金宝app仿真软件。公共汽车对象subbu

  • Y是一个标量结构体有四个方面:某人是子结构类型吗subbu一个是二维向量的类型吗b是3 × 2矩阵类型吗uint8,c是类型标量吗.这些字段匹配的结构金宝app仿真软件。公共汽车对象BusObject

有关更多信息,请参见定义代码生成的标量结构(金宝app模型)

另请参阅

|(金宝app模型)

相关的话题