多端口切换
在多个块输入之间进行选择
- 库:
万博1manbetxSimulink /信号路由
描述
的多端口切换块决定将块的几个输入中的哪个传递到输出。块根据第一个输入的值做出这个决定。第一个输入是控制输入,其余的输入是数据输入。控制输入的值决定将哪些数据输入传递到输出。
该表总结了块如何解释控制输入并确定传递给输出的数据输入。
控制输入 | 截断 | 设置数据端口顺序 | 仿真过程中的块行为 | |
---|---|---|---|---|
索引以选择数据输入 | 超出范围的情况 | |||
整型值 |
没有一个 |
从零开始的连续的 |
从零开始的索引 |
控制输入小于 |
从连续的 |
从索引 |
控制输入小于 |
||
指定索引 |
您指定的索引 |
控制输入不对应任何指定的数据端口索引。 |
||
不是整数值 |
该块通过舍入到零将值截断为整数。 |
从零开始的连续的 |
从零开始的索引 |
截断的控制输入小于 |
从连续的 |
从索引 |
截断的控制输入小于 |
||
指定索引 |
您指定的索引 |
截断的控件输入不对应于任何指定的数据端口索引。 |
有关块如何处理超出范围条件的信息,请参见块如何处理超出范围的控制输入.
多端口交换机配置为索引向量块
一个索引向量是a的特殊构型吗多端口切换块,其中指定一个数据输入,而控件输入是从零开始的。块输出是输入向量中索引与控制输入匹配的元素。例如,如果输入向量是[18 15 17 10]
控制输入是3.
,则与索引3(从零开始)匹配的元素为10,并将其作为输出值。
要配置多端口切换块作为一个工作索引向量块组数据端口数来1
和数据端口顺序来从零开始的连续的
.
块如何处理超出范围的控制输入
对于输入的整数值小于intmax(“int32”)
,当该值与任何数据端口索引不匹配时,则输入超出范围。对于非整数值的控件输入,当截断值与任何数据端口索引不匹配。在这两种情况下,块行为取决于您的设置默认情况下为数据端口和默认情况的诊断.
请注意
如果控制输入大于intmax(“int32”)
,代码块将输入值包装成一个整数。
模拟行为
以下行为仅适用于您的模型的模拟。
默认情况下为数据端口 | 默认情况的诊断 | ||
---|---|---|---|
没有一个 | 警告 | 错误 | |
|
请使用最后一个数据端口,不要报告任何警告或错误。 |
使用最后一个数据端口并报告警告。 |
报告错误并停止模拟。 |
|
使用额外的数据端口 |
使用额外的数据端口 |
报告错误并停止模拟。 |
代码生成的行为
以下行为适用于模型的代码生成。
默认情况下为数据端口 | 默认情况的诊断 | ||
---|---|---|---|
没有一个 | 警告 | 错误 | |
|
使用最后一个数据端口。 |
使用最后一个数据端口。 |
使用最后一个数据端口。 |
|
使用额外的数据端口 |
使用额外的数据端口 |
使用额外的数据端口 |
使用具有不同维度的数据输入
如果两个信号的维数不同或维长度不同,则可以将这些信号用作a的数据输入多端口切换块。在块对话框中,选择该参数允许不同的数据输入大小.在这种情况下,块的输出是一个可变大小的信号。如果不选择该参数,块将产生错误。
有关该参数的详细信息,请参见允许不同的数据输入大小(导致可变大小的输出信号).有关可变大小信号的详细信息,请参见可变大小信号基础.
确定块行为的规则
指定数据输入的数量数据端口数.
如果你设置数据端口数对于1,块表现为指数选择器或索引向量而不是作为一个多端口交换机。有关详细信息,请参见多端口交换机配置为索引向量块.
如果你设置数据端口数对于大于1的整数,块表现为多端口交换机。块输出是与控制输入值相对应的数据输入。如果至少有一个数据输入是矢量,则块输出是矢量。在这种情况下,块将任何标量输入扩展为向量。
如果所有数据输入都是标量,则输出也是标量。
枚举控制端口参数设置指南
当控制端口上多端口切换块是枚举类型,遵循以下准则:
场景 | 该怎么做 | 基本原理 |
---|---|---|
枚举类型包含表示无效、超出范围或未初始化值的值。 |
|
此块配置处理枚举类型显式表示的无效值。 |
枚举类型只包含有效的枚举值。但是,数据输入端口可能会获得枚举类型的无效值。 |
|
此块配置处理枚举类型未显式表示的无效值。 |
枚举类型只包含有效的枚举值。数据输入端口永远不能获得枚举类型的无效值。 |
|
此块配置避免了不必要的诊断操作。 |
该块没有为枚举类型的每个值提供数据输入端口。 |
|
此块配置处理没有数据输入端口的枚举值以及无效值。 |
港口
输入
输出
参数
模型的例子
块特征
数据类型 |
|
多维信号 |
|
适应信号 |
|