В примере Моделирование гибридных систем - заполнение резервуаров показана очередь резервуаров для заполнения. В примере компонент SimEvents ® моделирует поведение на основе событий, в то время как компонент Simulink ® моделирует динамику на основе времени.

Без блоков «Selection Gate» и «Simulink Function» поток резервуаров в процессе дискретных событий следует за их генерацией, постановкой в очередь, обслуживанием и окончанием. Дополнительные сведения о построении компонента SimEvents модели см. в разделе Создание дискретной модели событий. Дополнительные сведения о записи действий события для той же модели см. в разделе Управление сущностями с помощью действий события.

Модель Pump - Tank представляет собой компонент Simulink, представляющий процесс заполнения резервуара с временным приводом. Когда резервуар заполнен, он генерирует сообщение SimEvents через блок Hit Crossing, и сообщение следует аналогичному потоку генерации, постановки в очередь, обслуживания и завершения. Значок
обозначает переход между поведением, основанным на времени, и поведением, основанным на событии.
Поступление резервуара в блок Entity Server инициирует процесс заполнения в модели Pump-Tank. Когда резервуар заполнен, блок пересечения совпадений с меткой «Полный резервуар» генерирует сообщение. Поступление этого сообщения в компонент Processor in Interface запускает блок Simulink Function, чтобы разблокировать вентиль выбора для полного вылета резервуара.
Далее подробно представлены компоненты модели SimEvents и Simulink.
Часть SimEvents моделирует поток танков.
Блок генератора объектов генерирует резервуары.
Блок Entity Queue ставит каждый резервуар в очередь в режиме FIFO.
Блок сервера сущностей вызывает startFilling Функция Simulink для заполнения каждого резервуара. Одновременно можно обслуживать несколько танков.
Блок Entity Server в интерфейсе обрабатывает сообщение SimEvents, генерируемое блоком Hit Crossing, и вызывает функцию Simulink, чтобы включить подсистему Selection Gate для конкретного резервуара. Блок также вызывает функцию Simulink для повторной инициализации блока Integrator для следующего заполнения.

Деталь Simulink моделирует процесс наполнения резервуаров по времени.
Этот компонент содержит логику заполнения резервуаров.
Каждый резервуар имеет Capacity атрибут. Непрерывная временная часть моделирует процесс заполнения резервуара, смоделированный блоком интегратора. При заполнении резервуара подсистема «Selection Gate» освобождает его, и резервуар отходит.
Этот компонент также содержит функцию Simulink startFilling.
Блок Hit Crossing обнаруживает завершение процесса заполнения резервуара и посылает сообщение SimEvents относительно этого события. Это сообщение обрабатывается в интерфейсе, который инициирует освобождение резервуара с помощью вентиля выбора и повторную инициализацию блока интегратора для следующего заполнения.

Выполните пример моделирования гибридных систем - заполнение резервуара. В первом объеме соблюдайте процесс заполнения для каждого насоса.

Во втором объеме соблюдайте количество грузовиков, отправляющихся после наполнения. График показывает, что есть 15 грузовики, покидающие объект после того, как их бензобаки были заполнены.

В примере Моделирование гибридных систем - заполнение резервуара динамика заполнения резервуара на основе времени сосуществует с динамикой системы расхода резервуара на основе событий. При выполнении моделирования решатель и календарь событий играют определенную роль. На основных временных этапах решателя моделирование решает обычные дифференциальные уравнения, которые представляют динамику системы заполнения резервуара. Решение динамики на основе событий включает планирование и обработку событий, таких как завершение обслуживания и создание сущности, в календаре событий SimEvents. Поскольку в модели используется решатель с переменным шагом, при возникновении событий в системе с дискретным событием решатель имеет основной временной шаг.
Дополнительные сведения о решателях см. в разделе Решатели для дискретных систем событий. Дополнительные сведения о создании моделей на основе событий и времени см. в разделе Работа с SimEvents и Simulink.
Генератор объектов | Очередь сущностей | Сервер сущностей