主要内容

实体输入开关

开关输入实体

  • 库:
  • SimEvents

  • 实体输入开关块

描述

使用输入开关的典型场景是当多个实体源馈送到单个队列时,其中排序遵循特定的规则。例如,在一台分时计算机中,终端的用户向一个队列提交作业,该队列馈送到中央处理器,在中央处理器中,有一种算法调节对队列的访问,以防止任何一个用户不公平地控制。

请注意

如果您想合并消息或实体路径并为组件接口生成代码,请使用Simulink金宝app®消息合并块。消息合并Block的行为与实体输出开关块与主动端口选择参数设置为所有

有关示例,请参见当事件发生时生成实体

合并实体路径

方法将多个路径合并为单个路径实体输入开关主动端口选择参数设置为所有.合并实体路径不会改变实体本身,就像合并道路上的车道不会改变在上面行驶的车辆一样。特别是实体输入开关Block不创建聚合或批。

下面是一些合并实体路径的场景:

  • 附加不同的数据——多个实体生成器块为特定属性创建具有不同值的实体。然后,实体遵循合并路径,但稍后可能会根据它们各自的属性值进行不同的处理。

  • 合并队列——多个队列合并为一个队列。

  • 连接反馈路径—反馈路径进入与普通路径相同的队列。

同步待到达序列

实体输入开关Block不会经历任何碰撞,即使多个实体试图同时到达。行为的类别如下:

  • 如果实体试图到达时未阻塞实体输出端口,则到达的顺序取决于从前面的块出发事件的顺序实体输入开关块。

    即使多个实体的出发时间相同,其顺序也可能影响系统的行为。例如,如果实体前进到队列,则出发序列决定它们在队列中的位置。

  • 如果挂起实体正在等待推进到实体输入开关当其实体输出端口从阻塞变为不阻塞时阻塞,则依次通知实体输入端口该变化。从阻塞到未阻塞的变化意味着实体可以前进到实体输入开关块。

    如果至少有两个实体在等待推进实体输入开关块通过不同的实体输入端口,那么通知序列很重要,因为第一个收到更改通知的端口是第一个将实体推进到的端口实体输入开关块。

选择到达路径

实体输入开关块允许实体到达其端口。所选择的实体输入端口可以在模拟过程中更改。

您还可以选择输入端口之间的切换条件。

  • 选择轮循以轮询方式选择端口。

  • 选择从控制口让控制端口确定所选端口。

  • 选择等概率的让区块以等概率随机选择任意端口。

港口

输入

全部展开

输入进入块的实体端口。

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

输入进入块的实体端口。

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

传入控制实体的输入控制端口,该控制实体确定到达块的实体的输入端口。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出

全部展开

实体退出块的输出实体端口。

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

参数

全部展开

确定块有多少个实体输入端口。

编程使用

块参数NumberInputPorts
类型:字符向量
' 2 '|标量
默认的' 2 '

指定活动输入端口以允许实体到达所有端口或一次到达一个端口。选择所有合并实体路径并允许实体到达所有端口。选择开关允许一个实体一次只在一个端口到达。

编程使用

块参数ActivePortSelection
类型:字符向量
“所有”|“开关”
默认的“所有”

选择输入端口之间的切换条件。

  • 选择轮循以轮询方式选择端口。中设置初始端口初始端口选择

  • 选择从控制口让控制端口确定所选端口。控制端口将输入一个匿名实体,该实体携带的数据值大于0,且小于或等于输入端口数,以确定活动端口。

  • 选择等概率的让区块以等概率随机选择任意端口。设置种子生成一个随机数并确定活动输入端口。

编程使用

块参数SwitchingCriterion
类型:字符向量
“循环”|“从控制港出发”|“等概率的”
默认的“循环”

首先指定哪个端口允许实体到达。

编程使用

块参数InitialPortSelection
类型:字符向量
' 1 '|标量
默认的' 1 '

为随机数生成器指定种子以确定输入端口。

依赖关系

该参数在何时可见切换准则设置为等概率的

编程使用

块参数种子
类型:字符向量
“23453”|标量
默认的“23453”

版本历史

在R2016a中引入