В этом примере показано, как минимизировать время, необходимое для обслуживания высокоприоритетных клиентов с помощью очереди приоритетов и блоков Вход Switch и Entity Output Switch. Клиенты обслуживаются на основе их приоритетов обслуживания. В этом примере два типа клиентов заходят в систему постановки в очередь. Один тип представляет высокоприоритетных клиентов с высокой срочностью. Второй тип клиентов является более низким приоритетом и обслуживается с меньшей срочностью. Приоритетная очередь ставит приоритетных клиентов перед низкоприоритетными.

В модели прибывающие клиенты представлены генератором сущностей и Generator1 сущностей.
В блоке Entity Generator время прибытия клиента генерируется из экспоненциального распределения со средним значением 3.
Блок Генератор сущностей генерирует сущности, которые имеют атрибуты, priority и start time. The priority для атрибута задано значение 1, что является срочностью обслуживания клиента. The start time атрибут также имеет значение 1, который инициализирует начальное значение времени, используемое в модели.
Точно так же Entity Generator1 генерирует сущности, чье промежуточное время прибытия сгенерировано из экспоненциального распределения со средним значением 1. Сущности имеют одинаковые атрибуты, priority и start time. The priority для атрибута задано значение 2 что является срочностью обслуживания клиента. The start time для атрибута задано значение 1.
Блок Выходной Коммутатор Сущности принимает сущности, сгенерированные блоками Генератор Сущностей и Generator1 Сущности, и пересылает их в очередь приоритетов.
Блок Entity Queue представляет очередь клиентов и определяет их приоритеты в зависимости от срочности обслуживания.
Емкость блока Entity Queue 25.
Для типа очереди задано значение Priority для сортировки сущностей на основе их значений приоритета.
Для источника приоритета задано значение priority, который является атрибутом, используемым для сортировки сущностей.
Для направления сортировки задано значение Ascending. Сущности с более низкими значениями priority размещаются в передней части очереди. В этой настройке Клиенты с priority значение 1 приоритеты по сравнению с клиентами с значением 2.

Блок Simulink Function используется для временной метки сущностей, которые заходят в блок Entity Queue.
В блоке Entity Queue, на вкладке Event actions, в действие входа используется следующий код, так что каждый раз, когда сущность входит в блок, getCurrentTime() Вызывается функция Simulink.
entity.starttime = getCurrentTime();
В блоке Simulink Function блок Digital Clock используется для временной метки сущности, входящего в блок Сущности Queue.

Блок Entity Server представляет услугу, которую получает клиент.
Блок Выход Switch выводит сущности для отправки.
Критерий переключения установлен в From attribute, который выбирает путь отправления на основе атрибута сущности.
Для имени атрибута Switch задано значение priority. Если на priority значение 1блок переключается на выходной порт 1 и если priority значение 2блок переключается на выходной порт 2 для отъезда сущности.

Когда сущность входит в блок Entity Terminator, recordHighPriorityWaitTimes(starttime) вызывается функция для вычисления времени, затраченного между прибытием сущности в блок Entity Queue и его уходом из блока Entity Terminator.
В блоке Entity Terminator, на вкладке Event actions, в Элементе, recordHighPriorityWaitTimes(starttime) вызывается функция.
Входной параметр функции startime, которая является временной меткой, которая была записана, когда сущность вошла в блок Entity Queue.
Блок Simulink Function принимает этот аргумент и вычисляет различие между временем начала и временем отправления.

Точно так же recordLowPriorityWaitTimes(starttime) функция вычисляет время для низкоприоритетных сущностей.
Вычисленное общее время обслуживания отображается блоком Dashboard Scope.
Время симуляции модели установлено на 100.
Симулируйте модель и наблюдайте результаты, отображенные в блоке Dashboard Scope. Блок показывает, что время ожидания для высокоприоритетных клиентов значительно меньше, чем у низкоприоритетных клиентов.

Входной переключатель сущности | Выходной переключатель сущности | Entity Queue | Entity Server | Функция Simulink