使用实体属性和实体优先级
可以使用一个或多个实体将数据附加到实体属性.每个属性都有一个名称和一个数值。您可以在模拟过程中读取或更改属性的值。
例如,假设您的实体表示正在通过通信网络传输的消息。可以使用名为的属性将每个特定消息的长度附加到消息本身长度
.
您可以使用属性来描述实体的任何可度量属性。例如,你可以使用属性值来指定:
下游服务器块使用的服务时间
下游开关块使用的开关条件
还可以设置实体优先级,用于对事件进行优先级排序
为实体附加属性
属性可将属性附加到实体实体发电机块。你可以附加这样的属性:
常量值
随机数
MATLAB中任意一个向量的元素®工作区或可以在块对话框中键入的向量
MATLAB函数输出参数的值
信号的值
在Simulink中定义的函数的输出®或Stateflow®环境。
这些列表总结了结构化实体类型的属性值的特征。
属性值必须为:
真实的或复杂的
任意维度的数组,其中维度在整个模拟过程中保持固定
所有内置数据类型(
双
,单
,int8
,uint8
,int16
,uint16
,int32
,uint32
)枚举
对于给定的属性,该值的特征必须在模型中的整个离散事件系统中保持一致。属性值不能为:
不允许作为属性值
结构
公共汽车
可变大小的信号或可变大小的数组
帧
设置属性
控件下的控件可以构建和管理附加到每个离开实体的属性列表定义属性部分的实体发电机块。每个属性显示为表中的一行。
使用这些控件,你可以:
手动添加属性。
修改您之前创建的属性。
下的按钮设置属性执行这些操作。
按钮 | 行动 | 笔记 |
---|---|---|
向表中添加一个属性。 |
重命名属性并指定其属性。 |
|
从属性表中删除所选属性。 |
以这种方式删除属性时,不会出现确认信息,也无法撤消操作。 |
您还可以通过单击来组织属性而且.
该表显示您手动添加的属性。使用它来设置这些属性属性。
财产 | 指定 | 使用 |
---|---|---|
属性名称 |
属性的名称。每个属性必须有唯一的名称。 |
双击现有名称,然后键入新名称。 |
属性初始值 |
要分配给属性的值。 |
双击值,然后键入要分配的值。 |
编写函数来操作属性
要使用MATLAB代码操作属性,请使用事件动作块的TAB。要访问属性,请使用符号entityName.attributeName
.例如:
实体。一个ttribute1 = 5;
假设您希望在提供实体之后修改实体的属性。
在SimEvents的一个新模型中®图书馆,把实体发电机,实体服务器,实体终结者块并连接它们。
双击实体发电机块和,在实体类型选项卡,向属性表中添加三个属性。
控件中的第二个和第三个属性属性名称列,并分别将其重命名为Attribute2和Attribute3。
在实体服务器块,点击事件动作选项卡。
点击服务完成,并输入MATLAB代码来操作您在实体发电机布洛克:
点击好吧.的实体服务器块显示事件动作语言。
要查看动作,在模型上悬停实体服务器块事件动作图标块。
使用属性来路由实体
假设实体表示经过质量控制过程和包装过程的制造物品。通过质量控制测试的项目被送到三个包装工位中的一个,而没有通过质量控制测试的项目被送到两个返工工位中的一个。你可以通过使用这些开关来建模决策过程:
一个实体输出开关块,该块基于存储质量控制测试结果的属性路由项
一个实体输出开关把质量合格的物品送到包装站的通道
一个实体输出开关将质量不合格的项目发送到返工站的阻塞
你可以用积木切换准则参数从属性
选项使用属性来选择输出端口。示例请参见将交通交叉路口建模为排队网络.
实体优先级
SimEvents使用实体优先级来确定事件的优先级。优先级值越小,优先级越高。
您可以在生成实体时指定实体优先级。在实体发电机块,实体类型选项卡,实体优先指定生成实体的优先级值。
稍后可以使用事件操作更改实体优先级。例如,在实体发电机块事件动作选项卡,您可以定义一个事件动作,以在模拟过程中更改实体优先级,使用如下代码:
entitySys.priority =MATLAB代码
实体优先级在事件日历(Event Calendar)中安排要执行的事件的优先级方面发挥作用。
在SimEvents中,事件日历根据事件的时间和关联的实体优先级对事件进行排序,如下所示:
时间最早的事件首先执行。
如果两个实体同时发生事件,则优先级高的实体优先发生事件。
如果两个实体具有相同的优先级,则可以先服务任何一个事件。要按确定的顺序为实体提供服务,请更改一个实体优先级。
例如,假设转发事件与退出块的实体相关联一个和进入块B.此事件的优先级是正在转发的实体的优先级。如果有两个实体试图同时离开一个块,优先级高的实体先离开。
有关事件日历和调试SimEvents模型的更多信息,请参见调试SimEvents模型.