В этом примере показано, как использовать действия события блока Entity Queue, Функциональный блок Simulink и блок Entity Gate, чтобы смоделировать систему хранения бутылки с ограниченной возможностью.
Этот пример использует Генератор Сущности, Очередь Сущности, Сервер Сущности и блоки Терминатора Сущности, чтобы смоделировать сборочный конвейер для системы хранения бутылки с ограниченной грузоподъемностью. Блок Entity Generator представляет прибытие бутылок. Каждая бутылка имеет gallons
припишите, чьи диапазоны значений от 0
и 10
, чтобы указать на количество жидкости, это несет. Блок Entity Queue представляет устройство хранения данных ограниченной возможностью. Блок Entity Server представляет обработку бутылок, прежде чем они оставят средство.
Жидкая система управления устройства хранения данных развертывается при помощи Функционального блока Simulink и блока Entity Gate, чтобы позволить бутылкам вводить систему хранения, пока общая сохраненная сумма галлона меньше 50
галлоны. Эта сумма соответствует максимальному позволенному весу, который может поддержать устройство хранения данных. Это принято, что вес бутылки незначителен. Блок Entity Gate имеет два состояния: откройтесь и закрытый. Функциональный блок Simulink контролирует количество жидкости в устройстве хранения данных и управляет состоянием блока Entity Gate.
Цель построения Жидкой Системы управления Устройства хранения данных состоит в том, чтобы позволить бутылкам вводить устройство хранения данных очереди, пока общая сумма галлона устройства хранения данных не превышает 50
галлоны.
Создать Жидкую Систему управления Устройства хранения данных:
Функциональный блок Simulink используется с функциональной подписью check_capacity(value,direction)
управлять блоком Entity Gate. Когда блок отправляет сообщение со значением 1
, Разрешать Логический элемент открывается, чтобы позволить контейнеры в устройство хранения данных. В противном случае, когда блок отправляет сообщение со значением 0
, логический элемент остается закрытым.
В блоке Entity Queue, в действии Записи и Выходных полях действия, check_capacity(entity.gallons,1)
и check_capacity(entity.gallons,-1)
отправьте контейнерное значение галлона в Функциональный блок Simulink. Второй вход check_capacity(~,~)
функция принимает значение 1
когда сущность вводит очередь и -1
когда сущность выходит из очереди.
В Функциональном блоке Simulink блок MATLAB function создает логику, чтобы управлять логическим элементом. Блок принимает три входных параметров.
v
значение gallon
припишите для каждой сущности, которая вводит или выходит из блока.
direction
принимает значение 1
или -1
указать, вводит ли сущность или выходит из блока.
myLimit
емкость жидкого контейнера в галлонах.
Блок MATLAB function имеет два выходных параметров.
y
принимает значение 1
открыть логический элемент, когда существует достаточно устройства хранения данных и 0
в противном случае.
t
количество галлонов жидкости в устройстве хранения данных.
Блок MATLAB function содержит следующую логику, чтобы открыть и закрыть логический элемент.
function [y,t] = fcn(v,d,myLimit) % Initialize the persistent variable total that represents the total % number of gallons of liquid in the storage. persistent total % Initialize the variable total. if isempty(total) total = 0; end % Add or subtract the gallons carried by the entering or exiting % entity. d is 1 if the entitiy enters the storage and -1 otherwise. total = total + d*v; % Update total number of gallons in the storage. t = total; % Compare the total value with myLimit. Containers can have maximum 10 % gallons of liquid. if total > (myLimit-10) % Keep the gate closed. y = 0; else % Open the gate to allow containers. y = 1; end end
Симулируйте модель. Наблюдайте количество контейнеров в жидком устройстве хранения данных.
Кроме того, наблюдайте количество жидкости в устройстве хранения данных в течение симуляции, которая не превышает 50
галлоны.