Общая информация

Библиотека Моделирования Потоков позволяет вам моделировать хранение и перенос жидкостей, объемного вещества или множества дискретных элементов, которые вы не хотите моделировать по отдельности.

Библиотека включает в себя такие блоки как Tank, Pipeline, Valve, FluidSource и FluidDispose. Есть также блоки для направления, объединения и разделения потока. Кроме того, имеется объект BulkConveyor, разработанный для моделирования переноса объемных веществ или конденсирующихся летучих веществ. Вы можете найти полный список блоков Библиотеки Моделирования Потоков здесь.

Библиотека Моделирования Потоков взаимодействует с Библиотекой Моделирования Процессов. Она может преобразовывать агенты в партии жидкости, и наоборот.

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

Линейная природа гидродинамики позволяет использовать LP-решатель (для линейного программирования), для того чтобы вычислять максимальную скорость потока жидкости. Решатель вызывается только в определенные моменты изменений, что делает скорость исполнения моделей из Библиотеки Моделирования Потоков намного выше, чем у моделей из Системной Динамики. Вместе с тем, LP вычисления намного более точны, так как в LP решателе не используются временные шаги. Мы рекомендуем использовать Библиотеку Моделирования Потоков в тех случаях, когда система линейна, а Системную Динамику использовать только в том случае, если система является нелинейной, то есть когда в модели присутствуют непрерывные циклы обратной связи или постоянное изменение скорости движения потока жидкости.

Увеличение скоростей потоков до максимума и приоритеты потоков

По умолчанию, данные блоки Библиотеки Моделирования Потоков заставляют LP решатель до максимума увеличить скорости их выходных потоков: FluidSource, AgentToFluid, Tank, и BulkConveyor. Кроме того, блоки FluidMerge и FluidSplit в режиме приоритетов формируют запросы на увеличения скорости потока до максимума на одном из входов или выходов. Это реализуется путем повышения приоритета (коэффициента) скорости движения соответствующего потока в целевой функции линейного программирования. По умолчанию, величина скорости этого потока получает приоритет 1, а всех остальных потоков - приоритет 0.

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

Максимальные и минимальные значения скоростей и уровней

Если значение скорости во время выполнения модели равняется Utils.MAXIMUM_RATE (1.0E10), модель остановится и появится сообщение об ошибке “Flow rate evaluated to the maximum value. You need to set a limit for this rate.”  Это происходит ввиду того, что максимальная скорость как правило не является нормальной величиной, чаще следствием того, что пользователь не указал где-либо ограничение скорости. Чтобы избежать подобной ситуации, необходимо указать ограничение максимальной скорости в свойствах блоков диаграммы процессов.

Обработка численных ошибок

В Библиотеке Моделирования Потоков скорости потоков, временные интервалы и другие значения часто перерассчитываются при помощи линейных формул: объем = скорость потока * временной интервал и т.д. Как следствие, могут возникать численные ошибки. Например, если вместимость резервуара равна 100 м³ и скорость поступающего потока поддерживается на уровне ровно 1 м³ в секунду на протяжении ровно 100 секунд, "буквальная" реализация резервуара могла бы привести тому, что его объем равен, скажем, 100 +/- 1e-12 м³. Библиотека Моделирования Потоков по возможности сводит к минимуму последствия от численных ошибок, приводя рассчитываемые величины к необходимым значениям.  Для этого используется  Utils.TOLERANCE - внутренняя константа, применяемая для всех типов величин в библиотеке.

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