主要内容

生成

类:matlab。DiscreteEventSystem
包:matlab

实体创建时的事件动作

语法

(实体、事件)=生成(obj、存储实体,标签)
(实体、事件、着干活,…]=生成(obj、存储实体,标签,in1,…)

描述

(实体事件) =生成(obj存储实体标签指定在存储组件中创建实体时对象的事件操作。

(实体事件着干活…]=生成(obj存储实体标签三机一体,……)当块具有一个或多个输入信号端口和/或信号输出端口时,指定对象的此类事件操作。

输入参数

全部展开

离散事件系统对象。

存储元素的索引。

在存储元素内部创建的实体。实体有这些字段:

  • sys(MATLAB结构-它有这些字段:

    • id) -实体ID

    • 优先级) -实体优先级

  • 数据-实体数据

当前实体生成事件的标记。

对象的任何数据输入。只有当对象有数据输入时,这些输入参数才存在。

输出参数

全部展开

使用可能更改的值创建的实体。

在创建实体之后计划执行的事件。使用matlab。DiscreteEventSystem类方法来创建事件。每个事件都有这些字段:

  • 类型特征向量)—事件类型

  • 延迟-在事件发生前拖延时间

  • 优先级) -事件的优先级

  • 存储) -存储元素的索引

  • 标签特征向量) -事件标签

  • 位置(MATLAB结构) -实体的源或目标位置

对象的数据输出。当对象具有数据输出时,必须指定这些输出参数。

例子

在生成实体时设置初始值

在存储元素中生成实体时初始化属性值。

函数[entity,events] = generate(obj,storage,entity,tag)在存储中生成实体时指定事件操作。% -对于标签'Adam'的实体生成事件,初始化% entity,使其属性'gender'的值为'0',而其%优先级为'200'。% -对于标签“Eve”的实体生成事件,初始化它的属性'gender'值为'1',而它的属性'gender'值为'1'%优先级为“100”。% -返回一个事件,将实体转发到存储%元素2,时间延迟0.6。开关标签情况下“亚当”Entity.data.gender = 0;Entity.sys.priority = 200;情况下“夜”Entity.data.gender = 1;Entity.sys.priority = 100;结束events = obj.eventForward(“存储”2、0.6);结束

创建一个自定义块来生成实体

此示例展示了如何创建生成实体的自定义源块,以及如何在实现离散事件System对象方法时管理离散状态。

有关更多信息,请参见自定义实体发生器块与信号输入和信号输出

classdefCustomEntityStorageBlockGeneration < matlab。DiscreteEventSystem和matlab。系统%自定义实体生成器块。%不可调属性属性(Nontunable)生成周期周期= 1;结束属性(DiscreteState)实体优先级%优先级;实体值%价值;结束离散事件算法方法函数[events, out1] = setupEvents(obj)在模拟开始时设置实体生成事件。事件= obj.eventGenerate(1,“mygen”、obj.period obj.priority);设置输出信号的初始值。Out1 = 10;结束函数[entity,events,out1] = generate(obj,storage,entity,tag,in1)在存储中生成实体时指定事件操作。实体。数据= obj.value;优先级值从输入信号中分配。obj。优先级= in1;输出信号为指定的优先级值。Out1 = obj.priority;events = [obj.eventForward(“输出”, 1,0)obj.eventGenerate (1,“mygen”、obj.period obj.priority)];结束结束方法(访问=受保护)函数entityTypes = getEntityTypesImpl(obj)“材料”);结束函数[inputTypes,outputTypes] = getEntityPortsImpl(obj)指定实体输入输出端口。返回实体类型%端口作为单元格数组中的字符串。使用空字符串%表示数据端口。inputTypes = {''};outputTypes = {“材料”''};结束函数resetImpl (obj)初始化/重置离散状态属性。obj。优先级= 10;obj。值= 1:12;结束函数[storageSpecs, I, O] = getentitystoragimpl (obj) storageSpecs = obj. queuefifo (“材料”1);I = 0;O = [10 0];结束函数num = getNumInputsImpl(obj)为系统定义可选的输入总数%的输入。Num = 1;结束函数num = getNumOutputsImpl(~)定义输出总数。Num = 2;结束函数[out1 out2] = getOutputSizeImpl(obj)每个输出端口的返回大小。Out1 = [1 12];Out2 = 1;结束函数[out1 out2] = getOutputDataTypeImpl(obj)返回每个输出端口的数据类型。着干活=“替身”;out2 =“替身”;结束函数[out1 out2] = isOutputComplexImpl(obj)对于包含复杂数据的每个输出端口返回true。Out1 = false;Out2 = false;结束函数[sz,dt,cp] = getDiscreteStateSpecificationImpl(obj,name)返回离散状态的大小、数据类型和复杂度%在name中指定。开关名字情况下“优先”Sz = [1 1];情况下“价值”Sz = [1 12];结束dt =“替身”;Cp = false;结束结束结束

版本历史

在R2016a中引入