Создание математической библиотеки в пакете MATLAB для расчета оптимального распределения природного газа в группе доменных печей
В работе рассмотрены особенности разработки алгоритмического обеспечения для решения задачи оптимизации распределения природного газа. Приведены расчетные форму- лы и архитектура программы.
Авторы – М. А. Бякова, И. А. Гурин, В. В. Лавров, Н. А. Спирин. ФГАОУ ВО «Уральский федеральный университет имени первого Президента России Б.Н. Ельцина», г. Екатеринбург.
Цены на кокс и природный газ, согласно экономическим прогнозам, продолжат расти в ближайшей и долгосрочной перспективе. Поэтому в современных условиях резко возросла потребность в использовании автоматизированных систем комплексной оптимизации условий работы доменных печей и методов оперативного управления технологическим режимом доменной плавки. При заданном на доменный цех общем расходе ресурсов целесообразно иметь оперативную методику оценки эффективности использования топливно-энергетических ресурсов на отдельных доменных печах и осуществлять их оптимальное распределение. Решить эту задачу можно только на основе широкого использования современных методов математического моделирования и разработок на этой основе автоматизированных систем оптимизации распределения энергоресурсов [1].
Разработанная ранее автоматизированная система оптимального распределения инжектируемого топлива в режиме «советчик», была реализована в Visual Fortran. Она позволяет рекомендовать для инженерно-технологического персонала оптимальные параметры комбинированного дутья для каждой печи при изменении индивидуальных режимных параметров их работы, объема имеющихся топливно-энергетических ресурсов и конъюнктуры рынка. Она была успешно введена в эксплуатацию на ПАО «ММК». Однако, в связи с переходом предприятия на новую операционную систему, появилась необходимость в усовершенствовании программного обеспечения и использование новых программных средств для реализации алгоритма расчета.
Пользовательский интерфейс реализован в пакете Microsoft Visual Studio на языке программирования С#. В качестве математического модуля использовался пакет Microsoft Excel. Однако, при использовании пакета Microsoft Office Excel для решения задачи был выявлен ряд недостатков:
- максимальное количество ограничений в надстройке «Поиск решения» при нахождении целевой функции составляет 100. Данное ограничение не позволяет гибко решать задачу, настраивая ограничения на каждую печь;
- необходимость хранения отношений между данными приложения и соответствующими ячейками Excel-файла. Другими словами, логика работы клиентского приложения связана с реализацией модели оптимизации в Excel-файле, поэтому любое изменение модели оптимизации требует постоянной перенастройки диапазонов ячеек и перекомпиляции приложения;
- низкая скорость решения задачи. Действия с Excel-файлом осуществляются через открытие приложения Microsoft Office Excel в фоновом режиме. Открытие занимает большой промежуток времени, а выполнение операций чтения и записи осуществляется с задержкой.
Для устранения этих недостатков было принято решение использовать пакет MATLAB, который специально ориентирован на решение сложных математических задач. Его основное достоинство заключается в наличии сотен и тысяч встроенных математических функций и десятков вычислительных алгоритмов.
Архитектура усовершенствованной системы представлена на рис. 1.
Рис. 1. Архитектура системы
Отличительной особенностью MATLAB от других математических пакетов является наличие средств, которые позволяют использовать функционал, созданный в MATLAB, при разработке автономных приложений. Такая возможность реализуется с помощью продукта MATLAB Compiler. Данный продукт позволяет собирать модули в виде [2]:
- независимое приложение;
- C/C++ библиотеки (DLL в Windows, разделяемые библиотекив Linux);
- программные компоненты, такие как классы Java, сборки .NET или надстройки Microsoft Excel для использования в других приложениях.
Приложения и библиотеки, созданные с помощью MATLAB Compiler, используют свободно распространяемое исполняемое ядро, называемое MATLAB Compiler Runtime (MCR). Это позволяет запускать приложения, которые используют MATLAB-функции, без необходимости установки дорогостоящей копии MATLAB.
Одним из инструментов для создания математических библиотек или внешних компонентов является Deployment Tool, представляющий собой графический интерфейс. Вызов данного инструмента осуществляется командой deploytool.
На рис. 2 представлено стартовое окно Deployment Tool, на котором предлагается выбрать тип и создать новый проект.
Рис. 2. Стартовое окно инструмента Deployment Tool в MATLAB
Название проекта определяет пространство имен, используемое в дальнейшем в Visual C#. Проект состоит из классов, которые в свою очередь включают M-файлы. Каждый M-файл включает одну функцию, которая вызывается как метод соответствующего класса в Visual C#.
Анализ нелинейности доменного процесса показал, что при решении задач оптимального распределения топливно-энергетических ресурсов, в силу относительно небольшого отклонения параметров от базового состояния, достаточно использовать линеаризованные зависимости.
Рассмотрим решение задачи линейного программирования в пакете MATLAB. Решение осуществляется с помощью функции linprog [3]. Функция linprog решает задачу линейного программирования в форме:
Основными входными данными функции linprog являются: вектор коэффициентов целевой функции f, матрица ограничений-неравенств A, вектор правых частей ограничений-неравенств b, матрица ограничений-равенств Aeq, вектор правых частей ограничений-равенств beq, вектор lb, ограничивающий план x снизу, вектор ub, ограничивающий план x сверху. На выходе функция linprog даёт оптимальный план x задачи (1) и экстремальное значение целевой функции fval.
Целевая функция примет вид:
Здесь N – число печей в рассматриваемой группе (цехе);
ei – эквивалент замены кокса,кг кокса/(м3 ПГ);
СК – стоимость кокса, руб./кг;
СПГ – стоимость природного газа, руб./м3;
СП – условно постоянный коэффициент, руб./т.чуг (принять СП=1);
ΔПiПГ – прирост производства чугуна при изменении расхода природного газа на i-ой печи, т.чуг/(м3 ПГ);
ΔПiК – прирост производства чугуна при изменении расхода кокса на i-ой печи, т.чуг/(кг.кокса);
ViПГ – расход природного газа на i-ой доменной печи, м3/ч.
Матрица ограничений неравенств А включает в себя ограничения в целом по цеху, а именно:
По расходу природного газа:
∑a1i*ViПГ ≤ b1,
где а1i = 1,
b1 = V∑ПГ;
V∑ПГ – резерв по расходу природного газа в целом по цеху, м /ч.
По расходу кокса:
∑a2i*ViПГ ≤ b2,
где а2i = 0,001*ei,
b2 = ∑ [koi + 0,001*ei*Vi,0ПГ] – K∑;
K0i – расход кокса на i-ю печь в базовом периоде, т/ч;
K∑ – запасы кокса по цеху, т/ч; ПГ 3
Vi,0ПГ – расход природного газа на i-ой печи в базовом периоде, м3/ч.
По объему производства чугуна:
∑a3i*ViПГ≥ b3,
где а3i = ∆ПiПГ – e1*∆Пiк
b3= П∑ + VioПГ*(∆ПiП – ei*∆Пiк) – Пi0;
П∑ – требуемое производство чугуна в цехе, т/ч;
Пi0 – производительность i-ой печи по чугуну, т/ч.
Аналогичным образом формируются расчетные формулы для технологических ограничений на каждую из печей цеха, такие как обобщённый показатель низа печи, теоретическая температура горения, содержание кремния в чугуне, отношение теплоемкостей поток шихты и газа в верхней ступени теплообмена, учет полноты конверсии природного газа и газодинамического режима доменной плавки и содержание серы в чугуне.
Заключение
Использование пакета MATLAB для решения задачи оптимизации, в отличии от Microsoft Excel, позволяет гибко решать задачу, настраивая ограничения на каждую печь и увеличить скорость ее решения. При этом подход интеграции языка программирования с инженерным пакетом является нетривиальной задачей, он весьма интересен при решении широкого круга прикладных задач.
Список использованных источников
1. Спирин Н.А. Оптимизация и идентификация технологических процессов в металлургии: учебное пособие / Н.А.Спирин, В.В. Лавров, С.И. Паршаков, С.Г. Денисенко. – Екатеринбург: УГТУ – УПИ, 2006. – 307 с.
2. MATLAB Compiler [Электронный ресурс] // Официальный дистрибьютор MathWorks на территории России и СНГ: [web-сайт].
3. MWArrayAPI Help [Электронный ресурс] // The MathWorks, Inc.: [web-сайт].
Материал данной статьи взят из электронного научного архива Уральского Федерального Университета.
Комментарии