Fluid Merge


Объединяет два потока в один. Скорость выходного потока равна сумме скоростей входных потоков.

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

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

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

Демо модель: FluidMerge

Параметры

Режим
Режим смешивания. Один из следующих:
Нейтральный - ни один из входов не получает приоритет
Пропорциональный - скорости входных потоков должны подчиняться правилам пропорций
Приоритет - один из входов обладает приоритетом над другим
Получить значение: 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(true или false)
Приоритет
[Данный параметр виден и применяется только в том случае, если параметр Режим установлен в значение Приоритет, а также установлена опция Другие приоритеты] Применяется в режиме приоритетов с приоритетами по умолчанию. Если выбрана опция Вход 1, то вход 1 имеет приоритет над входом 2, в противном случае Вход 2 обладает приоритетом. В результате значения приоритетов будут равны 1 и 0.
Синтаксис: boolean priorityInput1
Поменять значение во время выполнения: set_priorityInput1(true или false)
Приоритет входа 1
[Данный параметр виден и применяется только в том случае, если параметр Режим установлен в значение Приоритет, а также установлена опция Другие приоритеты] Применяется в режиме приоритета с другими приоритетами. Определяет приоритет потока на входе 1 в общей диаграмме процесса. Значение приоритета должно быть неотрицательным целым числом.
Синтаксис: int priorityInput1Custom
Поменять значение во время выполнения: set_priorityInput1Custom(новое значение)
Приоритет входа 2
[Данный параметр виден и применяется только в том случае, если параметр Режим установлен в значение Приоритет, а также установлена опция Другие приоритеты] Применяется в режиме приоритета с другими приоритетами. Определяет приоритет потока на входе 2 в общей диаграмме процесса. Значение приоритета должно быть неотрицательным целым числом.
Синтаксис: int priorityInput2Custom
Поменять значение во время выполнения: set_priorityInput2Custom(новое значение)
Партия на выходе
Определяет то, как формируется партия на выходе данного блока. Одно из следующих:
Та же, что на входе 1 – та же, что и партия на входе 1
Та же, что на входе 2 – та же, что и партия на входе 2
Та же, что на приоритетном входе – та же, что и партия на приоритетном входе (только в режиме приоритета)
По умолчанию – устанавливается в партию по умолчанию
Другая – определяется параметром Партия на выходе (см. ниже)
Получить значение: modeBatch
Установить новое значение во время выполнения: set_modeBatch(новое значение)
Допустимые значения: FluidMerge.OUTPUT_BATCH_IN1; FluidMerge.OUTPUT_BATCH_IN2; FluidMerge.OUTPUT_BATCH_PRIORITY; FluidMerge.OUTPUT_BATCH_DEFAULT; FluidMerge.OUTPUT_BATCH_CUSTOM
Партия на выходе [динамический]
[Данный параметр виден и применяется только в том случае, если параметр Партия на выходе: Другая] Определяет партию, которую нужно создать на выходе. Выполнение данного действия может зависеть от входных партий.
Тип значения: Object
Локальные переменные: Object batch1 - партия на входе 1
Object batch2 - партия на входе 2
Изменить цвет партии
[Данный параметр виден и применяется только в том случае, если параметр Партия на выходе: Другая] Если данная опция установлена, то цвет выходной партии будет определяться параметром Цвет партии (см. ниже), в противном случае будет применяться заданный по умолчанию цвет.
Синтаксис: boolean customBatchColor
Установить новое значение во время выполнения: set_customBatchColor(новое значение)
Цвет партии [динамический]
[Параметр виден и применяется только в том случае, если установлена опция Изменить цвет партии] Здесь вы можете задать цвет выходной партии.
Type of the value: Color
Локальная переменная: Object batch - выходная партия
Скорость на выходе ограничена
Если данная опция выбрана (значение true), то вы можете задавать другой верхний предел скорости потока на выходе блока.
Синтаксис: boolean limitRateOut
Поменять значение во время выполнения: set_limitRateOut(true или false)
Максимальная скорость на выходе
[Параметр виден и применяется только в том случае, если выбрана опция Скорость на выходе ограничена] Здесь вы можете задать другой верхний предел скорости потока на выходе. Значение по умолчанию составляет 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) - Возвращает текущую скорость потока вещества (в указанных единицах измерения скорости) на выходе.

void resetStats() - Сбрасывает собранную блоком статистику, включая статистику, собранную на его портах.

double updateOutputBatch() - Выполняет принудительный пересчет выходной партии и ее цвета в соответствии с текущими заданными параметрами.

Порты

in1
Верхний входной порт, вход 1.
in2
Нижний входной порт, вход 2.
out
Выходной порт.