主要内容

金宝appSimulink.Bus.createMATLABStruct

创建MATLAB使用与总线相同的层次结构和属性的结构

描述

例子

结构体= 金宝appSimulink.Bus.createMATLABStruct (公共汽车创建一个或多个MATLAB®具有与指定总线相同的层次结构和属性的结构。结果结构使用总线的地面值。使用此语法为多个总线端口创建初始化结构。

例子

结构体= 金宝appSimulink.Bus.createMATLABStruct (公共汽车创建一个或多个使用指定值的结构。

例子

结构体= 金宝appSimulink.Bus.createMATLABStruct (公共汽车会变暗创建一个或多个具有指定尺寸的结构。要为总线数组创建结构,请包含会变暗论点。

结构体= 金宝appSimulink.Bus.createMATLABStruct (公共汽车会变暗范围属性指定的数据字典中创建一个或多个结构范围

例子

全部折叠

打开并模拟模型ex_bus_initial_conditions

open_system (“ex_bus_initial_conditions”) sim卡(“ex_bus_initial_conditions”);

使用总线对象创建一个MATLAB结构,哪种型号ex_bus_initial_conditions负载。

mStruct = 金宝appSimulink.Bus.createMATLABStruct(“高级”);

属性的字段设置一个值mStruct结构,该结构对应于总线元素A1的公共汽车一个

mStruct.A。A1 = 3;mStruct。一个
ans = struct with字段:A1: 3 A2: [5x1 int8]

金宝appSimulink将结构中的其他字段设置为相应总线元素的接地值。

你可以使用mStruct作为单元延迟块的初始条件结构。

为信号元素使用非数据类型的总线创建MATLAB结构.使用分部结构来指定元素子集的初始化值。在创建部分结构时,将字段的数据类型与相应元素的数据类型匹配。

打开并模拟模型ex_bus_initial_conditions

open_system (“ex_bus_initial_conditions”) sim卡(“ex_bus_initial_conditions”);

C1块标记的信号元素Constant5Produces使用数据类型int16

类型的总线创建器块端口的端口句柄总线信号。

Ph = get_param(“ex_bus_initial_conditions / TopBus”“PortHandles”);

类创建的总线信号中元素子集的值,创建一个局部结构TopBus块。属性的值C.C1字段,使用类型化表达式。将表达式中的数据类型与模型中的信号元素的数据类型匹配(int16).

PartialstructForK = struct(“B”3,“C”结构(“C1”int16 (5)));

通过使用端口句柄(ph值)TopBus块。属性的基本值C.C1而且B元素。

outPort = phph;mStruct = 金宝appSimulink.Bus.createMATLABStruct(outPort,PartialstructForK);

这个领域C.C1在输出结构中继续使用数据类型int16

打开并模拟模型ex_bus_initial_conditions

open_system (“ex_bus_initial_conditions”) sim卡(“ex_bus_initial_conditions”);

类创建的总线中的总线元素子集创建部分结构TopBus块。

PartialStructForK = struct(“一个”结构(“A1”4),“B”3)
PartialStructForK = struct with fields: A: [1x1 struct] B: 3

使用总线对象创建一个MATLAB结构,部分结构,以及结果结构的尺寸。

structFromBus = 金宝appSimulink.Bus.createMATLABStruct...“高级”、PartialStructForK [2 3])
structFromBus =带字段的2x3结构数组:A B C

要为多个总线端口创建初始化结构,请将端口句柄指定为参数金宝appSimulink.Bus.createMATLABStruct.生成的单元格结构数组使用基础值。

打开并模拟模型ex_two_outports_create_struct

open_system (“ex_two_outports_create_struct”) sim卡(“ex_two_outports_create_struct”);

找到总线创建者块的端口句柄Bus1而且Bus2

Ph_1 = get_param...“ex_two_outports_create_struct /总线的创造者”“PortHandles”);Ph_2 = get_param...“ex_two_outports_create_struct /总线Creator1”“PortHandles”);

使用端口句柄数组创建MATLAB®结构。

mStruct = 金宝appSimulink.Bus.createMATLABStruct([ph_1. bus .]外港ph_2.Outport])
mStruct = 2x1单元格数组{1x1 struct} {1x1 struct}

创建基于连接到总线信号的端口的MATLAB结构。使用分部结构为连接到端口的总线中的总线元素子集指定值。

打开并模拟模型ex_bus_initial_conditions

open_system (“ex_bus_initial_conditions”) sim卡(“ex_bus_initial_conditions”);

类型的总线创建器块端口的端口句柄总线信号。的外港手柄就是你需要的手柄。

