Худович И.М. Современные системы автоматизированного моделирован
.pdfзываемые «запасы» и принимают для проектирования величины параметров оборудования, полученные как произведение номинальных оптимальных величин и запасов. Недостатки данного подхода очевидны. Подход не гарантирует ни оптимальности полученного решения, ни того, что ограничения будут выполнены во время эксплуатации процесса. Если запасы окажутся слишком малыми, то ограничения будут нарушены, если слишком большими, то будет иметь место перерасход затрат.
Большим достижением современной науки явилась разработка в начале 80-х годов подхода, при котором неопределенность в параметрах процесса учитывается в самой постановке оптимизационной задачи. В дальнейшем постановка задачи была уточнена и расширена, и поиски наиболее адекватной постановки ведутся до сих пор. Учет неопределенности вводится как в критерий оптимизации, так и в ограничения. Появилось новое научное направление, получившее название «анализ гибкости». Основная цель такого анализа – получение «гибкой» химико-технологиче- ской системы (ХТС), оптимальной по сравнению с другими возможными вариантами. Гибкая ХТС сохраняет работоспособность при любых значениях параметров с неопределенностью из области возможных значений.
Задачи обычной оптимизации на порядок сложнее задач расчета материальных и тепловых балансов, а задача оптимизации с неопределенностью – на порядок сложнее обычной оптимизационной задачи.
Расмотренные ранее УМП: Aspen Plus, Hysys, ChemСad и Pro/II со-
держат математические модули для решения задачи нелинейного программирования, НЛП (обычной оптимизационной задачи). По крайней мере, Pro/II и Aspen Plus имеют математические программы, основанные на методе последовательного квадратичного программирования, который занимает сейчас лидирующее положение среди других методов. В последнее время начинает завоевывать популярность и успешно конкурировать с методом последовательного квадратичного программирования метод внутренней точки. Вероятно, этот метод в скором времени тоже будет введен в
УМП. Оба метода относятся к методам решения задачи оптимизации в традиционной постановке, и какой бы метод мы ни выбрали, надстройка над оптимизационным модулем в этих программах (даже самая простая) для пользователя крайне затруднительна.
Одной из важнейших особенностей задач оптимизации ХТС (и многих задач из других прикладных областей) является их многоуровневый характер. В модели ХТС естественным образом выделяются два уровня: уровень системы (верхний уровень) и уровень отдельных аппаратов (ниж-
89
ний уровень). В моделях отдельных аппаратов тоже могут быть свои подуровни. Соответственно, алгоритм расчета ХТС можно сформулировать в виде двухуровневой процедуры: на верхнем уровне производится расчет материального и теплового баланса для ХТС в целом, а на нижнем – рассчитываются отдельные аппараты. В алгоритме оптимизации тогда будет 3 уровня: верхний уровень – уровень работы алгоритма НЛП и два других – расчетные уровни. Такой подход используется в УМП ChemCad, Aspen Plus и др. Но реализация многоуровневого подхода в существующих УМП основана на простом объединении алгоритмов уровней и не учитывает всех достижений теории, что может привести к существенному увеличению вычислительных затрат и снижению надежности расчета. Многие особенности и возможности многоуровневого подхода в УМП не реализованы.
Другими важными особенностями задач оптимизации ХТС являются наличие так называемых скрытых ограничений и возможная множественность стационарных режимов. Не вдаваясь в детали, отметим, что первые обусловлены тем, что математическая модель химико-технологического процесса обычно справедлива в ограниченных пределах, вне которых она теряет физический смысл и вызывает хорошо известные сбои в счете.
5.2. Реализация задачи оптимизации при помощи УМП
Рассмотрим решение конкретных задач оптимизации при помощи одной из наиболее распространенных в нефтеперерабатывающей отрасли моделирующей программы PRO/II.
Алгоритм оптимизации, имеющийся в PRO/II, позволяет оптимизировать условия работы одного элемента или целого производства. В общем случае, задачу оптимизации можно сформулировать следующим образом:
минимизация f (x1, x2,..., xn )
чтобы |
hi (x1, x2,..., xn )=0 =1,...,m1 |
чтобы |
gi (x1, x2,..., xn )≤0 =1,...,m2 |
чтобы |
xi,min i ≤ xi ≤ xi,max i |
−целевая функция
−спецификации
−ограничения
−границы
где n – число переменных,
m1 – число спецификаций и m2 – число ограничений. При этом максимизация f эквивалентна минимизации –f.
Непосредственно для оптимизационных расчетов в PRO/II используется рабочий инструмент Optimizer (Оптимизатор). Для работы оптимизатора в PRO/II требуется задать целевую функцию и как минимум одну переменную. Кроме того, должны быть заданы верхняя и нижняя граница
90
изменения каждой переменной. Если задаются спецификации, их число не должно превышать число переменных. При этом число ограничений, которые можно задать, не зависит от числа переменных.
Целевая функция. В оптимизаторе задается только одна целевая функция. Она должна быть результатом расчетов программы и не может быть величиной, зафиксированной пользователем. Целевая функция может быть выражена или как эксплуатационный критерий (например, максимальное извлечение или минимальные потери), или как экономический критерий (например, минимальные затраты или максимальная прибыль). Для вычисления более сложных целевых функций, учитывающих целый ряд проектных и экономических факторов, можно использовать рабочий инструмент Calculator (Калькулятор), где она может быть определена через написанную пользователем подпрограмму.
Отметим, что целевая функция должна быть непрерывной в интересующей пользователя области. Оптимизатор работает наилучшим образом, если целевая функция имеет плавную зависимость от переменных, она не должна быть как слишком линейной, так и наоборот. К сожалению, на практике многие целевые функции достаточно линейны, что приводит к нахождению оптимизатором различных решений в зависимости от того, с каких значений переменных начат расчет. Эти решения, в которых соблюдается значение заданной погрешности, будут иметь близкие значения целевой функции, но значения переменных могут быть совершенно различны.
Оптимизационные переменные. Любая величина, определенная как фиксированный параметр в исходных данных, может быть выбрана в качестве переменной для оптимизатора в PRO/II. Это могут быть расходы или свойства потоков, параметры работы аппаратов, термодинамические свойства и результаты расчета Калькулятора/Calculator. Хотя и имеются определенные ограничения; например, если положение питания, боковых продуктов, орошений и горячей струи колонны используются как переменные в оптимизаторе, их расходы и тепловые нагрузки не могут быть использованы.
Спецификации и ограничения. Ограничения определяют область приемлемых решений задачи оптимизации, т.е. они определяют интервалы, в которых должны находиться определенные величины (с учетом заданной погрешности), чтобы обеспечивать приемлемое решение задачи оптимизации. Спецификации определяют заданные значения параметров схемы, которые должны соблюдаться (с учетом заданной погрешности), чтобы получить приемлемое решение задачи оптимизации.
91
Циклы, попытки, итерации. Оптимизатор включает в расчет внешнюю итерационную петлю. Для схемы на рис. 5.1, например, расчет колонны повторяется до тех пор, пока Оптимизатор не определит оптимальное положение тарелки питания. Такие итерационные петли (loops) называют циклами (cycles). Зачастую оптимизируемая схема также содержит рецикловые потоки. Поэтому каждый цикл оптимизации может включать целый ряд расчетов рецикла – попыток (trials). Далее, расчет любой колонны должен сойтись за определенное число итераций (iterations) при каждом просчете схемы.
При проведении оптимизационных расчетов, как для колонн, так и для рециклов, максимальное число итераций должно быть увеличено с целью предотвращения остановки расчета. Хотя значений по умолчанию может быть достаточно при базовом расчете, оптимизатор может сдвинуть значения параметров схемы в область более трудной сходимости.
При решении задачи оптимизации следует иметь в виду следующее:
−всегда решать базовый вариант отдельно и тщательно проверять результаты, чтобы убедиться, что постановка задачи и решение именно те, которые требуются;
−внимательно выбирать пределы и ограничения, чтобы параметры схемы были физически обусловлены во всей расчетной области, задача не будет решена, если, например, допустить получение отрицательных расходов и абсолютных температур;
−погрешности расчета схемы должны быть жестче для большей точности расчета.
Типовыми задачами является минимизация тепловой нагрузки или максимизация прибыли при работе ректификационной колонны.
a) Минимизация тепловой нагрузки. В первом случае (минимизации тепловой нагрузки, рис. 5.1), оптимизатор определяет положение тарелки питания, соответствующее минимальной целевой функции. Этой целевой функцией является тепловая нагрузка ребойлера. Положение тарелки питания является оптимизационной переменной.
92
Рис. 5.1. Типичная оптимизационная задача по минимизации тепловой нагрузки
Реализуем данный оптимизационный расчет для примера рассмотренного выше (п. 4.1). С этой целью на расчетной схеме дополнительно размещается пиктограмма рабочего элемента Optimizer (Оптимизатор, рис. 5.1.1), а в окне задачи параметров сырьевых и продуктовых потоков колонны (см. рис. 4.1.10) в качестве тарелки питания (Feed Tray) выбирается тарелка № 5.
Рис. 5.1.1. Размещение пиктограммы оптимизатора на расчетной схеме программы PRO/II
93
Задание параметров оптимизации можно выполнить следующими способами: дважды щелкнуть левой клавишей мыши на пиктограмме оптимизатора; использовать команду контекстного меню Data Entry (Ввод данных); с помощью команды меню Input/Data Entry (Входные данные/Ввод данных). После выполнения любого из этих действий на экран выводится окно Optimizer (Оптимизатор, рис. 5.1.2). Ввод данных по параметрам оптимизации выполняется в соответствующие поля и завершается нажатием кнопки ОК.
Рис. 5.1.2. Главное окно рабочего элемента оптимизатор программы PRO/II
Поле Objective Function (Целевая функция, рис. 5.1.2) предназначено для выбора целевой функции оптимизации. Для этого необходимо щелкнуть левой клавишей мыши по команде Parameter (Параметр) и в открывшемся окне выбрать объект, параметр которого будет выбран в качестве целевой функции (в рассматриваемом оптимизационном расчете Column (Колонна), см. 5.1.3). По завершении выбора объекта щелкнуть левой клавишей мыши по команде Parameter данного окна. В результате на экран будет выведено окно Parameter Selection (Выбор параметра), содержащее список параметров данного объекта, которые могут быть использованы в качестве целевой функции. После выбора необходимого параметра (в рассматриваемом оптимизационном расчете Heat Duty (Тепловая на-
94
грузка) ребойлера, рис. 5.1.4) необходимо подтвердить выбор последовательным нажатием кнопки ОК в окнах Parameter Selection и Parameter.
Рис. 5.1.3. Выбор целевой функции оптимизации в программе PRO/II
Рис. 5.1.4. Выбор целевой функции оптимизации в программе PRO/II
95
Поле Variables (Переменные, см. рис. 5.1.2) предназначено для выбора оптимизационных переменных. Для этого необходимо щелкнуть левой клавишей мыши по команде Parameter (Параметр) и в открывшемся окне выбрать объект, параметр которого будет выбран в качестве оптимизационной переменной (в рассматриваемом оптимизационном расчете Column (Колонна)). По завершении выбора объекта щелкнуть левой клавишей мыши по команде Parameter данного окна. В результате на экран будет выведено окно Parameter Selection (Выбор параметра), содержащее список параметров данного объекта, которые могут быть использованы в качестве оптимизационной переменной. После выбора необходимого параметра (в рассматриваемом оптимизационном расчете Tray Location (Расположение тарелки) на которую подается сырьевой поток (Feed/FD), рис. 5.1.5) необходимо подтвердить выбор последовательным нажатием кнопки ОК в окнах Parameter Selection и Parameter. Далее необходимо задать пределы изменения оптимизационной переменной, указав ее минимальное (Minimum Value) и максимальное значение (Maximum Value). В рассматриваемой оптимизационной задаче 2 и 20 соответственно (т.е. точка ввода сырья будет подбираться в диапазоне с верхней по нижнюю тарелку колонны).
Рис. 5.1.5. Выбор оптимизационной переменной в программе PRO/II
Поле Objective (Цель) предназначено для выбора цели оптимизации, т.е. необходимо выбрать максимизацию (Maximize) или минимизацию (Minimize) целевой функции. В рассматриваемом примере подбор тарелки
96
питания осуществляется с целью минимизации тепловой нагрузки ребойлера, т.о. необходимо выбрать пункт Minimize (см. рис. 5.1.6).
Рис. 5.1.6. Главное окно рабочего элемента оптимизатор программы PRO/II
Для проведения оптимизационного расчета используется команда Run (Счет), пиктограмма которой находится на панели инструментов (в виде черного повернутого треугольника расположенного в правом нижнем углу квадрата пиктограммы).
Ниже приведена часть отчета программы PRO/II (способы вывода отчета см. п. 4.1), описывающая положение сырьевых и продуктовых потоков колонны.
FEED AND PRODUCT STREAMS |
|
|
|
||
TYPE |
STREAM |
PHASE FROM TO |
LIQUID PCT |
FLOW RATES |
HEAT RATES |
|
|
TRAY TRAY |
FRAC |
KG-MOL/HR |
M*KJ/HR |
--- ------------ ------ ---- ---- ------ ---- ------------ ------------
FEED |
FD |
LIQUID |
|
13 |
1.0000 |
76.9 |
9.89 |
0.0648 |
PROD |
OV |
LIQUID |
1 |
14 |
1.0000 |
23.1 |
2.97 |
0.0195 |
LIQUID |
|
|
|
3.88 |
0.0324 |
|||
PROD |
BT |
LIQUID |
21 |
|
|
|
8.98 |
0.2441 |
Как видно из результатов расчета, минимальная тепловая нагрузка ребойлера колонны, при принятых к расчету спецификациях качества про-
97
дуктов, будет достигнута в случае порционной подачи сырья на 13 и 14 тарелку колонны. При этом большая часть сырья (76,9 % мас.) должна подаваться на 13 тарелку.
б) Максимизация прибыли. Рассмотрим вторую типичную задачу оптимизации, направленную на определение положения тарелки питания, соответствующего максимальной прибыли при работе колонны. Схема рассматриваемого оптимизационного расчета представлена на рис. 5.2.
Рис. 5.2. Типичная оптимизационная задача по максимизации прибыли
В этом примере оптимизатор определяет положение тарелки питания, соответствующее максимальной целевой функции, вычисляемой калькулятором (Calculator). Эта целевая функция включает в себя стоимость верхнего и нижнего продукта за вычетом эксплуатационных затрат на работу колонны. Следовательно, положение тарелки питания является оптимизационной переменной. Схема имеет две дополнительные степени свободы – нагрузки на кипятильник и конденсатор. Они используются как переменные внутри элемента Column, чтобы выдерживать спецификации по качеству верхнего и нижнего продуктов.
При расчете эксплутационных затрат, для упрощения расчета, принимается, что они состоят из затрат на подогрев горячей струи и охлаждение верхнего продукта в конденсаторе. Учет затрат осуществляется путем перемножения тепловых нагрузок данных аппаратов с условным ценовым тарифом.
98
