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

Fluid Split

Разбивает входящий поток на два разных потока. Сумма скоростей выходных потоков равна скорости входного потока.

Может работать в трех альтернативных режимах:

  • Нейтральный — ни один из выходов не получает приоритета и не накладываются никакие дополнительные ограничения. Если оба выхода вместе могут принять больше жидкости, чем может поступить к ним со входа, то поток распределяется между выходами недетерминировано.
  • Пропорциональный — блок накладывает дополнительное ограничение: скорость потока на выходе 1 / Доля 1 = скорость потока на выходе 2 / Доля 2, поэтому величины скоростей выходных потоков зависят друг от друга, так же как и от величины скорости входного потока.
  • Приоритет — блок FluidSplit стремится максимально увеличить скорость одного из выходных потоков, а другой выходной поток получит тот приоритет, который останется. Иногда, чтобы избежать конфликта приоритетов, вам может понадобиться изменить значения приоритетов (путем присвоения им целочисленных значений) и тем самым достичь желаемых значений приоритетов.

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

Скорость потока на входе в блок не ограничена. Скорость потока на выходе из блока может быть ограничена. Заданное положительное значение скорости потока не должно быть ниже значения RATE_TOLERANCE, т.е. меньше 1.0e-9. Если при перерасчете скорость потока опускается ниже значения RATE_TOLERANCE, она приводится к нулю.

FluidSplit является блоком с нулевой вместимостью, он не содержит вещество внутри.

Выходная партия из FluidSplit на обоих выходах та же самая, что и входная партия. Действие При новой партии может применяться для того, чтобы изменить режим и/или приоритеты в зависимости от входной партии.

Демо-модель: FluidSplit Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Параметры

Режим
Режим разбиения потоков. Один из следующих:
  • Нейтральный — ни один из выходов не получает приоритет
  • Пропорциональный — скорости выходных потоков должны подчиняться правилам пропорций
  • Приоритет — один из выходов обладает приоритетом над другим
Получить значение: mode
Установить новое значение во время выполнения: set_mode(новое значение)
Допустимые значения:
FluidSplit.SPLITMERGE_NEUTRAL  — Нейтральный
FluidSplit.SPLITMERGE_PROPORTIONAL  — Пропорциональный
FluidSplit.SPLITMERGE_PRIORITY  — Приоритет
Доля 1
[Данный параметр виден и применяется только в том случае, если Режим: Пропорциональный]
Доля (относительная) скорости потока на выходе 1 в режиме Пропорциональный.
Синтаксис: double fraction1
Установить новое значение во время выполнения: set_fraction1(новое значение)
Доля 2
[Данный параметр виден и применяется только в том случае, если Режим: Пропорциональный]
Доля (относительная) скорости потока на выходе 2 в режиме Пропорциональный.
Синтаксис: double fraction2
Установить новое значение во время выполнения: set_fraction2(новое значение)
Другие приоритеты
[Данный параметр виден и применяется только в том случае, если Режим: Приоритет]
Если данная опция выбрана (значение true), то приоритетам выходных потоков будут присвоены другие значения. В противном случае им будут присвоены значения 0 и 1. Приоритеты влияют на LP решатель, когда он стремится увеличить до максимума количество вещества, проходящего через систему.
Синтаксис: boolean customPriorities
Поменять значение во время выполнения: set_customPriorities(новое значение)
Приоритет выхода 1
[Данный параметр виден и применяется только в том случае, если Режим: Приоритет]
Применяется в режиме Приоритет с другими приоритетами. Определяет приоритет потока на выходе 1 в общей диаграмме процесса. Должен быть неотрицательным целым числом.
Синтаксис: int priorityOutput1Custom
Поменять значение во время выполнения: set_priorityOutput1Custom(новое значение)
Приоритет выхода 2
[Данный параметр виден и применяется только в том случае, если Режим: Приоритет]
Применяется в режиме Приоритет с другими приоритетами. Определяет приоритет потока на выходе 2 в общей диаграмме процесса. Должен быть неотрицательным целым числом.
Синтаксис: int priorityOutput2Custom
Поменять значение во время выполнения: set_priorityOutput2Custom(новое значение)
Скорость на выходе ограничена
Если данная опция выбрана (значение true ), то вы сможете изменить в этом блоке верхний предел скорости выходного потока. Задается отдельно для каждого выхода.
Синтаксис: boolean limitRateOut
Поменять значение во время выполнения: set_limitRateOut(новое значение)
Макс. скорость на выходе
[Параметр виден и применяется только в том случае, если выбрана опция Скорость на выходе ограничена]
Здесь вы можете задать другой верхний предел скорости потока на выходе. Задается отдельно для каждого выхода. Значение по умолчанию составляет 10 куб. метров/сек.
Синтаксис: double maxRateOut
Установить новое значение во время выполнения: set_maxRateOut(новое значение)

Анимация

Отображать партии в блоке
Если эта опция установлена, то значок блока будет отображать цвет текущей партии.
Синтаксис: boolean showBatchesInFlowchart

Действия

При новой партии
Действие выполняется, когда новая партия прибывает на вход. Эта партия не обязательно начнет поступать в блок.
Локальная переменная: Object batch — партия
При изменении скорости
Действие выполняется, когда изменяется скорость любого потока. Обратите внимание на то, что определенные изменения, произошедшие в результате выполнения данного действия, могут вызвать другое мгновенное изменение скорости, за которым сразу последует повторное выполнение действия При изменении скорости, что в итоге может привести к взаимной блокировке.
Локальные переменные:
double inrate — текущая скорость во входном порте
double out1rate — текущая скорость в выходном порте out1
double out2rate — текущая скорость в выходном порте out2

Функции

Количество вещества
Функция Описание
double amountPassed() Возвращает общий объем вещества, прошедший через входной порт, начиная с запуска процесса моделирования.
double amountPassed(AmountUnits units) Возвращает общий объем вещества (в заданных единицах измерения объема), прошедший через входной порт, начиная с запуска процесса моделирования.
Скорость потока
Функция Описание
double currentRate() Возвращает текущую скорость потока вещества на входе.
double currentRate(FlowRateUnits units) Возвращает текущую скорость потока вещества (в указанных единицах измерения скорости) на входе.
Сброс статистики
Функция Описание
void resetStats() Сбрасывает собранную блоком статистику, включая статистику, собранную на его портах.

Порты

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