Engee 文档

多端口开关

基于控制信号选择输出信号。

类型: MultiPortSwitch

多端口开关

图书馆中的路径:

/Basic/Signal Routing/Multiport Switch

索引向量

图书馆中的路径:

/Basic/Signal Routing/Index Vector

资料描述

多端口开关 根据第一个输入端的信号值,确定块的多个输入中的哪一个传递到输出端。 第一个输入称为控制输入,其余为数据输入。 控制输入的值确定哪些输入数据被传递到输出。

下表显示了该装置如何解释控制信号并确定将哪个输入信号传输到输出。

控制输入

四舍五入

配置数据端口编号

模拟期间的块行为 选择数据输入的H/索引h/超出范围条件

整数值

非也。

零基连续

从头开始编号

控制输入端的信号较少 0 或多于数据输入的数量减一。

单基连续

从一开始编号

控制输入端的信号较少 1 或多于数据输入的数量。

指定指数

自定义编号

控制输入端的信号不对应于任何数据输入号。

非整数值

块通过向零舍入来将值截断为整数。

零基连续

从头开始编号

输入信号的舍入值较小 0 或多于数据条目的数量减一。

单基连续

从一开始编号

输入信号的舍入值较小 1 或多于数据条目的数量。

多端口开关,配置为块 索引向量

索引向量 它是块的特殊配置 多端口开关 其中仅设置一个数据输入,并且控制输入从零开始计数。 块输出是输入向量的元素,其索引对应于控制输入。 例如,如果输入向量是 [18 15 17 10],且控制输入为 3,则向量的元素与数字 3 (从零开始),等于 10,成为输出信号的值。

要使用该块 索引向量 ,为参数设置 数据端口数 意义 1,而对于参数 数据端口顺序 意义 零基连续.

单元如何处理超出范围的控制输入

如果控制信号是整数且其值小于 打字(Int),则假设超出可接受范围,如果它不匹配任何数据输入数字。 如果控制信号不是整数,那么如果舍入的值不对应于任何数据端口索引,则假定其值在可接受范围之外。 在这两种情况下,块的行为取决于设置。 默认情况下的数据端口默认情况下的诊断 .

如果控制信号的值大于 打字(Int) 块将输入值转换为整数。

建模行为

以下行为仅适用于模型的模拟。

默认情况下的数据端口

默认情况下的诊断 h/无h/错误

最后一个数据端口

使用最后一个数据输入,不会出现警告或错误。

出现错误消息,模拟停止。

附加数据端口

使用带有标签的附加数据输入。 * 并且没有警告或错误。

代码生成期间的行为

以下行为适用于从模型生成代码。

默认情况下的数据端口

默认情况下的诊断 h/无H/错误

最后一个数据端口

使用最后一个数据输入。

使用最后一个数据输入。

附加数据端口

使用带有标签的附加数据输入。 *.

管理块行为的规则

数据输入的数量由参数设置 数据端口数 .

  • 如果你问 数据端口数 平等的 1,那么块的行为就像一个块 选择器,而不是如何 多端口开关 .

  • 如果你问 数据端口数 更多 1,然后块的行为就像 多端口开关 . 块的输出表示输入信号,其数量对应于控制输入的值。 如果输入信号中的至少一个是矢量,则块的输出是矢量。 在这种情况下,块将任何标量输入参数扩展为向量。

  • 如果所有输入信号都是标量的,则输出信号也是标量的。

假设和限制

  1. 如果块的输入信号是总线,那么它们在不同端口上的结构(名称,类型和尺寸)必须完全匹配。 为了保证输出总线具有相同的结构,无论单元选择哪种输入总线,都禁止将总线与普通信号混用。

  2. 对于轮胎工作,参数值为 数据端口数 它应该是至少 2.

  3. 对于总线,控制信号必须是标量。

阅读更多关于轮胎的类型。 自定义轮胎类型

港口

入口

# IN_1 — 控制信号

