主要内容

创建自定义模块使用MATLAB的离散事件系统

离散事件系统对象允许您使用MATLAB实现自定义事件驱动entity-flow系统®语言。的MATLAB离散事件系统块使您能够使用离散事件系统对象来创建一个自定义块SimEvents®模型。作者可以通过一组这样的离散事件系统对象MATLAB方法。

您可以创建一个定制的离散事件系统对象从头™:

  • 包含多个实体存储元素,每个元素包含多个存储SimEvents实体,并配置实体在一个特定的顺序进行排序。

  • 一个实体或存储元素,可以调度和执行多种类型的事件。这些事件可以模型实体创建等活动,消费、搜索、传输、和时间延迟。

  • 可以接受实体/信号输入/输出,产生实体和信号输出,同时支持内置数据类型和结构/总线数据类型。金宝app

  • 使用MATLAB工具箱进行计算和复杂系统的扩展。

MATLAB离散事件系统阻止类似于MATLAB系统阻止这些差异:

  • 由此产生的离散事件系统对象的实例化matlab.DiscreteEventSystem类而不是matlab.System类。

  • matlab.DiscreteEventSystem有自己的一套系统对象方法特定的离散事件系统。

  • matlab.DiscreteEventSystem继承的一个子集MATLAB系统方法。这个子集的完整列表,请参阅创建一个离散事件系统对象

实体类型、港口和存储在一个离散事件系统框架

一个实体是一个离散的对象,系统流程。一个实体有一个类型和实体的实体类型定义了一个类共享一组通用的数据规范和运行时方法。数据规范的例子包括维度、数据类型和复杂性。

考虑这些指导方针在定义自定义实体类型使用getEntityTypesImpl方法:

  • 您可以指定多个实体类型。每种类型必须有一个唯一的名称。

  • 一个实体存储元素,输入端口和输出端口必须指定的实体类型。

  • 指定为一个实体类型或解决常见的数据规范。例如,输入端口和输出端口与相同的实体类型必须具有相同的数据类型。

  • 转发一个实体时,源和目标数据规范必须在这些实例:

    • 从输入端口存储元素

    • 存储元素之间

    • 从一个存储元素到一个输出端口

  • 每个实体类型可以共享一组公共事件动作的方法。这些方法,命名时区分实体类型使用本公约:

    entitytypeAction

    例如,如果有两个实体类型,卡车使用方法名称,如:

    carEntry truckEntry

在仿真中,一个实体总是占据了一个单元的存储空间。这样的实体提供的存储空间存储元素。一个离散事件系统对象可以包含多个实体存储元素。使用getEntityStorageImpl指定存储元素的方法。存储空间是一个容器,这些属性:

  • 实体类型——实体类型存储处理。

  • 能力,最大数量的实体存储可以包含。

  • 存储类型——标准存储实体(先进先出,后进先出,优先级)。

  • 键名称——一个属性名称作为键名称排序。这个属性只适用于当存储类型优先级

  • ——升序或降序排序方向优先级队列。这个属性只适用于当存储类型优先级

你可以在任意位置的访问任何实体存储和指定事件。

港口使离散事件系统对象实体和数据交换与其他模块或组件模型。您可以指定一个变量数量的输入和输出端口使用getNumInputsImplgetNumOutputsImpl方法。您还可以指定哪些端口是实体端口,这些端口的实体类型。使用getEntityPortsImpl方法来指定这些端口属性。

事件

你可以安排事件的离散事件系统对象来执行。事件与用户定义的动作。事件动作定义了一个定制的行为通过改变状态或实体的价值观,和执行下一个事件。

您可以使用方法和函数:

  • 安排活动

  • 定义事件动作来响应事件

  • 初始化事件

  • 取消事件

一个MATLAB离散事件系统对象可以有这些类型的事件:

  • 存储事件——你可以安排这些事件在一个存储元素。演员是一个存储元素。

    • 你可以生成一个新的实体内部存储元素。

    • 你可以存储元素的迭代每个实体。

  • 实体的事件——你可以安排这些事件在一个实体。演员是一个实体。

    • 你可以推迟一个实体。

    • 你可以提出一个实体从当前存储到另一个存储或输出端口。

    • 你可以摧毁现有的存储实体元素。

使用事件和事件操作的更多信息,参见使用事件和事件操作自定义离散事件系统行为

实现了一个离散事件系统对象MATLAB离散事件系统

实现一个自定义的块被分配一个离散事件系统对象,遵循这些步骤。

  1. 打开一个新的模型和添加MATLAB离散事件系统块从SimEvents库。

  2. 在块对话框中,从列表中,选择基本从一个模板创建一个系统对象。

    根据需要修改模板并保存系统对象。

    您还可以修改模板和定义离散事件系统对象从MATLAB编辑器使用代码插入选项。通过选择插入属性插入方法MATLAB编辑添加预定义的属性、方法,输入或输出到您的系统对象。使用这些工具来创建和修改系统对象的速度,并提高精度,减少打字错误。

  3. 如果系统对象存在,在块对话框中,输入名称离散事件系统对象名称参数。点击箭头查看可用的离散事件系统对象列表在当前文件夹。

    MATLAB离散事件系统块图标和端口标签更新相应的系统对象的图标和标签。假设您选择一个系统对象命名myServer在当前文件夹并生成一个定制的服务实体和实体服务器块输出每个实体通过输出端口。然后,所示的街区更新模型。

许多不同的MATLAB系统对象函数允许您捕获性能和实现自定义行为。提供的模板是简化,但你可以通过编辑事件动作增加了复杂性,引入行为,并修改参数。MATLAB系统对象的面向对象编程特性允许您扩展模型,并与图形界面编程SimEvents的特性。

这些主题带您经历一个完整的工作流来创建自定义与不同的功能块。

其他的例子MATLAB离散事件系统块和离散事件系统对象,看到SimEvents例子帮助浏览器。

使用提供的自定义块,SimEvents图书馆,双击设计模式块。的MATLAB离散事件系统类别包含这些设计模式:

例子 应用程序

定制的发电机

发电机实现更复杂的实体。

自定义服务器

使用一个自定义的服务器。

选择队列

选择一个特定的实体输出队列。

有关更多信息,请参见SimEvents常见的设计模式

另请参阅

|

相关的话题