生成
类:matlab。DiscreteEventSystem
包:matlab
实体创建时的事件动作
语法
(实体、事件)=生成(obj、存储实体,标签)
(实体、事件、着干活,…]=生成(obj、存储实体,标签,in1,…)
描述
(
指定在存储组件中创建实体时对象的事件操作。实体
,事件
) =生成(obj
,存储
,实体
,标签
)
(
当块具有一个或多个输入信号端口和/或信号输出端口时,指定对象的此类事件操作。实体
,事件
,着干活
…]=生成(obj
,存储
,实体
,标签
,三机一体
,……)
输入参数
输出参数
例子
在生成实体时设置初始值
在存储元素中生成实体时初始化属性值。
函数[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中引入