文档

将总线组合成总线数组

提示

万博1manbetx®提供几种将信号组合成复合信号的技术。有关技术的比较,请看混合信号技术

什么是公共汽车阵列?

非虚拟总线数组是一个元素为总线的数组。每个总线对象具有其总线元素的相同信号名称、层次结构和属性。

使用总线数组的一个例子是为多通道系统建模,例如通信系统。您可以使用相同的总线对象对所有通道建模,尽管每个通道可以有不同的值。

使用一组总线:

对于使用总线数组的模型的示例,请打开sldemo_bus_arrays模型。在这个例子中,非虚拟总线输入信号连接到向量连接矩阵连接创建总线信号数组的块。以下是更新后的图表:

该模型使用总线数组:

  • 一个赋值块,以便在数组中分配总线

  • 一个为每个子系统块,在数组中的每个总线上执行迭代处理

  • 一个内存块,输出前一个时间步骤输入的总线数组

总线阵列的好处

使用一个总线数组:

  • 简洁地表示结构化数据。

    • 减少模型的复杂性。

    • 通过集中处理多总线的算法减少维护。

  • 简化相同类型的多个总线的迭代处理,例如,通过使用带有总线阵列的for Each子系统。

  • 简化总线数量的更改,而不必重构模型的其余部分或在模型的多个位置进行更新。

  • 使用内置块,例如赋值选择器块来操作总线数组,就像操作任何其他类型的数组一样。使用一组总线避免了创建定制s函数来管理打包和解打包结构信号的需要。

  • 使用组合的总线数据跨子系统边界、模型引用边界,并进入或离开MATLAB函数块。

  • 保留所有的逻辑在Simulink模型中,而不是在C代万博1manbetx码和Simulink模型之间分割逻辑。这种方法支持集成的一致性和正万博1manbetx确性检查,在模型中维护元数据,并避免在两个不同的环境中管理模型组件。

  • 生成具有C结构数组的代码,可以将其与使用结构数组的遗留C代码集成。这种方法简化了Simulink计算的数组索引,使用万博1manbetx在索引结构上循环。

定义一个总线数组

有关可以组合到总线数组中的总线类型的信息,请参见公共汽车的需求

要定义一个总线数组,请使用连接块。的输入和输出总线的数组向量连接矩阵连接版本的连接块。

母线信号输入要求 输出
向量连接

向量,行向量,列向量

如果任何输入是行向量或列向量,则输出是行向量或列向量。

矩阵连接

任何维度的信号(标量、向量和矩阵)

对于低维度输入,假设尾随维度为1。

属性指定的维度上的连接连接尺寸参数。

请注意

不要使用Mux块或总线的创造者块定义总线数组。相反,使用一个总线的创造者块创建标量总线信号。

  1. 定义一个总线对象所有您想要组合到一个总线数组中的总线。有关定义总线对象的信息,请参见创建总线对象

    sldemo_bus_arrays模型定义了一个sldemo_bus_arrays_busobject总线创建器块将其用于输入总线信号(标量总线)以获取公共汽车阵列。

  2. 添加一个向量连接矩阵连接,并打开“块参数”对话框。

    sldemo_bus_arrays_busobject模型使用Vector Concatenate块,因为输入是标量。

  3. 设置输入数量参数设置为希望在总线数组中包含的总线数量。

    块图标显示您指定的输入端口的数量。

  4. 设置模式参数以匹配输入总线数据的类型。

    sldemo_bus_arrays模型时,输入总线数据是标量,因此模式设置是向量

  5. 如果你使用矩阵连接块,设置连接尺寸参数,以指定连接输入数组的输出维度。请输入以下值之一:

    • 1-垂直连接输入数组

    • 2-水平连接输入数组

    • 比2更高的维度——在输入上执行多维级联

  6. 连接到连接阻塞所有你想要在公共汽车数组中的公共汽车。

将常量信号分组到总线数组中

你可以用常数块以紧凑地将多个常值信号表示为一组总线。您可以使用这种技术来减少模型中信号线的数量和模型使用的变量的数量,特别是当模型使用不同的参数值重复一个算法时。

使用MATLAB的数组生成总线信号的常值数组®结构在一个常数块。块输出是一组总线,结构阵列中的每个字段为相应的信号元素提供仿真值。

也可以使用结构数组来指定价值财产的万博1manbetx仿真软件。参数对象中的参数对象,并使用常数块。

  1. 打开示例模型ex_constantbus_array

    的变量ParamBusconst_param_struct出现在基本工作区中。的变量const_param_struct包含一个结构,该结构的字段名与总线类型的元素相匹配ParamBus定义了。

  2. 更新图表以查看信号线宽度。

    输出常数块是一种类型的单标量总线ParamBus.结构变量const_param_struct指定块中的常量值。

  3. 在命令提示符处,通过复制结构创建一个包含两个结构的数组const_param_struct.通过索引数组中的各个结构来定制字段值。

    const_struct_array =...[const_param_struct const_param_struct];const_struct_array(2)。抵消= 158;const_struct_array(2)。获得= 3.83;const_struct_array(2)。阈值= 1039.77
    const_struct_array = 1x2带有字段的结构数组:偏移增益阈值

  4. 常数块对话框,设置恒定值const_struct_array

  5. 添加两个选择器块到模型,并连接常数块如图所示。

  6. 在“选择器”对话框中,设置指数1输入口大小2

  7. 在Selector1块对话框中,设置指数2输入口大小2

  8. 复制模型中的块算法,并将块连接起来,如图所示。

  9. 更新图。信号线的宽度和样式表示输出的信号常数街区是一排公共汽车。的选择器阻塞每个提取数组中的一个总线。

    算法的每个副本都使用变量中相应结构提供的常量值const_struct_array

若要为使用信号元素的大层次结构的总线创建结构数组,请考虑使用该函数万博1manbetxSimulink.Bus.createMATLABStruct.如果没有可以复制的标量结构,也可以使用此技术创建结构数组。

另请参阅

相关的话题

这个话题有用吗?