Создайте гибридную модель с основанными на времени и событиях компонентами

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

Tank filling model with SimEvents and Simulink components

Связь между SimEvents и компонентами Simulink

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

Tank filling model displayed as two simple queue-server models

Модель Бака Pump является компонентом Simulink, который представляет управляемый временем процесс заполнения бака. Когда бак заполнен, она генерирует сообщение SimEvents через блок Hit Crossing, и сообщение следует аналогичному потоку генерации, постановки в очередь, обслуживания и завершения. Значок обозначает переход между основанным на времени и событии поведением.

Поступление бака в блок Entity Server запускает процесс заполнения в модели Pump-Tank. Когда бак заполнен, Hit Crossing блок с меткой Tank Full генерирует сообщение. Поступление этого сообщения в компонент Processor in Interface приводит к тому, что блок Simulink Function отпускает ворота выбора для полного отправления бака.

Далее подробно представлены SimEvents и Simulink компоненты модели.

Часть модели SimEvents

Часть SimEvents моделирует поток баков.

  • Блок Entity Generator генерирует баки.

  • Блок Entity Queue помещает каждый бак в очередь в режиме FIFO.

  • Блок Entity Server вызывает startFilling Функция Simulink для заполнения каждого бака. Одновременно могут обслуживаться несколько баки.

  • Блок Entity Server в Интерфейсе обрабатывает сообщение SimEvents, сгенерированное блоком Hit Crossing, и вызывает функцию Simulink, чтобы включить подсистему Selection Gate для определенного бака. Блок также вызывает функцию Simulink, чтобы повторно инициализировать блок Integrator для следующего заполнения.

Tank filling model with a Selection Gate subsystem.

Часть модели Simulink

Часть Simulink моделирует управляемый во времени процесс заполнения баков.

  • Этот компонент содержит логику заполнения баков.

  • Каждый бак имеет Capacity атрибут. Непрерывная временная часть моделирует процесс заполнения бака, смоделированный блоком Integrator. Когда бак заполняется до своей емкости, подсистема Selection Gate освобождает бак, и бак отходит.

  • Этот компонент также содержит функцию Simulink startFilling.

  • Блок Hit Crossing обнаруживает завершение процесса заполнения бака и отправляет сообщение SimEvents относительно этого события. Это сообщение обрабатывается в интерфейсе, который инициирует релиз бака с помощью селекторного затвора и повторную инициализацию блока Integrator для следующего заполнения.

Pump-Tank model section if the tank-filling model which includes a Simulink Function block, an integrator and a sensor

Симулируйте гибридную модель

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

Scope block that displays the filling process for each pump.

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

Scope block that displays the trucks departing the facility after their tanks are full

Основанная на событиях и основанная на времени динамика в симуляции

В примере «Моделирование гибридных систем - Заполнение бака» основанная на времени динамика заполнения бака сосуществует с основанной на событиях динамикой системы потока бака. Когда вы запускаете симуляцию, решатель и календарь событий играют роль. На основных временных шагах решателя, симуляция решает обыкновенные дифференциальные уравнения, которые представляют динамику системы заполнения бака. Решение динамики на основе событий предполагает планирование и обработку событий, таких как завершение обслуживания и генерация сущности, в календаре событий SimEvents. Поскольку модель использует решатель с переменным шагом, когда события происходят в системе с дискретным событием, решатель имеет большой временной шаг.

Дополнительные сведения о решателях см. в разделе Решатели для систем дискретных событий. Дополнительные сведения о создании основанных на событиях и времени моделей см. в разделе Работа с SimEvents и Simulink.

См. также

| |

Похожие темы