主要内容

多端口开关

根据控制信号选择输出信号

  • 库:
  • 金宝app模拟链路/信号路由

    编码/信号路由

  • 多端口转换部件

描述

多端口开关块确定块的几个输入中的哪个传递到输出。块根据第一个输入的值来决定。第一个输入为控制输入,其余输入为数据输入。控制输入的值确定哪个数据输入传递到输出。

该表总结了块如何解释控制输入并确定传递给输出的数据输入。

控制输入 截断 设置数据端口顺序 模拟过程中的阻塞行为
索引选择数据输入 超出范围的情况

整型值

没有一个

从零开始的连续的

从零开始的索引

控制输入小于0或者大于输入数据数减1。

单基连续

从索引

控制输入小于1或大于数据输入的数量。

指定索引

您指定的索引

控件输入不对应于任何指定的数据端口索引。

不是整数值

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

从零开始的连续的

从零开始的索引

截断的控制输入小于0或者大于输入数据数减1。

单基连续

从索引

截断的控制输入小于1或大于数据输入的数量。

指定索引

您指定的索引

截断的控件输入不对应于任何指定的数据端口索引。

有关块如何处理超出范围的条件的信息,请参见块如何处理超出范围的控制输入

配置为索引向量块的多端口交换机

一个索引向量是a的特殊构型吗多端口开关块,其中指定一个数据输入,控制输入为零。块输出是输入向量的元素,其索引与控制输入匹配。例如,如果输入向量为[18 15 17 10]控制输入是3.,匹配索引3(从零开始)的元素是10,这就成为输出值。

配置一个多端口开关块以用作索引向量块,设置数据端口数1数据端口的顺序从零开始的连续的

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

输入的整数值小于intmax(“int32”),当值不匹配任何数据端口索引时,则输入超出范围。对于非整数值的控制输入,当截断值与任何数据端口索引都不匹配。在这两种情况下,块行为取决于您的设置默认情况下的数据端口默认情况的诊断

请注意

如果控制输入大于intmax(“int32”),块将输入值包装为整数。

模拟的行为

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

默认情况数据端口 默认情况下的诊断
没有一个 警告 错误

最后一个数据端口

使用最后的数据端口,不要报告任何警告或错误。

使用最后一个数据端口并报告警告。

报告错误并停止模拟。

附加数据端口

使用附加的数据端口*标签和不报告任何警告或错误。

使用附加的数据端口*标记并报告警告。

报告错误并停止模拟。

代码生成的行为

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

默认情况数据端口 默认情况下的诊断
没有一个 警告 错误

最后一个数据端口

使用最后一个数据端口。

使用最后一个数据端口。

使用最后一个数据端口。

附加数据端口

使用附加的数据端口*标签。

使用附加的数据端口*标签。

使用附加的数据端口*标签。

使用不同维度的数据输入

如果两个信号有不同的维数或不同的维长度,您可以使用信号作为数据输入到多端口开关块。在块对话框中,选择参数允许不同的数据输入大小.在这种情况下,块的输出是一个可变大小的信号。如果不选择此参数,则块生成错误。

有关参数的详细信息,请参见允许不同的数据输入大小(导致输出信号大小可变).有关可变大小信号的更多信息,请参见适应信号基础知识

决定阻止行为的规则

指定数据输入的数量数据端口数

  • 如果你设定数据端口数对于1,块表现为an指数选择器索引向量而不是作为多端口交换机。有关更多详细信息,请参阅配置为索引向量块的多端口交换机

  • 如果你设定数据端口数对于大于1的整数,块表现为多端口交换机。块输出是与控制输入值相对应的数据输入。如果数据输入中至少有一个是矢量,则块输出也是矢量。在这种情况下,块将任何标量输入展开为向量。

  • 如果所有数据输入都是标量,则输出也是标量。

设置枚举控制端口参数指南

当控制端口上多端口开关块为枚举类型,请遵循以下准则:

脚本 要做什么 基本原理

枚举类型包含一个表示无效、超出范围或未初始化值的值。

  • 数据端口的顺序指定索引

  • 数据端口指数将此值用于最后的数据端口。

  • 默认情况下的数据端口最后一个数据端口

此块配置处理枚举类型显式表示的无效值。

枚举类型只包含有效的枚举值。但是,数据输入端口可能会得到枚举类型的无效值。

  • 默认情况下的数据端口附加数据端口

此块配置处理枚举类型未显式表示的无效值。

枚举类型只包含有效的枚举值。数据输入端口永远不会得到枚举类型的无效值。

  • 默认情况下的数据端口最后一个数据端口

  • 默认情况的诊断没有一个

此块配置避免了不必要的诊断操作。

