В этом примере показано, как управлять скоростью генерации объектов и записывать действия событий для изменения атрибутов объектов в простой системе очередей. При моделировании дискретных событий событие является наблюдением мгновенного инцидента, который может изменить переменную состояния, выходной сигнал или возникновение других событий. SimEvents ® позволяет создавать пользовательские действия при возникновении события. Эти действия называются действиями события. События могут иметь соответствующие действия. Действия события можно записать для изменения атрибутов сущности с помощью кода MATLAB ® или функций Simulink ®.
Это простая система очередей с блоками генератора сущностей, очереди сущностей, сервера сущностей и терминатора сущностей. В этом примере объект представляет цистерну грузовика, который прибывает на заправку. Атрибут объекта представляет текущий уровень газа в резервуаре. События представляют собой изменения уровня газа в резервуаре. Резервуары генерируются случайным образом, ставятся в очередь, и они обслуживаются насосом, который передает постоянное количество газа в течение одной секунды. Танки отходят от станции с их новым общим количеством газа.

Выберите всю модель или пути к объектам из блоков Генератор сущностей (Entity Generator), Очередь сущностей (Entity Queue) и Сервер сущностей (Entity Server) и щелкните правой кнопкой мыши, чтобы выбрать пункт Зарегистрировать выбранные сигналы (Log Selected Signals). Simulation Data Inspector используется для визуализации потока резервуаров и их уровня газа в модели. Дополнительные сведения см. в разделе Проверка данных моделирования.
Переименуйте блок «Генератор объектов» в «Генератор резервуаров», блок «Очередь объектов» в «Очередь ожидания», блок «Сервер объектов» в «Насос» и блок «Терминатор объектов» в «Выход».

Переименуйте путь, исходящий из блока «Генератор резервуаров», как «Резервуар в очередь», блок «Очередь ожидания» - как «Резервуар в насос», а блок «Насос» - как «Резервуар на выход».
Дважды щелкните генератор резервуаров и выберите вкладку Тип объекта (Entity type). Измените имя типа объекта на Tankи имя атрибута для CurrentGasLevel.
Атрибут сущности CurrentGasLevel представляет собой существующее количество газа в каждом резервуаре.
Моделирование модели. Откройте инспектор данных моделирования. Обратите внимание, что резервуары приближаются к очереди ожидания, насосу и выходу с одинаковой скоростью.
Баки покидают станцию с начальным количеством газа 1 которое является начальным значением атрибута.



Откройте диалоговое окно «Параметры блока генератора резервуаров». На вкладке Создание сущности задайте для параметра Источник времени значение Matlab action. Соблюдайте код MATLAB по умолчанию.
dt = rand(1,1);
Код рандомизирует параметр времени межгенерации объекта dt для представления случайных прибывающих танков.
Моделирование обновленной модели. В инспекторе данных моделирования обратите внимание, что резервуары поступают случайным образом с одинаковым начальным количеством газа. 1.

Обратите внимание, что резервуары генерируются случайным образом, но они приближаются к насосу с регулируемой фиксированной скоростью, поскольку время работы насоса составляет 1.

Откройте диалоговое окно «Блок генератора резервуаров». На вкладке Действия с событиями в поле Создать действие введите код.
entity.CurrentGasLevel = randi([1,4]);
Резервуары прибывают на станцию со случайным количеством газа, которое колеблется от 1 кому 4.
Моделирование обновленной модели. В инспекторе данных моделирования обратите внимание, что резервуары поступают со случайным количеством газа.

Для блока «Насос» задайте следующие параметры:
На вкладке Действия с событиями выберите Сервис завершен.
В поле Действие завершения обслуживания введите код.
entity.CurrentGasLevel = entity.CurrentGasLevel + 3;
Каждый бак заполнен 3 ед. газа для 1s длительность, а затем он покидает насос.
Обратите внимание, что блоки Tank Generator и Pump обновляются со значком действия события {...}, указывающим, что блоки определяют действие события.

Моделирование обновленной модели. В инспекторе данных моделирования обратите внимание, что каждый резервуар покидает станцию с 3 дополнительными блоками газа.

Это измененная модель после конфигурирования простой системы организации очередей.

Генератор объектов | Очередь сущностей | Сервер сущностей | Терминатор объекта