AnyLogic
Развернуть
Размер шрифта

Agent To Fluid

Преобразует агентов (дискретные элементы) в поток.

Служит в качестве интерфейсного блока между Библиотекой Моделирования Процессов (или любой другой библиотекой, разработанной на ее основе) и Библиотекой Моделирования Потоков. Предполагается, что каждый агент содержит определенный объем жидкости или объемного вещества, и как только агент прибывает на вход блока, поток сразу начинает свое движение. Так же, как и FluidSource, данный блок обладает желаемой скоростью потока на выходе, и реальная скорость может быть меньше либо равна желаемой скорости. Заданное положительное значение скорости потока не должно быть ниже значения RATE_TOLERANCE, т.е. меньше 1.0e-9. Если при перерасчете скорость потока опускается ниже значения RATE_TOLERANCE, она приводится к нулю.

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

Библиотека Моделирования Потоков стремится довести до максимума скорость потоков на выходе из всех источников жидкости, поэтому приоритет выходного потока из блока AgentToFluid по умолчанию равняется 1. Иногда, чтобы разрешить конфликт приоритетов, вам может понадобиться изменить приоритет выходного потока, увеличив его значение.

В качестве дополнительной возможности AgentToFluid может создавать партии: одна партия на один агент. Тип и цвет партии могут зависеть от агента, так как к агенту можно получить доступ в динамическом поле Партия.

Параметры

Объем жидкости в агенте
Здесь вы можете задать объем жидкости в агенте, прибывшем в данный блок. Заданное значение не может быть меньше значения Utils.TOLERANCE.
Тип значения: double
Локальная переменная: agent — агент
Скорость
Максимальная (желаемая) скорость на выходе.
Синтаксис: double rate
Установить новое значение во время выполнения: set_rate(новое значение)
Другой приоритет
Если эта опция выбрана (значение true), то приоритет выходного потока будет определяться параметром Приоритет выходного потока (см. ниже), в противном случае приоритет будет равен 1. Приоритет влияет на LP решатель, когда он стремится увеличить до максимума количество вещества, проходящего через систему.
Синтаксис: boolean customPriority
Установить новое значение во время выполнения: set_customPriority(новое значение)
Приоритет выходного потока
[Параметр виден и применяется только в том случае, если выбрана опция Другой приоритет] Здесь вы можете изменить значение приоритета потока на выходе из данного блока применительно ко всей диаграмме процесса. Значение приоритета должно быть положительным числом.
Синтаксис: int priorityOutCustom
Установить новое значение во время выполнения: set_priorityOutCustom(новое значение)
Другие партии
Если данная опция выбрана (значение true), то блок будет создавать другие партии (их характеристики могут зависеть от агента). Партия, соответствующая агенту, будет определяться параметром Партия (см. ниже). В противном случае, будет создаваться партия по умолчанию: BatchTypes.DEFAULT_BATCH.
Тип значения: boolean
Локальная переменная: agent — агент
Партия
[Параметр виден и применяется только в том случае, если выбрана опция Другие партии]
Здесь вы можете задать партию, которая должна быть создана для текущего агента.
Тип: Object
Локальная переменная: agent — агент
Изменить цвет партии
[Параметр виден и применяется только в том случае, если выбрана опция Другая партия]
Если данная опция выбрана, то цвет партии определяется параметром Цвет партии (см. ниже), в противном случае используется заданный по умолчанию цвет.
Синтаксис: boolean customBatchColor
Установить новое значение во время выполнения: set_customBatchColor(новое значение)
Цвет партии
[Параметр виден и применяется только в том случае, если выбрана опция Изменить цвет партии]
Определяет цвет текущей партии, который может зависеть от агента и партии.
Тип значения: Color
Локальные переменные:
agent — агент
Object batch — текущая партия
Место агента
Фигура разметки (узел или путь ), где располагаются агенты, пока они находятся во внутренней очереди блока, в объекте очереди Queue.
Имя: entityLocation

Анимация

Резервуар
Здесь можно указать имя элемента разметки пространства Резервуар, используемого в качестве фигуры анимации блока AgentToFluid (как в 2D, так и в 3D). Резервуар отображает вещество, которое в данный момент находится в блоке.
Синтаксис: StorageTank storageTank
Отображать партии в блоке
Если данная опция выбрана, то значок блока будет отображать цвет текущей партии.
Синтаксис: boolean showBatchesInFlowchart

Действия

При входе
Действие выполняется, когда агент прибывает в блок.
Локальная переменная: agent — агент
При завершении конвертации
Данное действие выполняется, когда полный объем вещества, соответствующий текущему агенту, полностью выйдет из блока. После этого агент будет удален из процесса и следующий агент сможет войти в блок.
Локальные переменные:
agent — агент
double amount — объем жидкости, соответствующий агенту
При изменении скорости
Действие выполняется, когда изменяется скорость потока. Обратите внимание на то, что определенные изменения, произошедшие в результате выполнения данного действия, могут вызвать другое мгновенное изменение скорости, за которым сразу последует повторное выполнение действия При изменении скорости, что в итоге может привести к взаимной блокировке.
Локальная переменная: double outrate — текущая скорость потока в выходном порте

Функции

Количество вещества
Функция Описание
double amount() Возвращает объем жидкости, который находится в данный момент в блоке и готов к выходу. Этот объем меньше, чем общий объем жидкости в текущем агенте. Если этот объем меньше значения Utils.TOLERANCE, функция возвращает 0.
double amount(AmountUnits units) Возвращает объем жидкости (в указанных единицах измерения объема), который находится в данный момент в блоке и готов к выходу. Этот объем меньше, чем общий объем жидкости в текущем агенте. Если этот объем меньше значения Utils.TOLERANCE, функция возвращает 0.
double amountPassed() Возвращает общий объем вещества, прошедший через выходной порт блока, начиная с запуска процесса моделирования.
double amountPassed(AmountUnits units) Возвращает общий объем вещества (в указанных единицах измерения объема), прошедший через выходной порт блока, начиная с запуска процесса моделирования.
Скорость потока
Функция Описание
double currentRate() Возвращает текущую скорость потока вещества на выходе из блока.
double currentRate(FlowRateUnits units) Возвращает текущую скорость потока вещества (в указанных единицах измерения скорости) на выходе из блока.
Агент
Функция Описание
Agent agent() Возвращает значение текущего агента, который является "незаполненным", или null, если агента нет.
double totalAmountInAgent(AmountUnits units) Возвращает общий объем вещества (в указанных единицах измерения объема) соответствующий текущему разгружаемому агенту, или 0, если в блоке нет агента.
double totalAmountInAgent() Возвращает общий объем вещества, соответствующий текущему агенту, который является "незаполненным", или 0, если в блоке нет агента.
Сброс статистики
Функция Описание
void resetStats() Сбрасывает собранную блоком статистику, включая статистику, собранную на его портах.

Порты

in
Входной порт.
out
Выходной порт.
Как мы можем улучшить эту статью?