块没有枚举类型的每个值的数据输入端口。

  • 默认情况下的数据端口附加数据端口

此块配置处理没有数据输入端口的枚举值以及无效值。

限制

  • 如果数据输入到多端口开关块是总线,两个总线的元素名称必须相同。使用相同的元素名称可以确保无论块选择哪个输入总线,输出总线都具有相同的元素名称。要确保您的模型满足此需求,请使用总线对象来定义总线并设置元素名称不匹配诊断为错误.看到模型配置参数:连接诊断为更多的信息。

  • 对于总线阵列,数据端口数必须设置为的值2或更高版本。

港口

输入

全部展开

控制信号可以是任何数据类型的Simulink金宝app®金宝app支持,包括定点和枚举类型。当控制输入不是整数值时,块通过舍入到零将值截断为整数。

有关枚举类型的控制信号的信息,请参见设置枚举控制端口参数指南

有关块如何处理超出范围的条件的信息,请参见块如何处理超出范围的控制输入

限制

  • 如果控制信号是数字的,则控制信号不能是复杂的。

  • 如果控制信号是枚举信号,则块使用基础整数的值来选择数据端口。

  • 如果底层整数与数据端口不对应,则发生错误。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|定点|枚举

第一个数据输入,指定为标量、向量、矩阵或N-D数组。所有输入数据信号可以是Simulink支持的任何数据类型。金宝app金宝app

  • 如果所有数据输入都是标量,则输出也是标量

  • 如果数据输入中至少有一个是矢量,则块输出也是矢量。在这种情况下,块将任何标量输入展开为向量。

  • 如果任意两个非标度信号具有不同的尺寸数或尺寸长度,请选择允许不同的数据输入大小复选框。有关更多信息,请参见使用不同维度的数据输入

  • 如果任何数据信号为枚举类型,则所有其他数据信号必须为相同的枚举类型。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|定点|枚举|字符串

第二个数据输入,指定为标量、向量、矩阵或N-D数组。所有输入数据信号可以是Simulink支持的任何数据类型。金宝app金宝app

  • 如果所有数据输入都是标量,则输出也是标量

  • 如果数据输入中至少有一个是矢量,则块输出也是矢量。在这种情况下,块将任何标量输入展开为向量。

  • 如果任意两个非标度信号具有不同的尺寸数或尺寸长度,请选择允许不同的数据输入大小复选框。有关更多信息,请参见使用不同维度的数据输入

  • 如果任何数据信号为枚举类型,则所有其他数据信号必须为相同的枚举类型。

依赖关系

要启用该端口,请设置数据端口数到一个大于1的整数。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|定点|枚举|字符串

第n个数据输入,指定为标量、向量、矩阵或N-D数组。所有输入数据信号可以是Simulink支持的任何数据类型。金宝app金宝app

  • 如果所有数据输入都是标量,则输出也是标量

  • 如果数据输入中至少有一个是矢量,则块输出也是矢量。在这种情况下,块将任何标量输入展开为向量。

  • 如果任意两个非标度信号具有不同的尺寸数或尺寸长度,请选择允许不同的数据输入大小复选框。有关更多信息,请参见使用不同维度的数据输入

  • 如果任何数据信号为枚举类型,则所有其他数据信号必须为相同的枚举类型。

依赖关系

要启用N输入端口,设置数据端口数为大于或等于的整数值N

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|定点|枚举|字符串

超出范围的控制信号输入的输入数据端口,指定为标量、矢量、矩阵或N-D数组。所有输入数据信号可以是Simulink支持的任何数据类型。金宝app金宝app如果任何数据信号是枚举类型,则所有其他信号必须是相同的枚举类型。如果任意两个信号具有不同的维数或不同的维长,请选择允许不同的数据输入大小复选框。有关更多信息,请参见使用不同维度的数据输入

依赖关系

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

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|定点|枚举|公共汽车

输出

全部展开

块输出一个根据控制信号值选择的数据输入。输出与相应的数据输入具有相同的维度。当你选择允许不同的数据输入大小复选框,输出的块是一个大小可变的信号。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点|枚举|字符串

参数

全部展开

主要的

指定数据输入端口的排序类型。

  • 从零开始的连续的- Block使用基于零的索引来排序连续的数据端口。的默认值索引向量块。

  • 单基连续- Block使用基于1的索引来排序连续的数据端口。的默认值多端口开关

  • 指定索引- Block使用非连续索引来排序数据端口。