Ph = get_param(“ex_bus_initial_conditions / TopBus”“PortHandles”
ph = struct with fields:输入:[31.0012 29.0012 41.0012]输出:42.0012启用:[]触发:[]状态:[]LConn: [] RConn: [] Ifaction:[]复位:[]

控件创建的总线信号创建一个局部结构TopBus块。您可以使用分部结构来指定总线元素子集的值。

PartialstructForK = struct(“一个”结构(“A1”4),“B”3)
PartialstructForK = struct with fields: A: [1x1 struct] B: 3

由结构字段表示的总线元素上面。B而且上面。一个在总线层次结构中处于同一级别。类的基本值可以使用此部分结构来重写B而且一个总线信号元件。

当从总线对象或总线端口创建结构时,可以使用部分结构作为可选参数。

通过使用端口句柄(ph值)TopBus块。属性的基本值A.A1而且B总线的元素。

outPort = phph;mStruct = 金宝appSimulink.Bus.createMATLABStruct(outPort,PartialstructForK)
mStruct = struct with fields: A: [1x1 struct] B: 3 C: [1x1 struct]

输入参数

全部折叠

总线信息的源,指定为公共汽车对象名称、端口句柄、单元格数组公共汽车对象名称或端口句柄数组。

  • 如果你使用公共汽车对象名称,然后公共汽车对象必须在MATLAB基本工作空间或模型使用的数据字典中。a的数据类型公共汽车对象名称为字符字符串

  • 如果使用端口句柄,则在使用此函数之前必须成功编译模型。端口句柄的数据类型为

  • 对于总线数组,不能使用端口句柄。

  • 如果你使用会变暗参数,然后是公共汽车参数,使用公共汽车对象的单元格数组公共汽车对象。

的单元格数组公共汽车对象名或端口句柄数组使用一个句柄创建多个结构金宝appSimulink.Bus.createMATLABStruct调用并提供比单独使用更好的性能金宝appSimulink.Bus.createMATLABStruct调用来创建结构。

例子:struct = 金宝appSimulink.Bus.createMATLABStruct('BusObject')

例子:structs = 金宝appSimulink.Bus.createMATLABStruct({'BusObject','BusObject1'})

例子:struct = 金宝appSimulink.Bus.createMATLABStruct(portthandle)

例子:structs = 金宝appSimulink.Bus.createMATLABStruct([portHandle,portHandle1])

数据类型:|字符|字符串|结构体|细胞

结果结构中元素子集的值,指定为空矩阵([]),部分结构,或单元格数组。单元格数组必须包含每个指定总线信息源的部分结构或空矩阵。

有关创建部分结构的信息,请参见为初始化创建部分结构

若要使用基础值,请使用空矩阵。

例子:struct = 金宝appSimulink.Bus.createMATLABStruct('BusObject',PartialStruct)

数据类型:结构体|细胞

结果结构的尺寸,指定为向量。

每个维度元素必须是大于等于1的整数。的部分结构参数时,每个维度元素必须大于或等于其部分结构中相应的维度元素。

例子:struct = 金宝appSimulink.Bus。PartialStruct createMATLABStruct (' BusObject ', 3 [2])

例子:结构= Simuli金宝appnk.Bus.createMATLABStruct({‘公车’,‘Bus1’,‘Bus2 '},{[],[],[]},{ 1、2、3})

数据类型:|细胞

数据字典,指定为金宝appSimulink.data.Dictionary对象。在使用此参数之前,请使用金宝appSimulink.data.Dictionary对象,例如金宝appSimulink.data.dictionary.create金宝appSimulink.data.dictionary.open函数。

如果范围为空时,该函数使用MATLAB基工作空间作为源公共汽车对象。

例子:结构= Simuli金宝appnk.Bus.createMATLABStruct({‘公车’,‘Bus1’,‘Bus2 '},{[],[],[]},{ 1, 1, 1}, dataDictionaryObject)

输出参数

全部折叠

具有与总线相同的信号层次结构和属性的结构,作为MATLAB结构或MATLAB结构的单元格数组返回。

结构尺寸取决于你指定的输入参数:

  • 如果只指定公共汽车参数,那么维数是1。

  • 如果还指定参数,则尺寸与的尺寸匹配

  • 如果您指定会变暗参数,则尺寸与的尺寸匹配会变暗

提示

  • 如果你使用金宝appSimulink.Bus.createMATLABStruct对于相同的模型重复执行函数(例如,在脚本中的循环中),您可以通过避免多个模型编译来提高性能。为了提高速度,在多次使用函数之前将模型放在compile中。例如,把vdp在编译中,使用这个命令:

    vdp ([],[],[],' 编译”)

    创建MATLAB结构后,使用以下命令终止编译:

    vdp ([],[],[],' 词”)
  • 您可以使用公共汽车编辑器调用金宝appSimulink.Bus.createMATLABStruct通过使用以下方法之一来实现函数:

    • 选择文件>创建MATLAB结构菜单项。

    • 选择公共汽车对象,您要为其创建完整的MATLAB结构。然后,在工具栏中单击创建MATLAB结构按钮

    然后,您可以在MATLAB编辑器中编辑MATLAB结构,并计算代码以创建或更新该结构中的值。

  • 您可以使用金宝appSimulink.Bus.createMATLABStruct函数指定引用模型输出的初始值。有关详细信息,请参见“参考模型:设置总线输出的初始值”部分使用模型参考管理数据的详细工作流的例子。

在R2010a中引入