Этот пример описывает, как создать новый SimEvents® модель, представляющая дискретную систему событий. Для получения дополнительной информации о дискретных системах событий, смотрите Дискретно-событийную симуляцию в Моделях Simulink. Пример показывает простую систему массового обслуживания, в которой грузовики прибывают в автозаправочную станцию, чтобы заполнить их баки. Бак грузовика представлен сущностью, которая прибывает в фиксируемую детерминированную ставку, ожидает в очереди и переходит к серверу, который заполняет баки и также действует на фиксируемой детерминированной ставке. Этот тип системы известен как 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