Класс: matlab.DiscreteEventSystem
Пакет: mATLAB
Действие события, когда сущность вводит запоминающий элемент
[entity,events]=entry(obj,storage,entity,source)
[entity,events,out1,...]=entry(obj,storage,entity,source,in1,...)
[
задает действия события объекта, когда сущность вводит устройство хранения данных. entity
,events
]=entry(obj
,storage
,entity
,source
)
[
такие действия события объекта, когда блок имеет один или несколько портов входного сигнала и/или выходных портов сигнала.entity
,events
,out1
,...]=entry(obj
,storage
,entity
,source
,in1
,...)
Действие события для записи сущности в устройство хранения данных.
function [entity,events] = entry(obj,storage,entity,src) % Specify event actions when entity entered storage. disp(['Entity of ID ' num2str(entity.sys.id) ... ' has entered storage element ' num2str(storage)]); switch src.type case 'input' disp(['Entity came from input port ' num2str(src.index)]); case 'storage' disp(['Entity came from storage element ' num2str(src.index)]); end events = [ ... obj.eventDestroy(), ... % Destroy the newly entered entity obj.eventIterate(2, '')]; % Iterate entities in storage element 2 end
В этом примере показано, как использовать методы объекта дискретной системы событий создать пользовательский блок системы хранения сущности, который имеет один входной порт, один выходной порт и один запоминающий элемент. Объект дискретной системы событий является инстанцированием matlab.DiscreteEventSystem
класс, который позволяет вам использовать методы реализации и обслуживания, предоставленные этим классом. Затем вы используете блок MATLAB Discrete-Event System, чтобы интегрировать Системный объект в модель SimEvents®.
Пользовательский блок MATLAB Discrete-Event System принимает сущность от своего входного порта и вперед этого к ее выходному порту с заданной задержкой. Для получения дополнительной информации смотрите Сущности Задержки с Пользовательским Блоком системы хранения Сущности.
classdef CustomEntityStorageBlock < matlab.DiscreteEventSystem % A custom entity storage block with one input, one output, and one storage. % Nontunable properties properties (Nontunable) % Capacity Capacity = 1; % Delay Delay=4; end methods (Access=protected) function num = getNumInputsImpl(~) num = 1; end function num = getNumOutputsImpl(~) num = 1; end function entityTypes = getEntityTypesImpl(obj) entityTypes = obj.entityType('Car'); end function [inputTypes,outputTypes] = getEntityPortsImpl(obj) inputTypes = {'Car'}; outputTypes = {'Car'}; end function [storageSpecs, I, O] = getEntityStorageImpl(obj) storageSpecs = obj.queueFIFO('Car', obj.Capacity); I = 1; O = 1; end end methods function [entity,event] = CarEntry(obj,storage,entity,source) % Specify event actions when entity enters storage. event = obj.eventForward('output', 1, obj.Delay); end end end
blocked
| destroy
| exit
| generate
| getEntityPortsImpl
| getEntityStorageImpl
| getEntityTypesImpl
| iterate
| matlab.DiscreteEventSystem
| setupEvents
| timer