Худович И.М. Современные системы автоматизированного моделирован. Уо Полоцкий государственный университет современные системы автоматизированного моделирования химикотехнологических процессов
Скачать 1.72 Mb.
|
Насос Мощность КВт 0,0955 0,0953 0,0964 ±0,61 Напор м 41,097 40,73 41,308 ±0,71 88 5. РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ В НЕФТЕПЕРЕРАБОТКЕ В настоящее время решение оптимизационных задач в нефтеперера- ботке способствует проектированию значительно более экономичных и надежных химико-технологических систем, а также позволяет более эф- фективно управлять работой действующих. 5.1. Общие сведения Оптимизационные расчеты математически и, соответственно, про- граммно гораздо сложнее, чем просто балансовые, кроме того, в настоящее время они достаточно непривычны для проектировщиков. Но главное и принципиальное затруднение их реализации связано с частичной неопре- деленностью информации, которой мы располагаем, когда должны решать задачу оптимизации. Разработка именно этой проблемы обещает ученым и производителям УМП очередной прорыв в моделировании и повышении эффективности химического производства. Неопределенность практически всегда имеет место на этапе проек- тирования и часто – на этапе эксплуатации ХТС. Наличие неопределенно- сти информации требует как новых математических постановок задач, так и новых методов их решения. Неопределенности бывают двух родов. Одни из них, такие как пара- метры сырья и температура окружающей среды, могут изменяться во вре- мя работы системы, оставаясь в пределах некоторого диапазона измене- ний. Для них принципиально невозможно указать единственное значение. Другие могут быть в реальности постоянными для данного процесса, но их значения нам известны лишь с точностью до некоторого интервала, как, например, некоторые коэффициенты в кинетических уравнениях или урав- нениях тепло- и массопереноса. Нельзя сказать, что до сих пор при решении задачи оптимизации не- определенности просто игнорировались. Они учитывались, но приближен- ным и волевым способом, который состоит в следующем. Неопределен- ным переменным на основе опыта и интуиции присваиваются некоторые «номинальные» (обычно – средние) значения. Решается задача оптимиза- ции с этими значениями в традиционной постановке, в результате чего оп- ределяются номинальные оптимальные величины параметров оборудова- ния (длины и диаметра реактора, поверхностей теплообмена в теплооб- менниках, числа тарелок в ректификационных колоннах и т.п.). После это- го с учетом знаний о процессе, опять же волевым способом, вводят так на- 89 зываемые «запасы» и принимают для проектирования величины парамет- ров оборудования, полученные как произведение номинальных оптималь- ных величин и запасов. Недостатки данного подхода очевидны. Подход не гарантирует ни оптимальности полученного решения, ни того, что ограни- чения будут выполнены во время эксплуатации процесса. Если запасы окажутся слишком малыми, то ограничения будут нарушены, если слиш- ком большими, то будет иметь место перерасход затрат. Большим достижением современной науки явилась разработка в на- чале 80-х годов подхода, при котором неопределенность в параметрах процесса учитывается в самой постановке оптимизационной задачи. В дальнейшем постановка задачи была уточнена и расширена, и поиски наи- более адекватной постановки ведутся до сих пор. Учет неопределенности вводится как в критерий оптимизации, так и в ограничения. Появилось но- вое научное направление, получившее название «анализ гибкости». Ос- новная цель такого анализа – получение «гибкой» химико-технологиче- ской системы (ХТС), оптимальной по сравнению с другими возможными вариантами. Гибкая ХТС сохраняет работоспособность при любых значе- ниях параметров с неопределенностью из области возможных значений. Задачи обычной оптимизации на порядок сложнее задач расчета ма- териальных и тепловых балансов, а задача оптимизации с неопределенно- стью – на порядок сложнее обычной оптимизационной задачи. Расмотренные ранее УМП: Aspen Plus, Hysys, ChemСad и Pro/II со- держат математические модули для решения задачи нелинейного про- граммирования, НЛП (обычной оптимизационной задачи). По крайней ме- ре, Pro/II и Aspen Plus имеют математические программы, основанные на методе последовательного квадратичного программирования, который за- нимает сейчас лидирующее положение среди других методов. В последнее время начинает завоевывать популярность и успешно конкурировать с ме- тодом последовательного квадратичного программирования метод внут- ренней точки. Вероятно, этот метод в скором времени тоже будет введен в УМП. Оба метода относятся к методам решения задачи оптимизации в традиционной постановке, и какой бы метод мы ни выбрали, надстройка над оптимизационным модулем в этих программах (даже самая простая) для пользователя крайне затруднительна. Одной из важнейших особенностей задач оптимизации ХТС (и мно- гих задач из других прикладных областей) является их многоуровневый характер. В модели ХТС естественным образом выделяются два уровня: уровень системы (верхний уровень) и уровень отдельных аппаратов (ниж- 90 ний уровень). В моделях отдельных аппаратов тоже могут быть свои поду- ровни. Соответственно, алгоритм расчета ХТС можно сформулировать в виде двухуровневой процедуры: на верхнем уровне производится расчет материального и теплового баланса для ХТС в целом, а на нижнем – рас- считываются отдельные аппараты. В алгоритме оптимизации тогда будет 3 уровня: верхний уровень – уровень работы алгоритма НЛП и два других – расчетные уровни. Такой подход используется в УМП ChemCad, Aspen Plus и др. Но реализация многоуровневого подхода в существующих УМП осно- вана на простом объединении алгоритмов уровней и не учитывает всех дос- тижений теории, что может привести к существенному увеличению вычис- лительных затрат и снижению надежности расчета. Многие особенности и возможности многоуровневого подхода в УМП не реализованы. Другими важными особенностями задач оптимизации ХТС являются наличие так называемых скрытых ограничений и возможная множествен- ность стационарных режимов. Не вдаваясь в детали, отметим, что первые обусловлены тем, что математическая модель химико-технологического процесса обычно справедлива в ограниченных пределах, вне которых она теряет физический смысл и вызывает хорошо известные сбои в счете. 5.2. Реализация задачи оптимизации при помощи УМП Рассмотрим решение конкретных задач оптимизации при помощи одной из наиболее распространенных в нефтеперерабатывающей отрасли моделирующей программы PRO/II. Алгоритм оптимизации, имеющийся в PRO/II, позволяет оптимизи- ровать условия работы одного элемента или целого производства. В общем случае, задачу оптимизации можно сформулировать следующим образом: ( ) ( ) ( ) 1 2 i 1 2 1 i 1 2 2 i,min i i i,max i , ,..., целевая функция , ,..., 0 1,..., спецификации , ,..., 0 1,..., ограничения границы n n n минимизация f x x x чтобы h x x x m чтобы g x x x m чтобы x x x − = = − ≤ = − ≤ ≤ − где n – число переменных, m 1 – число спецификаций и m 2 – число ограничений. При этом мак- симизация f эквивалентна минимизации –f. Непосредственно для оптимизационных расчетов в PRO/II использу- ется рабочий инструмент Optimizer (Оптимизатор). Для работы оптимиза- тора в PRO/II требуется задать целевую функцию и как минимум одну пе- ременную. Кроме того, должны быть заданы верхняя и нижняя граница 91 изменения каждой переменной. Если задаются спецификации, их число не должно превышать число переменных. При этом число ограничений, кото- рые можно задать, не зависит от числа переменных. Целевая функция . В оптимизаторе задается только одна целевая функция. Она должна быть результатом расчетов программы и не может быть величиной, зафиксированной пользователем. Целевая функция может быть выражена или как эксплуатационный критерий (например, макси- мальное извлечение или минимальные потери), или как экономический критерий (например, минимальные затраты или максимальная прибыль). Для вычисления более сложных целевых функций, учитывающих целый ряд проектных и экономических факторов, можно использовать рабочий инструмент Calculator (Калькулятор), где она может быть определена через написанную пользователем подпрограмму. Отметим, что целевая функция должна быть непрерывной в интере- сующей пользователя области. Оптимизатор работает наилучшим образом, если целевая функция имеет плавную зависимость от переменных, она не должна быть как слишком линейной, так и наоборот. К сожалению, на прак- тике многие целевые функции достаточно линейны, что приводит к нахож- дению оптимизатором различных решений в зависимости от того, с каких значений переменных начат расчет. Эти решения, в которых соблюдается значение заданной погрешности, будут иметь близкие значения целевой функции, но значения переменных могут быть совершенно различны. Оптимизационные переменные . Любая величина, определенная как фиксированный параметр в исходных данных, может быть выбрана в качест- ве переменной для оптимизатора в PRO/II. Это могут быть расходы или свой- ства потоков, параметры работы аппаратов, термодинамические свойства и результаты расчета Калькулятора/Calculator. Хотя и имеются определенные ограничения; например, если положение питания, боковых продуктов, оро- шений и горячей струи колонны используются как переменные в оптимиза- торе, их расходы и тепловые нагрузки не могут быть использованы. Спецификации и ограничения. Ограничения определяют область приемлемых решений задачи оптимизации, т.е. они определяют интерва- лы, в которых должны находиться определенные величины (с учетом за- данной погрешности), чтобы обеспечивать приемлемое решение задачи оптимизации. Спецификации определяют заданные значения параметров схемы, которые должны соблюдаться (с учетом заданной погрешности), чтобы получить приемлемое решение задачи оптимизации. 92 Циклы, попытки, итерации . Оптимизатор включает в расчет внеш- нюю итерационную петлю. Для схемы на рис. 5.1, например, расчет ко- лонны повторяется до тех пор, пока Оптимизатор не определит оптималь- ное положение тарелки питания. Такие итерационные петли (loops) назы- вают циклами (cycles). Зачастую оптимизируемая схема также содержит рецикловые потоки. Поэтому каждый цикл оптимизации может включать целый ряд расчетов рецикла – попыток (trials). Далее, расчет любой колон- ны должен сойтись за определенное число итераций (iterations) при каждом просчете схемы. При проведении оптимизационных расчетов, как для колонн, так и для рециклов, максимальное число итераций должно быть увеличено с це- лью предотвращения остановки расчета. Хотя значений по умолчанию может быть достаточно при базовом расчете, оптимизатор может сдвинуть значения параметров схемы в область более трудной сходимости. При решении задачи оптимизации следует иметь в виду следующее: − всегда решать базовый вариант отдельно и тщательно проверять результаты, чтобы убедиться, что постановка задачи и решение именно те, которые требуются; − внимательно выбирать пределы и ограничения, чтобы параметры схемы были физически обусловлены во всей расчетной области, задача не будет решена, если, например, допустить получение отрицательных расхо- дов и абсолютных температур; − погрешности расчета схемы должны быть жестче для большей точности расчета. Типовыми задачами является минимизация тепловой нагрузки или максимизация прибыли при работе ректификационной колонны. a) Минимизация тепловой нагрузки. В первом случае (минимизации тепловой нагрузки, рис. 5.1), оптимизатор определяет положение тарелки питания, соответствующее минимальной целевой функции. Этой целевой функцией является тепловая нагрузка ребойлера. Положение тарелки пи- тания является оптимизационной переменной. 93 Рис. 5.1. Типичная оптимизационная задача по минимизации тепловой нагрузки Реализуем данный оптимизационный расчет для примера рассмот- ренного выше (п. 4.1). С этой целью на расчетной схеме дополнительно размещается пиктограмма рабочего элемента Optimizer (Оптимизатор, рис. 5.1.1), а в окне задачи параметров сырьевых и продуктовых потоков колонны (см. рис. 4.1.10) в качестве тарелки питания (Feed Tray) выбирает- ся тарелка № 5. Рис. 5.1.1. Размещение пиктограммы оптимизатора на расчетной схеме программы PRO/II 94 Задание параметров оптимизации можно выполнить следующими способами: дважды щелкнуть левой клавишей мыши на пиктограмме оп- тимизатора; использовать команду контекстного меню 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 (Тепловая на- 95 грузка) ребойлера, рис. 5.1.4) необходимо подтвердить выбор последова- тельным нажатием кнопки ОК в окнах Parameter Selection и Parameter. Рис. 5.1.3. Выбор целевой функции оптимизации в программе PRO/II Рис. 5.1.4. Выбор целевой функции оптимизации в программе PRO/II 96 Поле 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) целевой функции. В рассматриваемом примере подбор тарелки 97 питания осуществляется с целью минимизации тепловой нагрузки ребой- лера, т.о. необходимо выбрать пункт 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 LIQUID 14 1.0000 23.1 2.97 0.0195 PROD OV LIQUID 1 3.88 0.0324 PROD BT LIQUID 21 8.98 0.2441 Как видно из результатов расчета, минимальная тепловая нагрузка ребойлера колонны, при принятых к расчету спецификациях качества про- 98 дуктов, будет достигнута в случае порционной подачи сырья на 13 и 14 та- релку колонны. При этом большая часть сырья (76,9 % мас.) должна пода- ваться на 13 тарелку. б) Максимизация прибыли. Рассмотрим вторую типичную задачу оп- тимизации, направленную на определение положения тарелки питания, со- ответствующего максимальной прибыли при работе колонны. Схема рас- сматриваемого оптимизационного расчета представлена на рис. 5.2. Рис. 5.2. Типичная оптимизационная задача по максимизации прибыли В этом примере оптимизатор определяет положение тарелки пита- ния, соответствующее максимальной целевой функции, вычисляемой калькулятором (Calculator). Эта целевая функция включает в себя стои- мость верхнего и нижнего продукта за вычетом эксплуатационных затрат на работу колонны. Следовательно, положение тарелки питания является оптимизационной переменной. Схема имеет две дополнительные степени свободы – нагрузки на кипятильник и конденсатор. Они используются как переменные внутри элемента Column, чтобы выдерживать спецификации по качеству верхнего и нижнего продуктов. При расчете эксплутационных затрат, для упрощения расчета, при- нимается, что они состоят из затрат на подогрев горячей струи и охлажде- ние верхнего продукта в конденсаторе. Учет затрат осуществляется путем перемножения тепловых нагрузок данных аппаратов с условным ценовым тарифом. 99 Выручка от реализации верхнего и нижнего продукта рассчитывает- ся путем перемножения соответствующих расходов и условных ценовых тарифов. Разберем данный оптимизационный расчет более подробно, моди- фицировав соответствующим образом предыдущий пример. С этой целью на расчетной схеме дополнительно размещается пиктограмма рабочего элемента Calculator (Калькулятор). Настройка и задание параметров расчета калькулятора можно вы- полнить следующими способами: дважды щелкнуть левой клавишей мыши на его пиктограмме; выделив пиктограмму калькулятора (щелчок правой клавиши мыши), использовать команду контекстного меню Data Entry (Ввод данных); с помощью команды меню Input/Data Entry (Входные дан- ные/Ввод данных) после выделения соответствующей пиктограммы. После выполнения любого из этих действий на экран выводится окно Calculator (Калькулятор). Для получения доступа к разделам ввода данных по пара- метрам расчета производимого калькулятором необходимо нажать левой клавишей мыши по кнопке Edit/View Declarations (Редактирова- ние/Просмотр деклараций) в главном окне рабочего элемента Calculator (Калькулятор). Раздел Parameters (Параметры) предназначен для выбора перемен- ных, участвующих в расчетах выполняемых калькулятором. При нажатии кнопки Parameters (Параметры) на экран выводится Таблица Параметров, в которой можно задать поток или результаты работы элемента, которые должны быть извлечены и которым должен быть назначен четкий номер параметра. Эти результаты после этого могут использоваться в процедурах состояния с применением переменной P (номер параметра). В рассматри- ваемом примере выбирается 4 переменных (рис. 5.2.1): 1 – соответствует тепловой нагрузке конденсатора ( ×10^6 КДж/час); 2 – соответствует теп- ловой нагрузке ребойлера ( ×10^6 КДж/час); 3 – соответствует расходу верхнего продукта (кг/час); 4 – соответствует расходу нижнего продукта (кг/час). Выбор переменных схож с выбором параметров оптимизации рас- смотренным выше. Раздел Constants (Константы) предназначен для задания постоянных величин, участвующих в расчетах выполняемых калькулятором. При на- жатии кнопки Constants (Константы) на экран выводится Таблица Кон- стант, в которой можно задать различные цифровые номера констант, ко- торые остаются неизменными при любом расчете в секции процедуры. Для 100 использования этих значений в секции процедуры используется специфи- кация C (номер константы). В рассматриваемом примере задается 4 кон- станты (рис. 5.2.2): 1 – равна тарифу на единицу снимаемого тепла в кон- денсаторе (в данном примере условно принимается равным 5000 еди- ниц/КДж); 2 – равна тарифу на единицу подводимого тепла в ребойлере (в данном примере условно принимается равным 10000 единиц/КДж); 3 – равна цене за единицу верхнего продукта (в данном примере условно принимается равной 10 единиц/кг); 4 – равна цене за единицу нижнего продукта (в данном примере условно принимается равной 7 единиц/кг). Раздел (Результаты). При нажатии кнопки Results на экран выводит- ся Таблица Результатов, в которой можно ввести описательные метки для элементов массива R(), в котором хранятся результаты расчетов. В рас- сматриваемом примере не используется. Раздел Arrays (Массивы). При нажатии кнопки Arrays на экран выво- дится текущий размер массива параметров (P), констант (C), результатов (R), индексов цикла DO (IS, IX) и переменных (V). По умолчанию массивы имеют размеры в 50, 50, 50, 10, 200 и 10 строк соответственно. В рассмат- риваемом оптимизационном расчете принимаем значения по умолчанию. Рис. 5.2.1. Редактирование параметров калькулятора в программе PRO/II 101 Рис. 5.2.2. Редактирование констант калькулятора в программе PRO/II Раздел (Последовательность потоков). При нажатии кнопки Stream Sequence на экран выводится два перечня потоков. Слева – перечень всех доступных потоков изображенных на технологической схеме. Справа – пе- речень выбранных пользователем потоков. С помощью кнопок Add (Доба- вить) и Remove (Переместить) пользователь имеет возможность добавлять и удалять потоки, из которых будут извлекаться данные. В рассматривае- мом примере переменные из потоков не извлекаются, т.о. данный раздел не редактируется. Для перехода к вводу расчетных процедур необходимо нажать кноп- ку Hide Declarations (Скрыть декларации). В результате активизируется главное окно калькулятора и текстовое поле Procedure (Процедура). Дан- ное поле предназначено для составления выражений на языке |