主要内容

将公共汽车与一系列公共汽车组合在一起

提示

金宝app®提供用于将信号组合成复合信号的几种技术。为了比较技术,见复合信号的类型

什么是一辆公共汽车?

一系列非宽恕总线是一个数组,其元素是公共汽车。每个公共汽车对象具有相同的信号名称,层次结构和其总线元素的属性。

使用总线阵列的示例是模拟多通道系统,例如通信系统。您可以使用相同的所有频道模拟所有频道公共汽车对象,但是每个通道都可以具有不同的值。

要使用一系列公共汽车:

有关使用一系列总线的模型的示例,请打开sldemo_bus_arrays.模型。在此示例中,非横向总线输入信号连接到a矢量加紧或者矩阵连接块创建一系列总线。以下是您更新后的图:

该模型使用总线数组:

  • 一个任务块,在数组中分配总线

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

  • 一种记忆块,从前一步中输出总线数组

一系列公共汽车的好处

使用一系列总线:

  • 紧凑地代表结构化数据。

    • 降低模型复杂性。

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

  • 例如,通过使用具有总线数组的每个子系统使用A相同类型的多个总线的迭代处理。

  • 简化了更改总线数量,而无需您必须重新构建模型的其余部分或在模型中的多个位置进行更新。

  • 使用内置块,如任务或者选择器块,以操纵公共汽车阵列,就像任何其他类型的阵列一样。使用一系列总线避免了需要创建自定义S函数以管理包装和解包结构信号。

  • 跨子系统边界,模型引用边界以及进出一个组合总线数据Matlab功能堵塞。

  • 在Simulink模型中保留所有逻辑,而不是在C代码金宝app和Simulink模型之间拆分逻辑。此方法支持集成的一致性和正确金宝app性检查,维护模型中的元数据,并避免在两个不同环境中管理模型组件的需要。

  • 生成具有C结构数组的代码,您可以与使用结构数组的传统C代码集成。此方法使用a简化了用于Simulink计算的数组索引金宝app为了循环索引结构。

定义一系列总线

有关您可以组合成一系列公共汽车的种类的信息,请参阅总线要求

要定义一系列总线,请使用a衔接堵塞。该表描述了每个总线输入要求和输出的总线矢量加紧矩阵连接版本的衔接堵塞。

堵塞 总线信号输入要求 输出
矢量加紧

向量,行向量或列向量

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

矩阵连接

任何维度的信号(标量,矢量和矩阵)

假设尾随尺寸为1,用于降低维度输入。

连接在您使用的维度上连接维度范围。

笔记

不要使用mux.块或A.公共汽车创造者块定义一系列总线。相反,使用a公共汽车创造者块创建标量总线。

  1. 定义公共汽车对象全部您想要结合到一系列公共汽车的公共汽车。有关定义的信息公共汽车对象,参见使用simulink.bus对象指定总线属性金宝app

    sldemo_bus_arrays.模型定义A.sldemo_bus_arrays_busobject.公共汽车对象,两个总线创建者阻止输入总线(标量巴士)对于一系列公共汽车。

  2. 添加A.矢量加紧或者矩阵连接块到模型并打开“块参数”对话框。

    sldemo_bus_arrays_busobject.模型使用矢量连接块,因为输入是标量。

  3. 设定输入数量参数是您想要在公共汽车数组中的总线数。

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

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

    在里面sldemo_bus_arrays.模型,输入总线数据是标量,所以模式设置是向量

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

    • 1- 垂直连接输入阵列

    • 2- 水平连接输入阵列

    • 比2更高的尺寸 - 对输入执行多维级联

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

将恒定信号分成一系列公共汽车

你可以使用一个持续的阻止将多个恒值信号紧凑,作为总线阵列。您可以使用此技术来减少模型中的信号线的数量和模型使用的变量的数量,尤其是当模型重复具有不同参数值的算法时。

要生成一个恒定值的公共汽车,请使用MATLAB数组®A中的结构持续的堵塞。块输出是一系列总线,结构阵列中的每个字段为相应信号元素提供模拟值。

您还可以使用一系列结构来指定价值A的财产金宝appSimulink.Parameter.对象,并使用参数对象持续的堵塞。

  1. 打开示例模型ex_constantbus_array.

    变量载宝学const_param_struct.出现在基础工作区中。变量const_param_struct.包含一个结构,其字段名称与总线类型的元素匹配载宝学定义。

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

    输出持续的块是单个标量级总线载宝学。结构变量const_param_struct.指定块中的常量值。

  3. 在命令提示符下,通过复制结构创建两个结构的数组const_param_struct.。通过索引到数组中的各个结构中自定义字段值。

    const_struct_array =.......[const_param_struct const_param_struct];const_struct_array(2).offset = 158;const_struct_array(2).gain = 3.83;const_struct_array(2).threshold = 1039.77
    const_struct_array = 1x2结构阵列,具有字段:偏移增益阈值

  4. 在里面持续的块对话框,设置恒定价值const_struct_array

  5. 加二选择器块到模型,并连接持续的块如图所示。

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

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

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

  9. 更新图表。信号线宽和风格表示输出持续的块是一系列公共汽车。这选择器块每个提取阵列中的一个总线。

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

为使用大型信号元素的总线结构创建一系列结构,请考虑使用该功能金宝appsimulink.bus.creatematlabstruct.。如果您没有可以复制的标量结构,您还可以使用此技术创建一个结构数组。

也可以看看

相关话题