exponenta event banner

eventForward

Класс: matlab. DiscreteEventSystem
Пакет: matlab

Создать событие пересылки сущности

Синтаксис

event=eventForward(locationType,locationIndex,delay)

Описание

event=eventForward(locationType,locationIndex,delay) создает событие для пересылки объекта из текущего расположения в новое расположение. Затем можно запланировать это событие, вернув его в качестве выходного аргумента при реализации метода действия события, такого как entry.

Входные аргументы

развернуть все

Тип нового расположения. Определить 'storage' если новое местоположение является элементом хранения системы дискретных событий. Определить 'output' если вы хотите, чтобы объект выходил из выходного порта системы дискретных событий.

Индекс нового расположения. Если тип местоположения - 'storage', он указывает индекс элемента хранения. Если тип местоположения - 'output', он указывает индекс выходного порта.

Временная задержка между текущим временем моделирования и временем пересылки объекта.

Выходные аргументы

развернуть все

Событие, которое пересылает сущность в контексте текущего действия события в новое расположение.

Примеры

Переслать текущий объект в хранилище

Определите событие, которое перенаправляет текущий объект в хранилище.

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

Создание блока хранения настраиваемых сущностей для задержки сущностей

В этом примере показано, как использовать методы discrete-event System object™ для создания пользовательского блока хранения объектов, который имеет один входной порт, один выходной порт и один элемент хранения. Объект дискретного события System представляет собой экземпляр matlab.DiscreteEventSystem класс, который позволяет использовать методы реализации и сервиса, предоставляемые этим классом. Затем используется блок Система дискретных событий MATLAB для интеграции объекта System в модель SimEvents ®.

Пользовательский блок системы дискретных событий MATLAB принимает объект из своего входного порта и направляет его в свой выходной порт с заданной задержкой. Дополнительные сведения см. в разделе Задержка объектов с помощью блока хранения настраиваемых объектов.

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
Представлен в R2016a