复合信号的类型

为了降低模型中的视觉复杂性,您可以将信号组合成复合信号。称为复合信号包含的信号元素.元素保留它们各自的身份,这使您可以从复合信号中提取它们。

您可以按名称或索引访问复合信号元素,具体取决于复合信号类型。

  • 基于名称的复合信号允许信号层次结构。它们通常被称为公共汽车

  • 无论您是否在阶段创建,索引的复合信号都是平的。它们要求所有输入信号具有相同的数据类型。

当您将信号分组为复合信号时,您可以决定它们是否影响模拟和代码生成。

  • 一个虚拟复合信号通过将两条或多条信号线组合成一条线,简化了模型的视觉外观。它不会在任何功能意义上对信号进行分组,因此不会影响模拟或代码生成。通过直接访问元素,虚拟合成信号在模拟和生成的代码中比非虚拟合成信号执行得更快。

  • 一个nonvirtual复合信号在视觉上和功能上对信号进行分组,影响仿真和代码生成。

模型可以使用这些复合信号类型的组合。

复合信号特性 基于名称的访问 基于索引的访问方法
视觉分组

虚拟总线

Mux信号

功能分组

非宽恕巴士

连接信号

您可以在编译或模拟模型后通过其线路样式识别复合信号类型。

线条样式 复合信号类型
虚拟总线
Nonvirtual总线
非标量信号时Nonscalar信号启用信息覆盖(包括基于索引的复合信号)
基于索引的复合信号,包含非virtual总线

虚拟总线

此模型显示包含信号的虚拟总线一个b, 和c

公共汽车创造者块在子系统或模型中创建总线。总线选择器块提取总线的指定元素。

该模型显示了通过子系统边界的等效虚拟总线。

公交车元素块在子系统或模型接口上创建总线。在公共汽车元素块提取子系统或模型接口上总线的指定元素。

您可以使用虚拟总线:

  • 包含具有不同样本速率的总线元素。

  • 交叉模型参考边界。

要指定和验证虚拟总线的属性,可以指定金宝appsimulink.bus.对象。

要创建虚拟总线,请参阅将信号线组分为虚拟总线

非宽恕巴士

该模型显示了包含信号的非横向总线一个b, 和c

公共汽车创造者块在子系统或模型中创建总线。总线选择器块提取总线的指定元素。

你可以使用非虚拟总线:

  • 将总线数据作为生成的C代码中的结构。

  • 建造一列公共汽车。

  • 通过S函数与外部代码接口。

  • 总线数据交叉Matlab功能块或Stateflow®图表边界。

  • 显示和日志总线与范围块。

非虚拟总线的所有元素必须使用相同的示例时间,即使关联的公共汽车Object指定Inherited Sample时间。你可以使用一个率转换块来改变单个信号或总线中所有信号的采样时间。

一个金宝appsimulink.bus.对象必须定义要非维仿的总线。当您选择时,总线变为非宽度输出作为非视频巴士参数。选择此参数将导致模拟和代码生成应用由公共汽车对象。当清除该参数时,表示公共汽车对象仅验证总线的属性。

总线类型可以对所生成的代码的效率,大小和可读性产生显着差异。对于公共汽车出现在生成的代码中,它必须是非宽度的。只有虚拟总线的元素出现在生成的代码中。

例如,假设公共汽车通过了单位延迟块。为简单起见,总线仅包含三个元素:一个b, 和c.这个表显示了输出作为非视频巴士生成代码上的参数。

生成的代码 虚拟总线 非宽恕巴士

模型_types.h.文件

虚拟总线不需要类型定义。

公共汽车对象作为结构出现在生成的代码中。

typedef struct {real_T a;real_T b;real_T c;} BusObject;

模型.h文件

生成的代码定义一个单位延迟块,用于虚拟总线的每个元素。

typedef struct {real_T UnitDelay_1_DSTATE;/* '/单位延迟' */ real_T UnitDelay_2_DSTATE;/* '/单位延迟' */ real_T UnitDelay_3_DSTATE;/* '/Unit Delay' */} DW_ . db_delay . db_delay . db_delay . db_delay . db_delay . db_delay . db_delay模型_t;

生成的代码定义一个单位延迟块的非虚拟总线,使用BusObject结构。

typedef struct {busobject unitdelay_dstate;/* '/Unit Delay' */} DW_ . db_delay . db_delay . db_delay . db_delay . db_delay . db_delay . db_delay模型_t;

要创建一个非视频巴士,请参阅创建非视频巴士

如果您打算为使用公共汽车的模型生成代码,请参阅为总线信号生成有效代码(金宝app仿真软件编码器)。为非虚拟总线生成代码可能导致某些总线的多个副本。

连接信号

该模型示出了级联信号,其并排将输入矩阵放置。

矩阵连接块会创建连接信号。元素可以是vector或矩阵,具体取决于配置此块的方式。的选择器阻止基于指定索引提取信号。提取的信号可以与输入信号不同地分组。

您可以在数学操作中使用连接信号。

将信号分组矢量加紧要么矩阵连接块,信号必须具有相同的数据类型。当数据类型是一个公共汽车对象,输入必须是非virtual总线。

连接的非虚拟总线也被称为一系列公共汽车.在一系列总线中,所有元素都是使用相同的非横向总线公共汽车对象指定属性。一系列总线相当于MATLAB中的一系列结构®.您可以使用总线数组来建模多通道系统。虽然所有通道具有相同的属性,但每个通道可能具有不同的值。

在这个模型中,一个矢量加紧块创建一系列总线。

有关公共汽车阵列的更多信息,请参阅将公共汽车与一系列公共汽车组合在一起

Mux信号

这个模型显示了一个多路复用信号,将三个输入信号并排放置。

mux.块创建多路复用信号。的多路分配器块提取所有信号,这些信号可能不同于输入信号分组。的选择器阻止基于指定索引提取信号。提取的信号可以与输入信号不同地分组。

可以使用多路复用信号对多个向量进行计算。你也可以用amux.块创建函数调用的向量。

输入信号mux.块可以是标量、矢量和多路复用信号的任意组合,但它们必须具有相同的数据类型和数字类型。输出多路复用信号中的信号出现的顺序与输入信号的顺序相同mux.块。你可以使用多个mux.块创建多路复用信号的阶段,但结果是平坦的,如果你使用一个单一mux.块。

相关话题