+ 标量,标量 | 向量资料 | 矩阵

Details

确定输入信号中的哪一个传递到输出的控制信号。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔, 固定</无翻译> 支持复数::是

# *1*是 第一输入信号

+ 标量,标量 | 向量资料 | 矩阵 | 轮胎

Details

第一数据输入是标量、矢量、矩阵、阵列或总线的形式。

  • 如果所有输入信号都是标量,那么输出信号也是标量。

  • 如果输入信号中的至少一个是矢量,则块的输出是矢量。 在这种情况下,该块将任何标量输入信号扩展到矢量。

依赖关系

对于轮胎工作,参数值为 数据端口数 它必须≥2。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔, 固定</无翻译> 支持复数::是

# *2*是 第二输入信号

+ 标量,标量 | 向量资料 | 矩阵 | 轮胎

Details

第二数据输入是标量、矢量、矩阵、阵列或总线的形式。

  • 如果所有的输入信号都是标量,那么输出信号也是标量。

  • 如果输入信号中的至少一个是矢量,则块的输出是矢量。 在这种情况下,该块将任何标量输入信号扩展到矢量。

依赖关系

对于轮胎工作,参数值为 数据端口数 它必须≥2。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔, 固定</无翻译> 支持复数::是

# * — 超出范围控制信号值的数据输入

+ 标量,标量 | 向量资料 | 矩阵 | 轮胎

Details

标量、矢量、矩阵、阵列或总线形式的超出范围控制信号值的输入数据端口。

数据输入上的所有信号都可以具有Engee支持的任何数据类型。

依赖关系

要为超出范围的控制信号值创建一个额外的输入端口,请设置参数 默认情况下的数据端口 意义 附加数据端口. 当您为参数设置 默认情况下的数据端口 意义 最后一个数据端口,该块在控制信号的值与任何数据端口索引不匹配时使用最后一个数据端口进行输出。

对于轮胎工作,参数值为 数据端口数 它必须≥2。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, 布尔, 固定</无翻译> 支持复数::是

参数

基本设置

# 数据端口顺序 — 数据端口编号类型
零基连续 | 单基连续 | 指定指数

Details

设置数据端口的编号类型。

  • 零基连续 -单元从零开始计数输入端口。 这是*索引向量*块的默认值。

  • 单基连续 -单位开始计数从一个输入端口。 这是块的默认值 多端口开关 .

  • 指定指数 -该块使用数据端口的任意编号。

依赖关系

  • 选择 零基连续单基连续 包括参数 数据端口数 .

  • 选择 指定指数 包括参数 数据端口索引(例如 [1,[2,3]]) .

Zero-based contiguous | One-based contiguous | Specify indices

默认值

程序使用名称

DataPortOrder

可调谐

可计算

# 数据端口数 — 数据输入端口数
Int64 integer

Details

设置数据端口数。 输入端口的总数是您指定的数量,加上一个用于控制信号输入端口,如果您设置为 默认情况下的数据端口 意义 附加数据端口.

依赖关系

若要使用此参数,请为参数设置 数据端口顺序 意义 零基连续单基连续.

默认值

程序使用名称

Inputs

可调谐

可计算

# 数据端口索引(例如 [1,[2,3]]) — 数据端口的索引数组

Details

设置数据输入的索引数组。 块图标将更改以匹配您指定的数据端口索引。

依赖关系

若要使用此参数,请为参数设置 数据端口顺序 意义 指定指数.

默认值

[1, 2, 3]

程序使用名称

DataPortIndices

可调谐

可计算

# 默认情况下的数据端口 — 输入端口,以防控制信号值超出范围
最后一个数据端口 | 附加数据端口

Details

