文档

万博1manbetxSimulink.Bus.createMATLABStruct

创建MATLAB结构使用相同层次结构和属性作为总线信号

语法

structFromBus = 万博1manbetxSimulink.Bus.createMATLABStruct (busSource)
structFromBus = 万博1manbetxSimulink.Bus.createMATLABStruct (busSource partialValues)
structFromBus = 万博1manbetxSimulink.Bus.createMATLABStruct (busSource partialValues dim)
structsForBuses = 万博1manbetxSimulink.Bus.createMATLABStruct (portHandles)
structsForBuses = 万博1manbetxSimulink.Bus.createMATLABStruct (portHandles partialStructures)
structsForBuses = 万博1manbetxSimulink.Bus.createMATLABStruct (busObjectNames)

描述

例子

structFromBus= 万博1manbetxSimulink.Bus.createMATLABStruct (busSource)创建一个MATLAB®结构有相同的层次结构和属性(如类型和维度)中指定的公共汽车busSource。结果结构使用地面总线信号的值。

例子

structFromBus= 万博1manbetxSimulink.Bus.createMATLABStruct (busSource,partialValues)创建一个使用指定值的结构partialValues而相应的总线信号的值。

例子

structFromBus= 万博1manbetxSimulink.Bus.createMATLABStruct (busSource,partialValues,会变暗)创建一个指定的维度结构。创建一个结构数组的巴士,使用会变暗

例子

structsForBuses= 万博1manbetxSimulink.Bus.createMATLABStruct (portHandles)创建一个单元阵列结构总线信号端口,指定端口处理。使用地面值的结果单元阵列结构。使用这种语法来创建多个总线端口初始化结构。这个语法使用单独的相比提高了性能万博1manbetxSimulink.Bus.createMATLABStruct调用创建结构。

structsForBuses= 万博1manbetxSimulink.Bus.createMATLABStruct (portHandles,partialStructures)创建一个单元阵列的结构,使用指定的值partialStructures而不是地上的价值观。

structsForBuses= 万博1manbetxSimulink.Bus.createMATLABStruct (busObjectNames)创建一个单元阵列结构的基于指定总线对象。

例子

全部折叠

打开一个模型®万博1manbetx模型和模拟。

模型= fullfile (matlabroot,“例子”,“万博1manbetx模型”,“busic_example”);open_system(模型);sim卡(“busic_example”)

创建一个MATLAB®使用总线对象结构,busic_example模型加载。

mStruct = 万博1manbetxSimulink.Bus.createMATLABStruct (“高级”)
mStruct =结构体字段:答:[1 x1 struct] B: 0 C: [1 x1 struct]

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

mStruct.A。A1 = 3;mStruct.A
ans =结构体字段:A1: 3 A2: x1 int8 [5]

万博1manbetx模型结构中的其他字段设置为地面相应的总线元素的值。

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

创建一个MATLAB®结构的总线信号元素使用以外的数据类型。使用一个部分结构指定初始化值元素的一个子集。当您创建部分结构,匹配字段的数据类型的数据类型对应的元素。

打开一个模型®万博1manbetx模型。

模型= fullfile (matlabroot,“例子”,“万博1manbetx模型”,“busic_example”);open_system(模型);sim卡(“busic_example”)

C1信号元素Constant5块生产使用的数据类型int16

找到公车创造者的港口处理块端口产生总线信号。

ph = get_param (“busic_example / TopBus”,“PortHandles”);

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

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

创建一个完整的结构使用端口处理(ph值)TopBus块。覆盖地面的值C.C1B元素。

外港= ph.Outport;mStruct = 万博1manbetxSimulink.Bus.createMATLABStruct(外港,PartialstructForK);

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

打开一个模型®万博1manbetx模型和模拟。

模型= fullfile (matlabroot,“例子”,“万博1manbetx模型”,“busic_example”);open_system(模型);sim卡(“busic_example”)

创建一个部分结构,这是一个MATLAB®结构指定值的一个子集总线元素创建的总线信号TopBus块。

PartialStructForK =结构(“一个”结构(“A1”4),“B”3)
PartialStructForK =结构体字段:答:[1 x1 struct] B: 3

创建一个MATLAB使用总线对象结构(busic_example模型加载),部分结构,并为由此产生的结构维度。

structFromBus = 万博1manbetxSimulink.Bus.createMATLABStruct(“高级”、PartialStructForK [2 3])
structFromBus = 2 x3结构体数组字段:A B C

关闭系统。

close_system (“busic_example”)

打开一个模型万博1manbetx®模型和模拟。

