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

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

В этом примере показано, как использовать методы 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
Введенный в R2016a