文件

金宝appsimulink.bus.creatematlabstruct.

包裹:金宝appsimulink.bus.

创建马铃薯使用相同的层次结构和属性作为总线信号的结构

描述

例子

STRUCTFROMBUS.= 金宝appsimulink.bus.creatematlabstruct(Bussource.创造一个matlab.®具有与指定的总线相同的层次结构和属性(例如类型和维度)的结构Bussource.。得到的结构使用总线信号的接地值。

例子

STRUCTFROMBUS.= 金宝appsimulink.bus.creatematlabstruct(Bussource.PartialValues.创建使用指定值的结构PartialValues.而不是总线信号的相应接地值。

例子

STRUCTFROMBUS.= 金宝appsimulink.bus.creatematlabstruct(Bussource.PartialValues.昏暗创建具有指定尺寸的结构。为一系列公共汽车创建一个结构,使用昏暗

例子

structsForBuses= 金宝appsimulink.bus.creatematlabstruct(portHandles使用端口处理指定的总线信号端口创建单元结构的单元格阵列。所得到的细胞阵列结构使用接地值。使用此语法为多个总线端口创建初始化结构。与使用单独相比,此语法提高了性能金宝appsimulink.bus.creatematlabstruct.呼叫创建结构。

structsForBuses= 金宝appsimulink.bus.creatematlabstruct(portHandles部分结构创建一个使用指定值的结构的单元格阵列部分结构而不是地面值。

structsForBuses= 金宝appsimulink.bus.creatematlabstruct(busObjectNames基于指定的总线对象创建一个单元格阵列。

例子

全部收缩

打开和模拟模型ex_bus_initial_conditions.

open_system ('ex_bus_initial_conditions')sim('ex_bus_initial_conditions');

使用总线对象创建MATLAB结构最佳,哪个模型ex_bus_initial_conditions.负载。

mstruct = 金宝appsimulink.bus.creatematlabstruct('最佳');

为该字段设置一个值m对应于总线元素的结构A1的公共汽车一种

mstruct.a.a1 = 3;mstruct.a.
ANS =带字段的结构:A1:3 A2:[5x1 INT8]

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

您可以使用m作为单位延迟块的初始条件结构。

为总线创建一个MATLAB结构,该总线的信号元素使用的数据类型不是双倍的。使用部分结构来指定元素子集的初始化值。创建部分结构时,使用相应元素的数据类型匹配字段的数据类型。

打开和模拟模型ex_bus_initial_conditions.

open_system ('ex_bus_initial_conditions')sim('ex_bus_initial_conditions');

C1.标有块的信号元素恒定5.生成使用数据类型int16

的总线创建器块端口的端口句柄最佳总线信号。

ph = get_param('ex_bus_initial_conditions / topbus'“PortHandles”);

创建一个部分结构,该结构指定由此创建的总线信号中的元素子集的值topbus.块。设置值的值C.C1.字段,则使用类型化表达式。将表达式中的数据类型与模型中信号元素的数据类型匹配(int16)。

PartialstructForK =结构('B'3,'C'结构('c1',int16(5)));

使用端口句柄创建完整结构(ph) 为了topbus.块。覆盖地面值为C.C1.B.元素。

出口= ph.outport;mstruct = 金宝appsimulink.bus.creatematlabstruct(出口,partialstructfork);

C.C1.在输出结构中继续使用该数据类型int16

打开和模拟模型ex_bus_initial_conditions.

open_system ('ex_bus_initial_conditions')sim('ex_bus_initial_conditions');

为由乘坐总线中的总线元素的子集创建部分结构topbus.块。

PartialStructForK =结构('一种'结构('a1',4),'B'3)
PartialStructFork =带有字段的结构:A:[1x1结构] 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');

找到总线创建器块的端口处理BUS1BUS2

ph_1 = get_param.......'ex_two_outports_create_struct / bus creator'“PortHandles”);ph_2 = get_param......'ex_two_outports_create_struct / bus creator1'“PortHandles”);

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

mstruct = 金宝appsimulink.bus.creatematlabstruct([ph_1.outport 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字段:Inport:[29.0027 35.0027 43.0027]出口:44.0027使能:[]触发:[]状态:[] LCON:[] RCONN:[] IFAction:[] RESET:[]

为由创建的总线信号创建部分结构topbus.块。您可以使用部分结构来指定总线元素子集的值。

PartialstructForK =结构('一种'结构('a1',4),'B'3)
PartialstructForK = struct with fields: A: [1x1 struct] B: 3

由结构字段表示的总线元素top.b.top.a.在总线层次结构中处于同一级别。您可以使用此部分结构来覆盖地面值B.一种总线信号元素。

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

使用端口句柄创建MATLAB结构(ph) 为了topbus.块。覆盖地面值为A.A1B.公共汽车元素。

出口= ph.outport;mstruct = 金宝appsimulink.bus.creatematlabstruct(出口,partialstructfork)
msstruct = struct with字段:a:[1x1 struct] b:3 c:[1x1 struct]

输入参数

全部收缩

表示用于创建MATLAB结构的总线信号的源,指定为总线对象或端口句柄的名称。

  • 如果你使用昏暗参数,然后是Bussource.,使用总线对象。

  • 对于一系列总线信号,您无法使用端口句柄。

  • 如果使用总线对象名称,则总线对象必须位于Matlab Base工作区中。总线对象名称的数据类型是字符

  • 如果使用端口句柄,则在使用之前必须成功编译模型creatematlabstruct.方法。端口句柄的数据类型是a双倍的

例子:structFromBus = 金宝appSimulink.Bus.createMATLABStruct(“myBusObject”)

例子:structforporthandle = 金宝appsimulink.bus.creatematlabstruct(port_handle_1)

结果结构的叶节点子集的值,指定为部分结构或空阵列。在部分结构中指定的每个字段必须符合相应总线元素的数据属性。有关详细信息,请参阅创建部分结构进行初始化

使用空矩阵[]当你使用的时候昏暗参数并希望在生成的结构中使用所有节点的接地值。

数据类型:塑造

得到的结构的尺寸,指定为载体。

每个维度元素必须是大于或等于1.如果您指定的整数PartialValues.,然后每个维度元素昏暗必须大于或等于其在部分结构中对应的维元素。

要使用地面值,请使用空矩阵([]) 为了PartialValues.

数据类型:双倍的

处理总线信号端口,指定为数组。如果你使用部分结构参数,然后是您指定的端口句柄的数量portHandles必须与部分结构的数量相同。

数据类型:双倍的

指定为单元阵列的部分结构。您指定的端口句柄数量portHandles必须与部分结构的数量相同。

数据类型:细胞

总线对象名称,指定为单元格数组。

数据类型:细胞

输出参数

全部收缩

总线信号层次结构和属性,作为MATLAB结构返回。

尺寸STRUCTFROMBUS.取决于输入参数:

  • 如果您只指定Bussource.,尺寸为1。

  • 如果您还指定了PartialValues.,然后尺寸匹配尺寸PartialValues.

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

具有与总线信号相同的层次结构和属性的结构,作为具有相同层次结构的数据结构的单元格阵列,属性作为与端口句柄数组指定的总线信号。单元结构阵列使用总线信号的接地值。

尺寸structsforbuses取决于输入参数:

  • 如果您只指定portHandles,尺寸为1。

  • 如果您还指定了部分结构,然后尺寸匹配尺寸部分结构

提示

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

    (sys, x0, str, ts) = vdp ([],[],[],' 编译”)

    创建MATLAB结构后,请终止编译。例如:

    VDP([],[],[],'术语')
  • 您可以使用总线编辑器来调用金宝appsimulink.bus.creatematlabstruct.功能。使用其中一种方法:

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

    • 选择要为其创建完整MATLAB结构的总线对象。然后,在工具栏中,单击创建MATLAB结构按钮()。

    然后,您可以在MATLAB编辑器中编辑MATLAB结构,并评估代码以在此结构中创建或更新值。

  • 你可以使用金宝appsimulink.bus.creatematlabstruct.功能指定引用模型的输出的初始值。有关详细信息,请参阅“引用模型:设置总线输出的初始值”部分用于管理使用模型引用的数据的详细工作流程的例子。

在R2010A介绍