离散事件系统对象允许您使用MATLAB实现自定义事件驱动的实体流系统®语言。的MATLAB离散事件系统块允许您使用离散事件系统对象在您的sievents中创建自定义块®模型。您可以通过一组MATLAB方法来编写这样的离散事件系统对象。
你可以从头开始创建一个自定义的离散事件系统对象™:
包含多个实体存储元素,每个存储元素包含多个SimEvents实体,并将其配置为按特定顺序对实体进行排序。
具有可以调度和执行多种类型事件的实体或存储元素。这些事件可以对实体创建、使用、搜索、传输和暂时延迟等活动进行建模。
可以接受实体/信号作为输入/输出,产生实体和信号作为输出,支持内置数据类型和结构化/总线数据类型。金宝app
使用MATLAB工具箱进行复杂系统的计算和缩放。
的MATLAB离散事件系统块类似于MATLAB系统用这些差异来阻挡:
生成的离散事件System对象是matlab。DiscreteEventSystem
而不是matlab。系统
类。
的matlab。DiscreteEventSystem
具有自己的一组System对象方法,这些方法特别适用于离散事件系统。
的matlab。DiscreteEventSystem
的子集MATLAB系统方法。有关这个子集的完整列表,请参见创建离散事件系统对象.
实体是系统处理的离散对象。实体具有类型,而实体类型定义了共享一组公共数据规范和运行时方法的实体类。数据规范的例子包括维度、数据类型和复杂性。
属性定义自定义实体类型时,请考虑这些指导原则getEntityTypesImpl
方法:
可以指定多种实体类型。每种类型必须有一个唯一的名称。
实体存储元素、输入端口和输出端口必须指定它们使用的实体类型。
指定或解析实体类型的公共数据规范。例如,具有相同实体类型的输入端口和输出端口必须具有相同的数据类型。
当转发一个实体时,在以下情况下源和目的数据规范必须相同:
从输入端口到存储单元
存储元素之间
从存储单元到输出端口
每个实体类型都可以共享一组公共的事件操作方法。在命名这些方法时,为了区分实体类型,使用以下约定:
entitytypeAction
例如,如果有两种实体类型,车
和卡车
,使用如下方法名:
carEntry truckEntry
在模拟过程中,一个实体总是占用一个存储空间单位。这种存储空间由实体存储元素提供。一个离散事件System对象可以包含多个实体存储元素。使用getEntityStorageImpl
方法指定存储元素。存储空间是一个具有以下属性的容器:
实体类型-此存储正在处理的实体类型。
容量—存储可以包含的最大实体数。
存储类型-存储实体排序的标准(先进先出
,后进先出
,优先级
).
键名——用于排序的键名的属性名称。仅当存储类型为时,此属性有效优先级
.
排序方向-优先级队列升序或降序。仅当存储类型为时,此属性有效优先级
.
您可以访问存储的任意位置上的任何实体并指定事件。
端口允许离散事件System对象与其他块或模型组件交换实体和数据。属性可以指定可变数量的输入和输出端口getNumInputsImpl
和getNumOutputsImpl
方法。您还可以指定哪些端口是实体端口以及这些端口的实体类型。使用getEntityPortsImpl
方法指定这些端口属性。
您可以为离散事件System对象安排要执行的事件。事件与用户定义的操作相关联。事件操作通过更改状态或实体值并执行下一组事件来定义自定义行为。
你可以使用方法和函数:
安排活动
定义响应事件的事件操作
初始化事件
取消事件
一个MATLAB离散事件系统对象可以有以下类型的事件:
存储事件—您可以在存储元素上安排这些事件。actor是一个存储元素。
您可以在存储元素中生成一个新的实体。
可以迭代存储元素的每个实体。
实体事件—您可以在实体上安排这些事件。Actor是一个实体。
您可以延迟一个实体。
您可以将一个实体从其当前存储器转发到另一个存储器或输出端口。
您可以销毁存储元素的现有实体。
有关使用事件和事件操作的更多信息,请参见使用事件和事件动作自定义离散事件系统行为.
要通过分配离散事件System对象来实现自定义块,请遵循以下步骤。
打开一个新模型并添加MATLAB离散事件系统块从SimEvents库。
在块对话框中,从新列表中,选择基本
从模板创建System对象。
根据需要修改模板,保存System对象。
您还可以使用代码插入选项从MATLAB编辑器中修改模板和定义离散事件系统对象。通过选择插入属性或插入方法, MATLAB编辑器将预定义的属性、方法、状态、输入或输出添加到System对象。使用这些工具可以更快地创建和修改System对象,并通过减少输入错误来提高准确性。
如果存在System对象,在块对话框中输入System对象的名称Discrete-event系统对象名称参数。单击列表箭头以查看当前文件夹中可用的离散事件系统对象。
的MATLAB离散事件系统块图标和端口标签更新为对应的System对象的图标和标签。假设您选择了名为System的对象myServer
在当前文件夹中生成自定义实体服务器块,该块为实体提供服务并通过输出端口输出每个实体。然后,块更新如模型中所示。
许多不同的MATLAB系统对象函数允许您捕获属性并实现自定义行为。提供的模板被简化了,但是您可以通过编辑事件操作、引入操作和修改参数来增加复杂性。MATLAB System对象的面向对象编程特性使您能够缩放模型,并将其与SimEvents的图形编程特性进行接口。
这些主题将带领您完成创建具有不同功能的自定义块的完整工作流。
其他的例子MATLAB离散事件系统块和离散事件系统对象,请参见帮助浏览器中的SimEvents示例。
要使用提供的自定义块,在SimEvents库中,双击设计模式块。的MATLAB离散事件系统类别包含以下设计模式:
例子 | 应用程序 |
---|---|
定制的发电机 |
实现一个更复杂的实体生成器。 |
自定义服务器 | 使用自定义服务器。 |
选择队列 |
选择要从队列输出的特定实体。 |
有关更多信息,请参见通用设计模式.
matlab。DiscreteEventSystem
|matlab。系统