queueFIFO

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

Определите хранилище очереди «первый в первом» (FIFO)

Синтаксис

storage = queueFIFO(entityType,capacity)

Описание

storage = queueFIFO(entityType,capacity) задает элемент хранения очереди FIFO. Используйте эту функцию при реализации getEntityStorageImpl способ.

Примечание

Эта страница описывает queueFIFO метод для создания пользовательского системного блока дискретных событий. Смотрите Entity Queue блок, предоставленный SimEvents® для использования очереди с политикой сортировки FIFO.

Входные параметры

расширить все

Тип сущностей, с которыми работает новый элемент хранения.

Максимальное количество сущностей, которые может содержать хранилище, заданное как double.

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

расширить все

Хранилище очереди, которое содержит сущности и сортирует их в порядке FIFO.

Примеры

расширить все

Укажите хранилище сущности очереди FIFO для системного объекта дискретного события.

% Define a storage element as a FIFO queue
% - Entities in the queue are sorted in First-In-First-Out (FIFO) order
% - Queue can store entities of type 'myEntity'
% - Queue can store no more than 25 entities
storage = obj.queueFIFO('myEntity', 25); 

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