Как работает Библиотека моделирования потоков: пример автозаправочной станции

Привет всем пользователям AnyLogic!

В предыдущей статье мы показали работу инструментов «жидкой» библиотеки, построив модель шоколадной фабрики. Сегодня вы узнаете, как использовать эти инструменты для создания несложных и интуитивно понятных диаграмм процессов на примере модели автозаправочной станции, а также узнаете о специфике разделения потоков в библиотеке.

Сделать такую модель несложно. Вам понадобится любая версия продукта AnyLogic, который вы можете скачать на нашем сайте. А сейчас рассмотрим схему работы модели.

На заправке есть три вида топлива. Бензовозы прибывают через определенные промежутки времени и пополняют запасы топлива, наполняя резервуары (Tanks). В этот раз мы не будем описывать их работу, так как уже говорили об этом в предыдущей статье.


Схема работы автозаправочной станции. Блоки Split4 разделяют поток одного вида топлива на 4 ветви, идущие в 4 топливораздаточные колонки. Каждая колонка, соответственно, содержит 3 вида топлива.

На скриншоте вы видите три процесса подачи топлива (Gas station logic), составные части которых управляются с помощью диаграмм процесса прибытия автомобилей и бензовозов (Car process и Gasoline tanker process). Последняя схема показывает работу автозаправочной станции с тремя резервуарами для хранения топлива, каждый из которых последовательно соединён с топливораздаточными колонками. Таким образом, колонки содержат каждый из трех видов топлива. Встроенные блоки Split4 разделяют топливо между четырьмя колонками равномерно. Работа этих блоков повторяет работу уже знакомого нам блока Split, который в предыдущей статье разделял потоки в трубопроводах и на конвейерах.


Внутренняя логика работы блоков схемы. Порты являются частью иконки блока и используются для соединения c другими блоками на Main.

Через блок Exit топливо из каждого резервуара попадает в блоки колонок Enter. В процессе работы модели разработчик может отключить блок Enter от одного блока Exit и подключить к другому (логика библиотеки позволяет оставить блок Enter неподключенным).


Свойства блоков Enter и Exit. Для блока выхода Exit можно выбрать соответствующий блок входа Enter из выпадающего списка, либо задать его кодом.

Теперь рассмотрим процесс заправки машины. Автомобиль подъезжает к колонке, после чего его блок Enter и блок колонки Exit соединяются, открывая клапан подачи топлива (блок Valve). Клапан высвобождает заданное количество топлива и закрывается автоматически. Моменты открытия и закрытия клапана регистрируются как события и позволяют выполнить нужные действия в начале/завершении выдачи топлива. В модели, когда автомобиль заправлен, действие При завершении выдачи «отключает» колонку от автомобиля, и машина уезжает с автозаправки.


Выбираем топливораздаточную колонку (действие При входе блока Delay); вставляем пистолет в бак автомобиля; начинаем заправку (функция startFueling); возвращаем пистолет в колонку и уезжаем (функция При завершении выдачи).

Работа бензовоза, который привозит топливо на автозаправку, на схеме выглядит точно так же. Он выступают в роли источника топлива, поэтому его блок Exit подключается к блокам Enter на холсте Main, которые направляет топливо из бензовоза в резервуары Tank.


Соединяем бак бензовоза с основным резервуаром заправки; пополняем колонки и отсоединяем бензовоз (действие, как и в случае с автомобилем, задается через блок Valve).


В следующий раз мы завершим тему Библиотеки моделирования потоков и расскажем об её продвинутых возможностях и подсказках для пользователей.

Напоминаем, что мы ждем ваших отзывов о формате статей и их содержании. А чтобы не пропустить новые посты, читайте наш блог!