Этот пример описывает, как создать новый SimEvents® модель, представляющая систему дискретных событий. Для получения дополнительной информации о системах дискретных событий смотрите Дискретно-событийную симуляцию в Simulink Models. В примере показана простая система постановки в очередь, в которой грузовики прибывают на заправочную станцию, чтобы заполнить свои баки. Бак грузовика представлен сущностью, который приходит с фиксированной детерминированной скоростью, ожидает в очереди и переходит на сервер, который заполняет баки, а также работает с фиксированной детерминированной скоростью. Этот тип системы известен как D/D/1 система постановки в очередь при обозначении в очередь. Это обозначение указывает детерминированную скорость прибытия, детерминированную скорость обслуживания и один сервер.
В примере показано, как выполнить основные задачи построения моделей в SimEvents - добавление блоков к моделям и конфигурирование блоков.
Чтобы открыть модель непосредственно без выполнения шагов, смотрите Простую систему очереди.
Откройте новое окно модели.
На вкладке Home выберите New > Simulink Model и Blank Model. Сохраните модель в рабочей папке как dd1
.
Откройте библиотеку SimEvents.
В MATLAB® Командное окно, введите
simevents
Появится главное окно библиотеки SimEvents с содержащимися в нем блоками.
Добавьте блоки к модели.
Из библиотеки SimEvents перетащите эти блоки в модель.
Entity Generator - генерирует сущности для моделирования прибытия баков.
Entity Queue - Сохраняет сущности в очереди, чтобы смоделировать постановку в очередь баков, ожидающих заполнения.
Entity Server - Служит сущностям для моделирования процесса заполнения бака.
Entity Terminator - Завершает сущности, чтобы смоделировать выход баков из пикета.
В окне модели дважды кликните и введите имя блока Scope. Нажмите Enter, чтобы добавить его.
Добавленные блоки представляют ключевые процессы в симуляцию: генерация сущностей, хранение сущностей в очереди, обслуживание сущностей и создание графика, показывающего соответствующие данные.
Каждый блок в модели, в данном случае dd1
, имеет диалоговое окно, которое позволяет вам задавать параметры блоков. Значения параметров по умолчанию могут или не соответствовать вашему случаю, в зависимости от потребностей моделирования.
Двумя важными параметрами в системе организации очереди D/D/1 являются частота прибытия и частота обслуживания. Взаимностью этих ставок является длительность между последовательными сущностями и длительность обслуживания для каждой сущности. Чтобы изучить эти сроки:
Дважды кликните Entity Generator блок. Заметьте, что параметр Period установлен в 1
. Это означает, что блок генерирует новую сущность каждую секунду. Каждую секунду на станцию приходит бак.
Дважды кликните Entity Server блок. Заметьте, что параметр Service time установлен в 1.0
. Это означает, что сервер тратит одну секунду на обработку каждой сущности, который приходит в блок. Каждый бак заполняется на одну секунду длительности.
Параметры Period и Service time имеют одинаковое значение, что означает, что сервер завершает обслуживание сущности одновременно с созданием новой сущности.
Щелкните Cancel в обоих диалоговых окнах, чтобы закрыть их, не меняя никаких параметров.
Дважды кликните Entity Server блок. Щелкните вкладку Statistics, чтобы просмотреть параметры, связанные со статистической отчетностью блока. Выберите Number of entities departed, d. Нажмите OK.
Блок Entity Server получает выходной порт сигнала, маркированный d. Во время симуляции блок формирует сигнал выхода в этом d порте. Значение сигнала является текущим счетчиком сущностей, которые завершили свою службу и отошли от сервера.
Соедините блок Scope с Number of entities departed, d и отобразите статистику (текущее количество сущностей).
Дважды кликните Entity Queue блок. Установите параметр Capacity равным Inf
чтобы создать очередь с бесконечной емкостью и нажмите кнопку OK.
Соедините блоки как показано и сохраните dd1
модель, которую вы создали. Длины пути сущности не влияют на симуляцию.
SimEvents соединяет исходный блок с целевым блоком. При необходимости программное обеспечение также маршрутизирует соединительную линию вокруг промежуточных блоков или линий.
Симулируйте модель.
Откройте пример, чтобы исследовать простую систему постановки в очередь, которая генерирует, ставит в очереди, службы и завершает сущности.
Когда симуляция запускается, Simulink® Scope блок открывает окно, содержащее график. Горизонтальная ось представляет время, в которое сущности отходят от сервера, в то время как вертикальная ось представляет общее количество сущностей, отошедших от сервера.
После того, как сущность отходит от блока Entity Server, блок обновляет свой выходной сигнал в порту d.
Entity Generator | Entity Queue | Entity Server | Entity Terminator