В этом примере показано, как минимизировать время, требуемое обслуживать высокоприоритетных клиентов при помощи приоритетных Входных блоков switch Переключателя и Сущности очереди и Сущности Выход. Клиенты обслуживаются на основе их сервисных приоритетов. В этом примере два типа клиентов вводят систему массового обслуживания. Один тип представляет высокоприоритетных клиентов высокой безотлагательностью. Второй тип клиентов является более низким приоритетом и подается с меньшей безотлагательностью. Приоритетная очередь размещает высокоприоритетных клиентов перед низкоприоритетными клиентами.
В модели прибывающие клиенты представлены Генератором Сущности и Сущностью Generator1.
В блоке Entity Generator клиент предает время поступления земле, сгенерированы от экспоненциального распределения со средним значением 3
.
Блок Entity Generator генерирует сущности, которые имеют атрибуты, priority
и start time
. priority
атрибут установлен в 1
, который является сервисной безотлагательностью клиента. start time
атрибут также установлен в 1
, который инициализирует значение времени начала, используемое в модели.
Точно так же Сущность Generator1 генерирует сущности, чьи предают время поступления земле, сгенерированы от экспоненциального распределения со средним значением 1
. Сущности имеют те же атрибуты, priority
и start time
. priority
атрибут установлен в 2
который является сервисной безотлагательностью клиента. start time
атрибут установлен в 1
.
Блок switch Сущности Выход принимает сущности, сгенерированные Генератором Сущности и блоками Сущности Generator1 и вперед ими приоритетной очереди.
Блок Entity Queue представляет организацию очередей клиентов и приоритизирует их базирующийся в их сервисной безотлагательности.
Способностью блока Entity Queue является 25
.
Тип очереди установлен в Priority
отсортировать сущности на основе их приоритетных значений.
Приоритетный источник установлен в priority
, то, которое является атрибутом, раньше сортировало сущности.
Сортировка направления установлена в Ascending
. Сущности с нижними значениями priority
помещаются впереди очереди. В этой настройке, клиентах с priority
значение 1
приоритизированы по клиентам со значением 2
.
Функциональный блок Simulink используется, чтобы добавить метку времени к сущностям, которые вводят блок Entity Queue.
В блоке Entity Queue в конечном счете используется вкладка действий, в Действии входа, следующий код так, чтобы каждый раз сущность ввела блок, getCurrentTime()
Функция Simulink вызвана.
entity.starttime = getCurrentTime();
В Функциональном блоке Simulink блок Digital Clock используется, чтобы добавить метку времени к сущности, вводящей блок Entity Queue.
Блок Entity Server представляет сервис, который получает клиент.
Блок switch Сущности Выход вывел сущности для отъезда.
Переключение критерия установлено в From attribute
, который выбирает исходный путь на основе атрибута сущности.
Переключитесь название атрибута установлено в priority
. Если priority
значением является 1
, блок переключает на выходной порт 1
и если priority
значением является 2
, блок переключает на выходной порт 2
для отъезда сущности.
Когда сущность вводит блок Entity Terminator, recordHighPriorityWaitTimes(starttime)
функция вызвана, чтобы вычислить время, проведенное между прибытием сущности в блок Entity Queue и его отклонением от блока Entity Terminator.
В блоке Entity Terminator, в конечном счете вкладка действий, в Записи, recordHighPriorityWaitTimes(starttime)
функция вызвана.
Входным параметром функции является startime
, который является меткой времени, которая была зарегистрирована, когда сущность ввела блок Entity Queue.
Функциональный блок Simulink берет этот аргумент и вычисляет разность между временем начала и временем отправления.
Точно так же recordLowPriorityWaitTimes(starttime)
функция вычисляет время для низкоприоритетных сущностей.
Расчетное общее время обслуживания отображено блоком Dashboard Scope.
Время симуляции модели установлено в 100
.
Симулируйте модель и наблюдайте результаты, отображенные в блоке Dashboard Scope. Блок показывает, что время ожидания высокоприоритетных клиентов значительно меньше низкоприоритетных клиентов.
Entity Queue | Entity Server | Переключатель сущности Выход | Входной переключатель сущности | Функция Simulink