主要内容

在公共汽车阵列中集团非视频公交车

一个一系列公共汽车是一个数组,其元素是非宽恕的总线。

使用一系列总线:

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

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

  • 更改正在处理的总线数,而无需重新构建使用公共汽车数组的模型的部分。

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

  • 生成具有C结构数组的代码,您可以与使用结构数组的传统C代码集成。此方法简化了索引到Simulink的数组中万博1manbetx®计算,使用a为了循环索引结构。

例如,您可以模拟多通道系统,例如通信系统,作为总线数组。所有通道都具有相同的数据类型,每个通道都可以具有不同的值。

对于演示多种使用一系列公共汽车的方法的模型,请参阅型公交车阵列

公共汽车阵列的要求

所有公共汽车都必须进入一系列公共汽车必须:

  • 是非凡的

  • 指定相同万博1manbetxsimulink.bus.对象数据类型(即相同的名称,层次结构和总线元素属性)

  • 没有可变尺寸的信号或基于帧的信号

有关创建非Virtual Buses的信息,请参阅创建非视频巴士

有关块支持公共汽车阵列的信息,请参阅万博1manbetx便携式的块

从非视频巴士创建一系列公共汽车

您可以使用向量串联或矩阵连接块将非视频总线组分成一系列总线。万博1manbetxSimulink将非virtual总线视为标量。因此,无论总线元素数据类型如何,您都可以使用这些块中的任何一个。

使用其中一个块创建一系列总线:

  1. 定义一个万博1manbetxsimulink.bus.对象数据类型为您想要在公共汽车数组中进行组的所有非宽容总线。

  2. 在矢量连接或矩阵连接块的“块参数”对话框中,设置输入数量到您想要的公共汽车数量。块图标显示您指定的输入端口数。

  3. 将非视频总线连接到块输入。

块输出是总线数组。

打开并编译示例模型。要编译模型,请造型Simulink To万博1manbetxolStrip的选项卡,单击更新模型或者跑步。编译模型更新线型,您可以使用它来直观地识别公共汽车数组。

要演示如何从非维速总线创建公共汽车阵列,模型使用:

  • 公共汽车创造者块创建两个具有相同的非横向总线公共汽车对象数据类型(总线:BusObject.)。

  • 一种矢量连接,矩阵连接输入数量调成2在一系列总线中对两个非横向总线进行分组。

要演示如何从总线数组中选择元素,模型使用:

  • 一种选择器块基于指定的总线阵列提取其中一个总线指数在对话框中。由于公共汽车阵列是连接到其元素的索引的访问的连接信号,因此选择器块使用索引矢量(对话框)为了索引选项

  • 一种总线选择器块使用基于名称的访问来提取非维加总线的元素。

信号尺寸信息覆盖显示,总线数组包含两个总线。启用信号尺寸叠加,在Simulink Too万博1manbetxlStrip中,在调试选项卡,选择信息覆盖>信号尺寸

从Matlab结构创建一系列总线

您可以使用常量块紧凑地表示具有恒值总线元素的总线数组。该技术可以减少模型中的线路数和模型使用的变量数,尤其是当模型重复具有不同参数值的算法时。

在常量块上,指定:

  • 恒定价值作为Matlab结构的阵列或一个万博1manbetxSimulink.Parameter.指定MATLAB结构数组的对象

  • 输出数据类型作为一个万博1manbetxsimulink.bus.目的

当输出数据类型为a时,常量块仅支持MATL万博1manbetxAB®结构公共汽车目的。

定义名为的结构数组const_struct_array。撰写相同元素的每个结构:抵消获得, 和临界点

const_struct_array(1).offset = 197;const_struct_array(1).gain = 4.32;const_struct_array(1).thresholdold = 795.68;const_struct_array(2).offset = 158;const_struct_array(2).gain = 3.83;const_struct_array(2).threshold = 1039.77;

要为具有许多元素的总线层次结构创建一系列结构,请考虑使用使用万博1manbetxsimulink.bus.creatematlabstruct.功能。

定义相应的公共汽车对象数据类型。

万博1manbetxsimulink.bus.createobject(const_struct_array)

新的公共汽车对象使用默认名称SLBUS1.

打开并模拟示例模型,其中包含常量块恒定价值调成const_struct_array输出数据类型调成总线:SLBUS1.

Open_System('ArrayofbusesfromstructModel')sim('ArrayofbusesfromstructModel');

常量块的输出是一系列总线。

对于每个子系统块迭代地处理阵列中的每个非横向总线的常量值。子系统内容显示非传真总线而不是连接到端口的总线数组。

也可以看看

相关话题