Моделирует трубу, по которой жидкость транспортируется из одной точки в другую. Имеет ограниченный объем. Есть опция, позволяющая содержать некоторое начальное количество жидкости на входе.
Как только труба полностью наполняется, она остается наполненной постоянно. В трубе не допускаются зазоры (если зазоры или конденсированные участки необходимы, то вы можете использовать блок BulkConveyor). Вся жидкость в трубе движется с одинаковой скоростью, поэтому когда труба заполнена, скорость входного потока всегда равна скорости выходного потока. Пока труба еще не наполнена, скорость ее входного потока ограничена лишь собственной скоростью трубы (если необходимо, установите опцию Скорость ограничена и определите верхний лимит скорости трубы в параметре Максимальная скорость). Заданное положительное значение скорости потока не должно быть ниже значения RATE_TOLERANCE, т.е. меньше 1.0e-9.
Труба транспортирует партии жидкости согласно правилу FIFO (в порядке поступления в очередь). Вы можете самостоятельно задать партию жидкости, которая изначально будет содержаться в трубе.
Блок Pipeline позволит вам определять действия, связанные с полным наполнением трубы, и с новыми партиями, прибывающими на ее вход и выход.
Демо модель: Pipeline
double amount() - Возвращает объем жидкости, находящийся в данный момент в трубе (совокупный объем всех партий жидкости). Если объем меньше значения Utils.TOLERANCE, возвращает 0.
double amount(AmountUnits units) - Возвращает объем жидкости (в указанных единицах измерения объема), находящийся в данный момент в трубе (совокупный объем всех партий жидкости). Если объем меньше значения Utils.TOLERANCE, возвращает 0.
double amountPassedIn() - Возвращает общий объем вещества, прошедший через входной порт трубы, начиная с запуска процесса моделирования.
double amountPassedIn(AmountUnits units) - Возвращает общий объем вещества (в указанных единицах измерения объема), прошедший через входной порт трубы, начиная с запуска процесса моделирования.
double amountPassedOut() - Возвращает общий объем вещества, прошедший через выходной порт трубы, начиная с запуска процесса моделирования.
double amountPassedOut(AmountUnits units) - Возвращает общий объем вещества (в указанных единицах измерения объема), прошедший через выходной порт трубы, начиная с запуска процесса моделирования.
boolean isFull() - Проверяет, наполнена ли труба, т.е. равен ли объем жидкости, находящейся в трубе, вместимости этой трубы. Возвращает true, если труба наполнена, и false, если она не наполнена.
boolean isEmpty() - Проверяет, является ли труба пустой. Возвращает true, если труба пустая, и false, если она не пустая. В пустой трубе все же может находиться партия нулевого размера в том случае, если она прибыла на вход, но не поступила в трубу.
double utilization() - Возвращает текущее значение использования пропускной способности трубы, то есть текущая входная скорость, деленная на максимальную входную скорость. Если текущая максимальная скорость не ограничена или равна 0, возвращает 0.
double utilizationTotal() - Возвращает среднее значение использования пропускной способности трубы за все время работы, то есть объем, который прошел через входную точку трубы, деленный на максимальный объем, который мог пройти, зависит от (возможно переменной) максимальной скорости. Если скорость хоть раз была выставлена неограниченной, функция вернет ноль.
double averageRateIn() - Возвращает среднюю скорость на входе в трубу за все время работы в куб. м. в секунду.
double currentRate() - Возвращает текущую скорость на входе в трубу. (Скорость потока на выходе либо отсутствует, если труба не заполнена, либо равна скорости на входе.)
double currentRate(FlowRateUnits units) - Возвращает текущую скорость на входе в трубу (в указанных единицах измерения скорости) на входе в трубу. (Скорость потока на выходе либо отсутствует, если труба не заполнена, либо равна скорости на входе).
void resetStats() - Сбрасывает собранную блоком статистику, включая статистику, собранную на его портах.
int numberOfBatches() - Возвращает количество партий, находящихся в данный момент в трубе, включая возможные партии с нулевой длиной.
Object getBatch(int index) - Возвращает партию с указанным индексом index. Партия с индексом 0 - это партия, находящаяся на выходе трубы, а партия с индексом numberOfBatches()-1 - это последняя партия на входе трубы.
double getBatchSize(int index) - Возвращает размер партии с указанным индексомindex. Партия с индексом 0 - это партия, находящаяся на выходе трубы, а партия с индексом numberOfBatches()-1 - это последняя партия на входе трубы.
double getBatchSize(int index, AmountUnits units) - Возвращает размер партии (в указанных единицах измерения объема) с указанным индексом index.
double getBatchOffset(int index) - Возвращает сумму размеров всех партий, расположенных ближе к входной точке трубы, чем партия с указанным индексом index. Функция предназначена для использования в случае создания нестандартной анимации для блока.