open_system (docpath (fullfile (docroot,“工具箱”,“万博1manbetx模型”,“例子”,“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 = 万博1manbetxSimulink.Bus.createMATLABStruct([ph_1。外港ph_2.Outport])
mStruct = [1 x1 struct] [1 x1 struct]

关闭系统。

close_system (“ex_two_outports_create_struct”)

创建一个MATLAB结构基于端口连接到总线的信号。使用一个部分结构来指定值的一个子集总线的总线信号,连接到端口。

打开一个仿真软万博1manbetx件模型。

运行([docroot' /工具/模型/ 万博1manbetxug / /信号/ busic_example.mdl的例子]);sim卡(“busic_example”)

找到公车创造者的港口处理块端口产生总线信号。的外港你需要处理的处理。

ph = get_param (“busic_example / TopBus”,“PortHandles”)
ph =尺寸(143.0013 144.0013 145.0013):外港:34.0013支持:[]触发:[]状态:[]LConn: [] RConn: [] Ifaction: []

创建一个部分结构,这是一个MATLAB结构指定值的一个子集总线元素创建的总线信号TopBus块。

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

公共汽车元素由结构字段Top.BTop.A在公共汽车上都处于同一嵌套级。您可以使用这个部分结构覆盖地面的值B一个总线信号元素。

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

创建一个MATLAB结构通过端口处理(ph值)TopBus块。覆盖地面的值A.A1B总线的元素。

外港= ph.Outport;mStruct = 万博1manbetxSimulink.Bus.createMATLABStruct(外港,PartialstructForK)
mStruct = A: [1 x1 struct] B: 3 C: [1 x1 struct]

输入参数

全部折叠

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

  • 如果你使用会变暗参数,然后busSource,使用一个总线对象。

  • 总线信号的数组,您不能使用一个端口句柄。

  • 如果你使用一个总线对象名称,然后总线对象必须在MATLAB基础工作空间。总线的数据类型对象名称字符

  • 如果你使用一个端口处理,那么这个模型必须在使用之前成功编译createMATLABStruct方法。港口处理的数据类型

例子:

structFromBus = 万博1manbetxSimulink.Bus.createMATLABStruct (“myBusObject”);structForPortHandle = 万博1manbetxSimulink.Bus.createMATLABStruct (port_handle_1);

叶节点的一个子集的值产生的结构,指定为部分结构或空数组。每个字段中指定一个部分结构必须匹配相应的总线的数据属性元素。有关详细信息,请参见为初始化创建部分结构

使用一个空矩阵[]当你使用会变暗论点,希望使用地面值中的所有节点生成的结构。

数据类型:结构体

维度的结构,指定为一个向量。

每个维度的元素必须是一个整数,大于或等于1。如果您指定partialValues,然后每个维度元素会变暗必须大于或等于其相应的维度元素部分结构。

使用地面值,使用一个空矩阵([])partialValues

数据类型:

处理总线信号端口,指定为一个数组。如果你使用partialStructures参数,那么港口处理您所指定的数量portHandles的数量必须一样的部分结构。

数据类型:

部分结构指定为一个单元阵列。你指定的港口处理的数量portHandles的数量必须一样的部分结构。

数据类型:细胞

总线对象名称,指定为一个单元阵列。

数据类型:细胞

输出参数

全部折叠

总线信号等级和属性,作为一个MATLAB结构返回。

的尺寸structFromBus取决于输入参数:

  • 如果只指定busSource,尺寸是1。

  • 如果你指定partialValues,那么尺寸匹配的尺寸partialValues

  • 如果你指定会变暗参数,那么尺寸匹配的尺寸会变暗

结构有相同的层次结构和属性总线信号,作为单元阵列结构的数据返回相同层次结构和属性作为总线信号,指定端口处理数组。单元阵列的结构使用的总线信号值。

的尺寸StructsForBuses取决于输入参数:

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

  • 如果你指定partialStructures,那么尺寸匹配的尺寸partialStructures

提示

  • 如果你使用万博1manbetxSimulink.Bus.createMATLABStruct函数反复同样的模型(例如,在一个循环在脚本),可以提高性能,避免多个编译模型。提高速度,把模型在编译之前多次使用函数。例如,把vdp模型在编译,使用这个命令:

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

    在您创建MATLAB结构,终止编译。例如:

    vdp([]、[][],“术语”)
  • 您可以使用公共汽车编辑器来调用万博1manbetxSimulink.Bus.createMATLABStruct函数。使用这些方法之一:

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

    • 选择你想要的总线对象创建一个完整的MATLAB结构。然后,在工具栏上,单击创建一个MATLAB结构按钮()。

    然后您可以在MATLAB编辑器中编辑MATLAB结构和评估值的代码来创建或更新这个结构。

  • 您可以使用万博1manbetxSimulink.Bus.createMATLABStruct函数来指定初始值的参考模型的输出。详情,请参见“参考模型:总线输出设置初始值”部分详细的工作流程来管理数据和模型参考的例子。

介绍了R2010a

这个主题有帮助吗?