根据控制信号选择输出信号
金宝app模拟链路/信号路由
编码/信号路由
的多端口开关块确定块的几个输入中的哪个传递到输出。块根据第一个输入的值来决定。第一个输入为控制输入,其余输入为数据输入。控制输入的值确定哪个数据输入传递到输出。
该表总结了块如何解释控制输入并确定传递给输出的数据输入。
控制输入 | 截断 | 设置数据端口顺序 | 模拟过程中的阻塞行为 | |
---|---|---|---|---|
索引选择数据输入 | 超出范围的情况 | |||
整型值 |
没有一个 |
从零开始的连续的 |
从零开始的索引 |
控制输入小于 |
单基连续 |
从索引 |
控制输入小于 |
||
指定索引 |
您指定的索引 |
控件输入不对应于任何指定的数据端口索引。 |
||
不是整数值 |
该块通过舍入为零将值截断为整数。 |
从零开始的连续的 |
从零开始的索引 |
截断的控制输入小于 |
单基连续 |
从索引 |
截断的控制输入小于 |
||
指定索引 |
您指定的索引 |
截断的控件输入不对应于任何指定的数据端口索引。 |
有关块如何处理超出范围的条件的信息,请参见块如何处理超出范围的控制输入.
一个索引向量是a的特殊构型吗多端口开关块,其中指定一个数据输入,控制输入为零。块输出是输入向量的元素,其索引与控制输入匹配。例如,如果输入向量为[18 15 17 10]
控制输入是3.
,匹配索引3(从零开始)的元素是10,这就成为输出值。
配置一个多端口开关块以用作索引向量块,设置数据端口数来1
和数据端口的顺序来从零开始的连续的
.
输入的整数值小于intmax(“int32”)
,当值不匹配任何数据端口索引时,则输入超出范围。对于非整数值的控制输入,当截断值与任何数据端口索引都不匹配。在这两种情况下,块行为取决于您的设置默认情况下的数据端口和默认情况的诊断.
请注意
如果控制输入大于intmax(“int32”)
,块将输入值包装为整数。
以下行为仅适用于您的模型的模拟。
默认情况数据端口 | 默认情况下的诊断 | ||
---|---|---|---|
没有一个 | 警告 | 错误 | |
|
使用最后的数据端口,不要报告任何警告或错误。 |
使用最后一个数据端口并报告警告。 |
报告错误并停止模拟。 |
|
使用附加的数据端口 |
使用附加的数据端口 |
报告错误并停止模拟。 |
以下行为适用于模型的代码生成。
默认情况数据端口 | 默认情况下的诊断 | ||
---|---|---|---|
没有一个 | 警告 | 错误 | |
|
使用最后一个数据端口。 |
使用最后一个数据端口。 |
使用最后一个数据端口。 |
|
使用附加的数据端口 |
使用附加的数据端口 |
使用附加的数据端口 |
如果两个信号有不同的维数或不同的维长度,您可以使用信号作为数据输入到多端口开关块。在块对话框中,选择参数允许不同的数据输入大小.在这种情况下,块的输出是一个可变大小的信号。如果不选择此参数,则块生成错误。
有关参数的详细信息,请参见允许不同的数据输入大小(导致输出信号大小可变).有关可变大小信号的更多信息,请参见适应信号基础知识.
指定数据输入的数量数据端口数.
如果你设定数据端口数对于1,块表现为an指数选择器或索引向量而不是作为多端口交换机。有关更多详细信息,请参阅配置为索引向量块的多端口交换机.
如果你设定数据端口数对于大于1的整数,块表现为多端口交换机。块输出是与控制输入值相对应的数据输入。如果数据输入中至少有一个是矢量,则块输出也是矢量。在这种情况下,块将任何标量输入展开为向量。
如果所有数据输入都是标量,则输出也是标量。
当控制端口上多端口开关块为枚举类型,请遵循以下准则:
脚本 | 要做什么 | 基本原理 |
---|---|---|
枚举类型包含一个表示无效、超出范围或未初始化值的值。 |
|
此块配置处理枚举类型显式表示的无效值。 |
枚举类型只包含有效的枚举值。但是,数据输入端口可能会得到枚举类型的无效值。 |
|
此块配置处理枚举类型未显式表示的无效值。 |
枚举类型只包含有效的枚举值。数据输入端口永远不会得到枚举类型的无效值。 |
|
此块配置避免了不必要的诊断操作。 |
块没有枚举类型的每个值的数据输入端口。 |
|
此块配置处理没有数据输入端口的枚举值以及无效值。 |
如果数据输入到多端口开关块是总线,两个总线的元素名称必须相同。使用相同的元素名称可以确保无论块选择哪个输入总线,输出总线都具有相同的元素名称。要确保您的模型满足此需求,请使用总线对象来定义总线并设置元素名称不匹配诊断为错误
.看到模型配置参数:连接诊断为更多的信息。
对于总线阵列,数据端口数必须设置为的值2
或更高版本。
数据类型 |
|
直接馈通 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|