Агенты, проходя через блок, забирают жидкость или сыпучее вещество. Блок выступает связующим звеном между Библиотекой Моделирования Процессов (или любой другой библиотекой на основе этой) и Библиотекой Моделирования Потоков. Предполагается, что каждый агент должен забрать определенный объем вещества, поэтому, по прибытии агента в блок, блок начинает накапливать вещество. Объем может быть указан как точно, так и зависеть от агента (режим Забирать: заданный объем), или обрабатываться партиями. В последнем случае, агент отпускается, как только блок собрал отличный от нуля объем вещества одной партии и появляется другая партия. Блок никак не влияет на агента, но вы можете указать, как именно на агента влияет объем вещества, который он забрал.
Также, как FluidDispose и FluidToAgent, этот блок может принимать поток на любой скорости. Когда в блоке нет агента, он не содержит вещества и в него не попадает вещество. FluidPickup может принимать только одного клиента за раз, второй агент не сможет попасть в блок, пока текущий агент его не покинул.
Демо-модель: FluidPickup Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.- Забирать
- Определяет режим забора:
Заданный объем — агент забирает указанный объем жидкости
Отдельную партию — агент забирает любую не пустую партию (агент отпускается, когда в этом блоке появляется новая партия)Синтаксис: boolean pickupByAmount
Установить новое значение во время выполнения: set_pickupByAmount(новое значение)
Допустимые значения:
true — Объем жидкости
false — Партия - [Параметр виден и применяется только в том случае, если установлена опция Заданный объем]
Определяет объем вещества, который должен забрать агент. Это динамический параметр, который пересчитывается при заходе каждого агента.Тип значения: double
Локальная переменная: agent — агент - Место агента
- Фигура разметки пространства, в которой будет отображаться анимация агента, находящегося во внутреннем блоке Delay.
Синтаксис: agentLocation
Установить новое значение во время выполнения: set_agentLocation(новое значение)
- Резервуар
- Здесь можно указать имя элемента разметки пространства Резервуар, используемого в качестве фигуры анимации блока FluidPickup (как в 2D, так и в 3D). Резервуар отображает вещество, которое в данный момент находится в блоке.
Синтаксис: StorageTank storageTank
- Отображать партии в блоке
- Если установлен флажок, иконка блока будет отображать текущий цвет партии.
Синтаксис: boolean showBatchesInFlowchart
Установить новое значение во время выполнения: set_showBatchesInFlowchart(новое значение)
- При входе
- Действия выполняются при входе агента в блок, прежде чем объем вещества, заданный параметром Забрать объем, будет оценен и блок начнет принимать вещество.
Локальная переменная: agent — агент
- При выходе
- Действие выполняется, когда агент забрал вещество и покидает блок. У вас есть доступ к агенту, объему вещества, которое он забрал, и партии.
Локальные переменные:
agent — агент
double amount — объем
Object batch — партия - При изменении скорости
- Действие выполняется, когда изменяется скорость потока. Обратите внимание на то, что определенные изменения, произошедшие в результате выполнения данного действия, могут вызвать другое мгновенное изменение скорости, за которым сразу последует повторное выполнение действия При изменении скорости, что в итоге может привести к взаимной блокировке.
Локальная переменная: double inrate — текущая скорость потока во входном порте
- Количество вещества
-
Функция Описание double amountPassed() Возвращает общий объем вещества, который прошел через порт блока inFluid с начала запуска модели. double amountPassed(AmountUnits units) Возвращает общий объем вещества (в заданных единицах измерения объема), который прошел через порт блока inFluid с начала запуска модели. double amount() Возвращает объем вещества, который в данный момент находится в блоке. Этот объем меньше общего объема вещества, необходимого, чтобы отпустить агента. double amount(AmountUnits units) Возвращает объем вещества (в заданных единицах измерения объема), который в данный момент находится в блоке. Этот объем меньше общего объема вещества, необходимого, чтобы отпустить агента. - Скорость потока
-
Функция Описание double currentRate() Возвращает текущую скорость потока вещества на входе. double currentRate(FlowRateUnits units) Возвращает текущую скорость потока вещества (в заданных единицах измерения скорости) на входе. - Партия
-
Функция Описание Object getBatch() Возвращает партию, которая в данный момент наполняет блок. - Сброс статистики
-
Функция Описание void resetStats() Сбрасывает собранную блоком статистику, включая статистику, собранную на его портах.
- inFluid
- Порт поступления вещества.
- in
- Порт, в который попадает агент.
- out
- Порт, из которого выходит агент.
-
Как мы можем улучшить эту статью?
-