提示

  • 当控制端口为枚举类型时,请选择指定索引

  • 如果您选择从零开始的连续的单基连续,确认控制端口不是枚举类型。此配置已弃用,并产生错误。您可以在您的模型上运行Upgrade Advisor来替换它们多端口开关块,该块显式地指定数据端口索引。看到模型的升级

  • 避免块包含用于模拟或代码生成的未使用数据端口的情况。当控制端口为定点或内置数据类型时,请验证所有数据端口索引都可以用该类型表示。否则,将发生以下块行为。

    如果块中存在未使用的数据端口,且数据端口顺序为: 块产生:
    从零开始的连续的单基连续 警告
    指定索引 一个错误

依赖关系

选择从零开始的连续的单基连续使数据端口数参数。

选择指定索引使数据端口指数参数。

编程使用

块参数:DataPortOrder
类型:特征向量
价值观:“零基连续”|“一基连续”|“指定索引”
默认值:从连续的多端口开关“从零开始的连续的”索引向量

指定块的数据输入端口的数量。输入端口的总数是您指定的数字,控制信号输入端口加1,如果您设置,再加1默认情况下的数据端口附加数据端口

依赖关系

要启用该参数,请设置数据端口的顺序从零开始的连续的单基连续

编程使用

块参数:输入
类型:特征向量
价值观:介于1和65536之间的整数
默认值:“3”多端口开关' 1 '索引向量

为数据端口指定索引数组。块图标将更改以匹配指定的数据端口索引。

提示

  • 要指定与枚举类型的所有值相对应的索引数组,请输入该类型的名称。

    例如,MyColors如果是有效的条目吗MyColors枚举类型的名称。

  • 要输入枚举类型的特定值,请使用键入\u名称。枚举\u名称格式。不要输入基础整数值。

    例如,{MyColors。红色,MyColors。绿色MyColors。蓝}是一个有效的条目。

  • 若要表示多个值映射到一个数据端口,请使用括号。

    例如,以下条目都是有效的:

    • {MyColors。红色,MyColors。绿色(MyColors。蓝色,MyColors。黄色]}

    • {(3、5),0,18岁}

  • 当控制端口为定点或内置数据类型时,取值为数据端口指数必须可以用该类型表示。否则,编译时会出现错误,提醒您使用未使用的数据端口。

  • 如果控制端口为枚举数据类型,则为数据端口指数必须是该类型的枚举值。

  • 如果数据端口指数包含枚举类型的值,控制端口必须为该数据类型。

依赖关系

要启用该参数,请设置数据端口的顺序指定索引

编程使用

块参数:数据端口
类型:特征向量
价值观:数组的索引
默认值:“{1,2,3}”

指定是使用最后一个数据端口进行超出范围的输入,还是使用一个附加端口。端口名称后面的星号(*)表示当控制端口值不匹配任何数据端口索引时块使用的端口。

  • 最后一个数据端口—当控制端口的值不匹配任何数据端口索引时,块使用最后一个数据端口作为输出。

  • 附加数据端口—当控制端口的值不匹配任何数据端口索引时,块使用额外的数据端口作为输出。

提示

如果设置为附加数据端口数据端口数3.时,块上的输入端口数为5。第一个输入是控制端口,接下来的三个输入是数据端口,第五个输入是超出范围输入的默认端口。

编程使用

块参数:DataPortForDefault
类型:特征向量
价值观:'最后的数据端口' | '附加数据端口'
默认值:“最后一个数据端口”

指定当控制端口值不匹配任何数据端口索引时要采取的诊断操作。

  • 没有一个-不产生响应。

  • 警告-显示警告并继续模拟。

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

有关更多信息,请参见块如何处理超出范围的控制输入

编程使用

块参数:故障诊断
类型:特征向量
价值观:'无' | 'Warning' | 'Error'
默认值:“错误”

将样本时间指定为-1以外的值。有关更多信息,请参见指定采样时间

依赖关系

这个参数是不可见的,除非它被显式地设置为非-1.想要了解更多,请看不推荐采样时间的块

编程使用

块参数:SampleTime
类型:特征向量
价值观:标量或矢量
默认值:' 1 '

信号的属性

选择此复选框要求所有数据输入端口具有相同的数据类型。当您清除此复选框时,该块允许数据端口输入具有不同的数据类型。

编程使用

块参数:InputSameDT
类型:特征向量
价值观:”从“|”“
默认值:“关闭”

Simulink检查的输出范围的较低值。金宝app

金宝appSimulink使用最小值执行以下操作:

请注意

最小输出不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数OutMin
类型:字符向量
“[]”|标量
默认的“[]”

Simulink检查的输出范围的上限值。金宝app

金宝appSimulink使用最大值来执行:

请注意

输出最大不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数奥特马克斯
类型:字符向量
“[]”|标量
默认的“[]”

