Класс: matlab. DiscreteEventSystem
Пакет: matlab
Создайте событие переадресации сущности
event=eventForward(locationType,locationIndex,delay)
создает событие для пересылки сущности из текущего местоположения в новое местоположение. Затем можно запланировать это событие, вернув его в качестве выходного аргумента при реализации метода действия события, такого как event
=eventForward(locationType
,locationIndex
,delay
)entry
.
Задайте событие, которое пересылает текущую сущность в хранилище.
function [entity,events] = entry(obj,storage,entity,src) % Define an event that forwards the current entity to storage % element 2. Event shall be scheduled to execute 0.8 second later. event1 = obj.eventForward('storage', 2, 0.8); % Define an event that forwards the current entity to output port 1. % Event shall be scheduled to execute at current simulation clock time. event2 = obj.eventForward('output', 1, 0); % Define events as event1 and event2 events = [event1, event2]; end
В этом примере показано, как использовать методы System object™ с дискретными событиями для создания пользовательского блока хранения сущностей, который имеет один входной порт, один выходной порт и один элемент хранения. Дискретный Системный объект события является экземпляром 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
cancelForward
| eventDestroy
| eventGenerate
| eventIterate
| eventTimer