主要内容

复合信号的类型

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

您可以通过名称或索引访问复合信号元素,这取决于复合信号类型。

  • 基于名称的复合信号允许信号层次结构并被调用公共汽车

  • 基于指数的综合信号是平坦的,不管你是否在阶段中创建它们。它们要求所有输入信号具有相同的数据类型。

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

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

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

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

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

虚拟总线

Mux信号

功能分组

Nonvirtual总线

连接信号

在编译模型之后,您可以通过它们的行样式来识别复合信号类型。当您为复合信号创建线或打开包含复合信号的模型时,复合信号具有与标量信号相同的线样式。要编译模型并显示复合线条样式,请在建模选项卡上,选择更新模型

编译后的复合行样式 复合信号类型
虚拟总线
Nonvirtual总线
基于指数的复合信号时Nonscalar信号启用信息覆盖
包含非虚拟总线的基于索引的复合信号(称为数组的公交车

虚拟总线

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

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

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

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

您可以使用虚拟总线来包含具有不同示例时间的总线元素。

要定义虚拟总线的属性,可以指定金宝app仿真软件。公共汽车对象数据类型或指定元素属性在公共汽车元素公共汽车元素块。

要创建虚拟总线,请参见将信号线组合成虚拟总线

Nonvirtual总线

这个模型显示了一个包含信号的非虚拟总线一个b,c

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

该模型显示了通过模型引用边界的等效非虚拟总线公共汽车元素在公共汽车元素块。

你可以使用非虚拟总线:

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

  • 建造一列公共汽车。

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

  • 总线数据交叉MATLAB函数块或Stateflow®图的边界。

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

非虚拟总线的所有元素必须使用相同的采样时间。你可以用率转换块来改变单个信号或总线中所有信号的采样时间。

一个金宝app仿真软件。公共汽车对象数据类型必须定义要使之为非虚拟的总线。当您选择一个块参数时,总线将变成非虚拟的,例如输出为非虚拟总线.选择使总线非虚拟导致模拟和代码生成应用由公共汽车对象。当公共汽车是虚拟的,公共汽车对象仅验证总线的属性。

总线的类型可以在生成代码的效率、大小和可读性方面产生显著差异。要使总线出现在生成的代码中,它必须是非虚的。只有虚拟总线的元素出现在生成的代码中。

例如,假设一辆公共汽车经过单位延迟块。为了简单起见,总线只包含三个元素:一个b,c.该表显示了非虚拟总线对生成代码的影响。

生成的代码 虚拟总线 Nonvirtual总线

模型_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{总线对象UnitDelay_DSTATE;/* '/Unit Delay' */} DW_ . db_delay . db_delay . db_delay . db_delay . db_delay . db_delay . db_delay模型_T;

要创建非虚拟总线,请参见创建Nonvirtual公交车

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

连接信号

这个模型显示了一个将输入矩阵并排放置的级联信号。

矩阵连接块创建连接信号。元素可以是向量也可以是矩阵,这取决于你如何配置这个块。的选择器块根据指定的索引提取信号。提取的信号可以不同于输入信号进行分组。

可以在数学运算中使用连接信号。

将信号分组用向量连接矩阵连接块,则信号必须具有相同的数据类型。当数据类型为公共汽车对象时,输入必须是非虚拟总线。

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

在这个模型中,a向量连接块创建一个总线数组。

有关总线阵列的详细信息,请参见在总线数组中对非虚拟总线进行分组

Mux信号

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

Mux块创建多路复用信号。的多路分配器块提取所有信号,这些信号可能不同于输入信号分组。的选择器块根据指定的索引提取信号。提取的信号可以不同于输入信号进行分组。

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

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

相关的话题