选择输出的数据类型。类型可以继承、直接指定或表示为数据类型对象,例如金宝appSimulink.NumericType

当您选择继承的选项时,块的行为如下:

  • 继承:通过内部规则继承s金宝appimulink选择一个数据类型来平衡数值精度、性能和生成的代码大小,同时考虑嵌入式目标硬件的属性。如果更改内嵌目标设置,则内部规则选择的数据类型可能会更改。软件并不总是能够同时优化代码效率和数值精度。如果内部规则不能满足你对数字精度或性能的特定需求,请使用以下选项之一:

    • 显式指定输出数据类型。

    • 显式指定默认数据类型,例如fixdt(1, 32岁,16)然后使用定点工具为模型提出数据类型。有关更多信息,请参见fxptdlg(定点设计师)

    • 要指定自己的继承规则,请使用继承:通过反向传播继承然后使用数据类型传播块。有关如何使用此块的示例可在Signal Attributes库中找到数据类型传播示例块。

  • 继承:通过反向传播继承-使用驱动块的数据类型。

  • 继承:与第一次数据输入相同—使用第一个数据输入端口的数据类型。

编程使用

块参数OutDataTypeStr
类型:字符向量
继承:通过内部规则继承|“继承:通过反向传播继承”|“继承:与第一次输入相同”|“双”|“单一”|“一半”|“int8”|‘uint8’|“int16”|“uint16”|“int32”|“uint32”|“int64”|“uint64”|“fixdt(16)”|‘fixdt(1,16,0)’|“fixdt(1, 16日2 ^ 0,0)”|“字符串”|“< >数据类型表达”
默认的“继承:通过内部规则继承”

选择此选项可锁定此块的输出数据类型设置,以防定点工具和定点顾问进行更改。有关更多信息,请参阅使用锁定输出数据类型设置(定点设计师)

编程使用

块参数磅秤
类型:字符向量
“关闭”|“上”
默认的“关闭”

选择这些四舍五入模式之一。

天花板

将正数和负数四舍五入到正无穷。等价于MATLAB®装天花板函数。

收敛

四舍五入数到最接近的可表示值。如果出现平局,四舍五入到最接近的偶数。相当于定点设计器™收敛函数。

地板上

将正数和负数四舍五入到负无穷。等价于MATLAB地板函数。

最近的

四舍五入数到最接近的可表示值。如果出现平局,四舍五入到正无穷。相当于定点设计器最近的函数。

圆形的

四舍五入数到最接近的可表示值。如果出现平局,将正数舍入到正无穷,将负数舍入到负无穷。相当于定点设计器函数。

简单的

自动选择朝向地面的四舍五入和朝向零的四舍五入,生成尽可能高效的四舍五入代码。

四舍五入数接近零。等价于MATLAB修复函数。

编程使用

块参数RndMeth
类型:字符向量
“天花板”|“收敛”|“地板”|“最近的”|“圆形”|“简单”|“零”
默认的“地板”

另请参阅

有关更多信息,请参见舍入(定点设计师)

指定溢出是否饱和或缠绕。

  • -溢出包装到数据类型可以表示的适当值。

    例如,数字130不适用于带符号的8位整数,将自动换行为-126。

  • 在…上—溢出饱和到该数据类型所能表示的最小值或最大值。

    例如,与带符号的8位整数相关联的溢出可以饱和为-128或127。

提示

  • 当您的模型可能存在溢出,并且希望在生成的代码中显示饱和保护时,请考虑选择此复选框。

  • 当您希望优化生成代码的效率时,请考虑清除此复选框。

    清除此复选框还可以帮助您避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围误差

  • 当您选中此复选框时,饱和度将应用于块上的每个内部操作,而不仅仅是输出或结果。

  • 通常,代码生成过程可以检测何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。

编程使用

块参数:饱和积分溢出
类型:特征向量
价值观:”从“|”“
默认值:“关闭”

选中此复选框可允许输入不同大小的信号。

  • 在…上-允许不同大小的输入信号,并将输入信号大小传播到输出信号。在此模式下,块产生可变大小的输出信号。

  • —要求所有非标量数据输入信号的大小相同。

编程使用

参数:AllowDiffInputSizes
类型:特征向量
值:“上”|“关闭”
默认值:“关闭”

块特征

数据类型

布尔|公共汽车||枚举|定点|一半|整数||字符串

直接馈通

是的

多维信号

是的

适应信号

是的

讨论二阶导数过零检测

扩展功能

C / c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

PLC的代码生成
使用Simulink®PLC Coder™生成结构化文本代码。金宝app

定点转换
使用fixed-point Designer™设计和模拟定点系统。

在R2006a之前引入