确定在控制信号值超出范围的情况下是使用最后一个数据端口还是使用附加端口。 端口名称旁边的星号(*)表示当控制输入的值与任何数据端口索引不匹配时块使用的端口。

  • 最后一个数据端口 -当控制信号的值与数据端口的任何索引不匹配时,块使用最后一个数据端口进行输出。

  • 附加数据端口 -所述块在所述控制信号的值不对应于所述数据端口的任何索引时使用附加数据端口进行输出。

如果将此参数设置为 附加数据端口数据端口数 如果值是3,那么块中的输入端口的数量将是5。 第一个输入是控制端口,接下来的三个输入是数据端口,第五个输入是默认端口,以防控制信号值超出范围。

Last data port | Additional data port

默认值

Last data port

程序使用名称

DataPortForDefault

可调谐

可计算

# 默认情况下的诊断 — 诊断行动
| 错误

Details

定义在控制端口值与任何数据端口索引不匹配时要采取的诊断操作。 选项包括:

  • -系统没有采取任何行动。

  • 错误 -模拟停止并显示错误。 在这种情况下 默认情况下的数据端口 它仅用于代码生成,而不是建模。

None | Error

默认值

Error

程序使用名称

DiagnosticForDefault

可调谐

可计算

输出设置

# 输出数据类型 — 输出数据的类型
继承:自动 | 与第一个数据输入相同 | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | 定点

Details

指定输出数据的类型。 你可以问:

  • 数据类型继承 继承:自动.

  • 嵌入式数据类型,例如, Float32.

  • 定点数据类型 定点.

Inherit: auto | Same as first data input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Fixed-point

默认值

Inherit: auto

程序使用名称

OutDataTypeStr

可调谐

可计算

# 输出定点类型 — 定点输出类型
Data type

Details

指定定点输出的类型。

依赖关系

若要使用此参数,请为参数设置 输出数据类型 意义 定点.

默认值

fixdt(1, 16, 0)

程序使用名称

OutDataTypeStrFixed

可调谐

可计算

# 整数舍入模式 — 定点运算的舍入模式
天花板 | 聚合 | 地板 | 最近 | 圆形 |

Details

选择定点运算的舍入模式。 你可以选择:

  • 地板 -向下舍入正数和负数(朝向负无穷大)。

  • 天花板 -舍入正数和负数(朝向正无穷大)。

  • 聚合 -将数字舍入到最接近的可表示值。 如果数字的小数部分以5结尾,则该数字将四舍五入为最接近的偶数整数。

  • 最近 -将数字舍入到最接近的可表示值。 如果数字的小数部分以5结尾,则将该数字向上取整(朝向正无穷大)。

  • 圆形 -将数字舍入到最接近的整数。

  • -四舍五入数向零。

块参数总是四舍五入到最接近的可表示值。

Ceiling | Convergent | Floor | Nearest | Round | Zero

默认值

Floor

程序使用名称

RndMeth

可调谐

可计算

# 整数溢出时饱和 — 溢出情况下的作用方法
Logical

Details

当选择此选项时,饱和度应用于所有内部块操作,而不仅仅是输出或结果。

开始! 做出这一决定的原因 当有溢出时会发生什么 例子:

选中此框。

溢出在您的模型中是可能的,并且您需要显式保护以防止生成的代码中的饱和。

溢出饱和到给定数据类型可以表示的最小值或最大值。

与有符号的8位整数相关联的溢出可以饱和到 -128127.

不要选中此框。

您希望优化生成代码的效率。通行证:q[<br>] 您希望避免过度澄清块如何处理超出范围的信号。

溢出被包装成一个适当的值,该值可以用数据类型表示。

电话号码 130 不适合一个有符号的8位整数,并折叠成 -126

默认值

false (关掉)

程序使用名称

SaturateOnIntegerOverflow

可调谐

可计算

# 要求所有数据端口输入的数据类型相同 — 所有输入数据必须具有相同的类型。
Logical

Details

选中此框,以便所有输入数据都具有相同的数据类型。

默认值

false (关掉)

程序使用名称

InputSameDT

可调谐

可计算

附加选项

C 代码生成: 是