Объединяет два потока в один. Скорость выходного потока равна сумме скоростей входных потоков.
Может работать в трех режимах:
- Нейтральный — в режиме Нейтральный ни один из входов не получает приоритет, и не накладываются никакие дополнительные ограничения. В случае, если выход может принять больше, чем сумму максимальных скоростей входных потоков, то значения обеих скоростей входных потоков доводятся до максимума. Если нет, то "квоты" скоростей входных потоков распределяются не детерминировано.
- Пропорциональный — в режиме Пропорциональный данный блок накладывает дополнительное ограничение: скорость потока на входе 1 / Доля 1 = скорость потока на входе 2 / Доля 2, поэтому величины скоростей входных потоков зависят друг от друга, так же как и от допустимой величины скорости выходного потока.
- Приоритет — в режиме Приоритет блок FluidMerge стремится максимально увеличить скорость одного из входных потоков, и другой входной поток получит тот приоритет, который останется. Иногда, чтобы избежать конфликта приоритетов, вам может понадобиться изменить значения приоритетов (путем присвоения им целочисленных значений) и тем самым достичь желаемых значений приоритетов.
В режиме Приоритет точка, показывающая приоритетный вход, становится оранжевой, если значения потоков не соответствуют заданным приоритетам. Это может быть как штатной ситуацией, так и сигналом о том, что потоки не распределяются должным образом, и требуется явное задание других приоритетов.
Скорость потока на входе в блок не ограничена. Скорость потока на выходе из блока может быть ограничена. Заданное положительное значение скорости потока не должно быть ниже значения RATE_TOLERANCE, т.е. меньше 1.0e-9. Если при перерасчете скорость потока опускается ниже значения RATE_TOLERANCE, она приводится к нулю.
Выходная партия блока FluidMerge может быть той же самой, что и партия на выбранном входе, либо той же самой, что на приоритетном входе, либо заданной по умолчанию, либо другой партией, заданной в параметрах этого блока. Последняя опция применяется, например, когда с помощью данного блока моделируется смешивание двух разных веществ, что приводит к образованию третьего вещества. Действия При новой партии... могут применяться для того, чтобы изменять режим и/или приоритеты в зависимости от входных партий. Если выходная партия задана та же самая, что на одном из входов, при этом из-за отсутствия потока на входе это партия с нулевой длиной, то партия на выходе будет такая же, как партия на другом входе.
FluidMerge является блоком с нулевой вместимостью, он не содержит вещество внутри.
Демо-модель: FluidMerge Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.- Режим
- Режим смешивания. Один из следующих:
Нейтральный — ни один из входов не получает приоритет
Пропорциональный — скорости входных потоков должны подчиняться правилам пропорций
Приоритет — один из входов обладает приоритетом над другимПолучить значение: mode
Установить новое значение во время выполнения: set_mode(новое значение)
Допустимые значения:
FluidMerge.SPLITMERGE_NEUTRAL — Нейтральный
FluidMerge.SPLITMERGE_PROPORTIONAL — Пропорциональный
FluidMerge.SPLITMERGE_PRIORITY — Приоритет - Доля 1
- [Данный параметр виден и применяется только в том случае, если Режим: Пропорциональный]
Доля (относительная) скорости потока на входе 1 в режиме Пропорциональный. Если пользователь динамически изменяет значение этого параметра, то выходная партия обновляется в соответствии с текущими значениями параметров.Синтаксис: double fraction1
Установить новое значение во время выполнения: set_fraction1(новое значение) - Доля 2
- [Данный параметр виден и применяется только в том случае, если Режим: Пропорциональный]
Доля (относительная) скорости потока на входе 2 в режиме Пропорциональный. Если пользователь динамически изменяет значение этого параметра, то выходная партия обновляется в соответствии с текущими значениями параметров.Синтаксис: double fraction2
Установить новое значение во время выполнения: set_fraction2(новое значение) - Другие приоритеты
- [Данный параметр виден и применяется только в том случае, если Режим: Приоритет]
Если данная опция выбрана (значение true), то приоритетам входных потоков будут присвоены другие значения. В противном случае им будут присвоены значения 0 и 1. Приоритеты влияют на LP решатель, когда он стремится увеличить до максимума количество вещества, проходящего через систему.Синтаксис: boolean customPriorities
Поменять значение во время выполнения: set_customPriorities(новое значение) - Приоритет
- [Данный параметр виден и применяется только в том случае, если Режим: Приоритет, а также установлена опция Другие приоритеты]
Применяется в режиме приоритетов с приоритетами по умолчанию. Если выбрана опция Вход 1, то вход 1 имеет приоритет над входом 2, в противном случае Вход 2 обладает приоритетом. В результате значения приоритетов будут равны 1 и 0.Синтаксис: boolean priorityInput1
Поменять значение во время выполнения: set_priorityInput1(новое значение) - Приоритет входа 1
- [Данный параметр виден и применяется только в том случае, если Режим: Приоритет, а также установлена опция Другие приоритеты]
Применяется в режиме приоритета с другими приоритетами. Определяет приоритет потока на входе 1 в общей диаграмме процесса. Значение приоритета должно быть неотрицательным целым числом.Синтаксис: int priorityInput1Custom
Поменять значение во время выполнения: set_priorityInput1Custom(новое значение) - Приоритет входа 2
- [Данный параметр виден и применяется только в том случае, если Режим: Приоритет, а также установлена опция Другие приоритеты]
Применяется в режиме приоритета с другими приоритетами. Определяет приоритет потока на входе 2 в общей диаграмме процесса. Значение приоритета должно быть неотрицательным целым числом.Синтаксис: int priorityInput2Custom
Поменять значение во время выполнения: set_priorityInput2Custom(новое значение) - Партия на выходе
- Определяет то, как формируется партия на выходе данного блока. Одно из следующих:
Та же, что на входе 1 — та же, что и партия на входе 1
Та же, что на входе 2 — та же, что и партия на входе 2
Та же, что на приоритетном входе — та же, что и партия на приоритетном входе (только в режиме приоритета)
По умолчанию — устанавливается в партию по умолчанию
Другая — определяется параметром Партия на выходе (см. ниже)Получить значение: modeBatch
Установить новое значение во время выполнения: set_modeBatch(новое значение)
Допустимые значения:
FluidMerge.OUTPUT_BATCH_IN1 — Та же, что на входе 1
FluidMerge.OUTPUT_BATCH_IN2 — Та же, что на входе 2
FluidMerge.OUTPUT_BATCH_PRIORITY — Та же, что на приоритетном входе
FluidMerge.OUTPUT_BATCH_DEFAULT — По умолчанию
FluidMerge.OUTPUT_BATCH_CUSTOM — Другая - [Данный параметр виден и применяется только в том случае, если Партия на выходе: Другая]
Определяет партию, которую нужно создать на выходе. Выполнение данного действия может зависеть от входных партий.Тип значения: Object
Локальные переменные:
Object batch1 — партия на входе 1
Object batch2 — партия на входе 2 - Изменить цвет партии
- [Данный параметр виден и применяется только в том случае, если Партия на выходе: Другая]
Если данная опция установлена, то цвет выходной партии будет определяться параметром Цвет партии (см. ниже), в противном случае будет применяться заданный по умолчанию цвет.Синтаксис: boolean customBatchColor
Установить новое значение во время выполнения: set_customBatchColor(новое значение) - [Параметр виден и применяется только в том случае, если установлена опция Изменить цвет партии]
Здесь вы можете задать цвет выходной партии.Тип значения: Color
Локальная переменная: Object batch — выходная партия - Скорость на выходе ограничена
- Если данная опция выбрана (значение true), то вы можете задавать другой верхний предел скорости потока на выходе блока.
Синтаксис: boolean limitRateOut
Поменять значение во время выполнения: set_limitRateOut(новое значение) - Максимальная скорость на выходе
- [Параметр виден и применяется только в том случае, если выбрана опция Скорость на выходе ограничена]
Здесь вы можете задать другой верхний предел скорости потока на выходе. Значение по умолчанию составляет 10 куб. метров/сек.Синтаксис: double maxRateOut
Установить новое значение во время выполнения: set_maxRateOut(новое значение)
- Отображать партии в блоке
- Если эта опция установлена, то значок блока будет отображать цвет текущей партии.
Синтаксис: boolean showBatchesInFlowchart
- При новой партии на входе 1
- Действие выполняется, когда новая партия прибывает на вход 1. Эта партия не обязательно начнет поступать в блок.
Локальная переменная: Object batch — партия
- При новой партии на входе 2
- Действие выполняется, когда новая партия прибывает на вход 2. Эта партия не обязательно начнет поступать в блок.
Локальная переменная: Object batch — партия
- При новой партии на выходе
- Данное действие выполняется, когда новая партия прибывает на один из двух входов, или когда изменяются параметры Режим, Приоритет либо другие параметры, что может привести (не обязательно) к формированию новой партии на выходе из блока.
Локальная переменная: Object batch — партия
- При изменении скорости
- Действие выполняется, когда изменяется скорость любого потока. Обратите внимание на то, что определенные изменения, произошедшие в результате выполнения данного действия, могут вызвать другое мгновенное изменение скорости, за которым сразу последует повторное выполнение действия При изменении скорости, что в итоге может привести к взаимной блокировке.
Локальные переменные:
double in1rate — текущая скорость во входном порте in1
double in2rate — текущая скорость во входном порте in2
double outrate — текущая скорость в выходном порте
- Количество вещества
-
Функция Описание double amountPassed() Возвращает общий объем вещества, прошедший через выходной порт, начиная с запуска процесса моделирования. double amountPassed(AmountUnits units) Возвращает общий объем вещества (в заданных единицах измерения объема), прошедший через выходной порт, начиная с запуска процесса моделирования. - Скорость потока
-
Функция Описание double currentRate() Возвращает текущую скорость потока вещества на выходе. double currentRate(FlowRateUnits units) Возвращает текущую скорость потока вещества (в указанных единицах измерения скорости) на выходе. - Выходная партия
-
Функция Описание double updateOutputBatch() Выполняет принудительный пересчет выходной партии и ее цвета в соответствии с текущими заданными параметрами. - Сброс статистики
-
Функция Описание void resetStats() Сбрасывает собранную блоком статистику, включая статистику, собранную на его портах.
- in1
- Верхний входной порт, вход 1.
- in2
- Нижний входной порт, вход 2.
- out
- Выходной порт.
-
Как мы можем улучшить эту статью?
-