Расчет оптимального состава шихтовых материалов методами линейного программирования
Источник: http://www.imc.metolit.by/txt20_0.phpРассматривается расчет компонентов шихты, задача оптимизации состава шихты, используются численные методы линейного программирования решения экстремальных задач.
Расчет компонентов шихты представляет собой определение оптимальной комбинации различных по химическому составу и стоимости материалов (включая чушковый металл, лигатуры, возврат собственного производства, лом, стружку, чистые металлы) и требует соблюдения следующих основных условий:
- в список контролируемых химических элементов должны быть включены все элементы, определяемые типом (маркой) сплава;
- содержание легирующих химических элементов должно ограничиваться минимальным и максимальным пределами, допустимыми для данного сплава (определяются соответствующими ГОСТами или ТУ);
- содержание примесей должно ограничиваться максимально допустимым содержанием данных элементов в сплаве;
- стоимость металлозавалки должна быть минимальной.
С целью снижения стоимости шихты в основной набор компонентов дополнительно включаются более дешевые материалы: лом, стружка, вторичные сплавы, возврат собственного производства и т. д. При этом содержание данных компонентов в металлозавалке должно ограничиваться по следующим причинам:
а) процент возврата является обычно постоянной величиной и зависит от вида сплава, способа литья, типа плавильного агрегата и др.;
б) лом, стружка и другие дешевые компоненты шихты, как правило, характеризуются повышенной степенью загрязненности вредными примесями, что отрицательно влияет на качество выплавляемого сплава; в) возможность использования того или иного дешевого компонента часто определяется его наличием в данный момент.
Таким образом, задача оптимизации состава шихты формально может быть представлена как задача поиска экстремума (минимума) скалярной линейной функции цели F (стоимости) вектора управляемых переменных (содержания компонентов металлозавалки) X = (X1,...,Xn):
F(X) = C1*X1 + ... + Cj*Xj + ... + Cn*Xn -> Ext (Min);
при линейных функциональных ограничениях:
Ai1*X1 +...+ Aij*Xj +...+ Ain*Xn {Ri} Bi, i = 1,..,m
и прямых ограничениях по управляемым параметрам:
Xj0, j = 1,...,n,
где Ri - отношения < ; > ; = или их комбинации;
Aij - коэффициенты, определяемые содержанием химических элементов в шихте;
Bi - коэффициенты, определяемые содержанием химических элементов в сплаве.
Поставленная задача имеет решение, если в исходных данных имеется информация о компонентах металлозавалки: количестве, стоимости, химическом составе, величине угара элементов в конкретном плавильном агрегате, известны ограничения по химическому составу сплава и компонентному составу шихты. Сведения о химическом составе литейных сплавов приводятся в соответствующих ГОСТах на сплавы, шихтовых материалов - в сертификатах заводов-поставщиков. Величина угара каждого элемента зависит от состояния исходной шихты и конкретных условий плавки, но ввиду трудности такого учета в расчетах обычно применяется среднее значение угара, независимо от состава шихты, но с учетом состояния шихты (компактная или дисперсная шихта).
Поиск минимума линейной целевой функции F(X) может осуществляться с помощью численных методов линейного программирования решения экстремальных задач. В связи с этим целью данной работы являлся анализ эффективности численных методов линейного программирования для решения задачи оптимизации состава шихты и разработка на этой основе программного обеспечения, реализующего алгоритм решения многовариантной задачи минимизации стоимости шихты при заданных условиях получения сплава определенного химического состава из неограниченного множества исходных компонентов металлозавалки.
Решение поставленной задачи может быть найдено методом прямого перебора всех возможных комбинаций вектора управляемых переменных X с некоторой заданной точностью X. Однако реализация алгоритма прямого перебора возможных решений с заданной точностью определяется необходимостью использования вложенных циклических структур, существенно увеличивающих длительность расчета.
На рис.1 представлены зависимости времени расчета оптимального состава шихты от количества выбранных для расчета компонентов металлозавалки для выплавки алюминиевых литейных сплавов АК7 и АК12, полученные при тестовых испытаниях программных модулей, реализующих алгоритм прямого перебора всех возможных комбинаций состава шихты с заданной погрешностью X?3%. Тестовые программные модули для расчета шихты представляли собой макросы MS Excel 2002 и выполнялись на персональных компьютерах Intel Celeron-D 336 2,8GHz/ Gigabyte GA-8I915G-MF/ DDR 512 Mb PC-3200 (операционная система Windows XP).
Как показали испытания разработанных программных макросов, для анализа состава шихты, представленного 10 различными компонентами, с заданной погрешностью вычислений 5% (от массы металлозавалки), использование данного метода потребует 107 с, то есть свыше 100 дней расчета, что, по вполне понятным причинам, является неприемлемым.
Для разработки универсальной системы выбора оптимального состава шихты, не ограниченной количеством включаемых в расчет компонентов металлозавалки, наиболее эффективным является использование симплекс-метода линейного программирования. Данный метод реализует рациональный перебор базисных допустимых решений в виде конечного итеративного процесса, необходимо улучшающего значение целевой функции на каждом шаге вычислений.
Рис.1 Зависимость времени расчета оптимального состава шихты от количества выбранных для расчета компонентов металлозавалки для выплавки сплавов АК7 (кривая 1) и АК12 (кривая 2) методом прямого перебора с заданной погрешностью (3%).
Применение симплекс-метода для задачи оптимизации состава шихты предполагает предварительное приведение ее формальной постановки к стандартной канонической форме с n неотрицательными переменными (X1, ..., Xn), где требуется минимизация линейной целевой функции F(X) при m линейных ограничениях.
Формальная модель общей задачи линейного программирования минимизации стоимости шихты, приведенная к каноническому виду, может быть выражена в матричной форме следующим образом:
F(X) = CX -> min AX = B X0,
где С - вектор коэфициентов целевой функции размером n;
A - матрица
коэфициентов функциональных ограничений, размером (m x n);
B -
вектор-столбец свободных членов ограничений, размером m;
X - расширенный вектор управляемых переменных.
B приведенной канонической модели вектор С и матрица A расширены относительно исходной постановки коэффициентами 0 или 1 так, чтобы согласовать их размеры с расширенным вектором X. В отличие от метода прямого перебора всех возможных комбинаций вектора X симплекс-метод реализует направленный перебор допустимых базисных решений по соответствующим точкам допустимых решений в виде итеративного процесса, где на каждом шаге значения целевой функции строго убывают. Переход между крайними точками допустимых решений осуществляется в соответствии с простыми линейно-алгебраическими преобразованиями системы ограничений. Поскольку число крайних точек допустимых решений конечно, а целевая функция линейна, то, перебирая крайние точки в направлении убывания целевой функции, симплекс-метод за конечное число шагов сходится к глобальному минимуму.
Алгоритм направленного перебора допустимых базисных решений (симплекс-метода) был реализован в настоящей работе программными средствами языка DELPHI (для операционной системы WINDOWS XP). Ввод начальных данных осуществляется выбором требуемого литейного сплава, массы металлозавалки, а также заданием компонентов шихтовых материалов, имеющихся в наличии, и их количеством (рис.2).
Рис.2 Ввод исходных данных для расчета оптимального состава шихты
Одновременно задаётся угар химических элементов, характерный для данного типа плавильной установки (рис.3).Рис.3 Окно редактирования угара элементов шихты
Редактирование химического состава сплавов и компонентов шихты может осуществляться с помощью соответствующей панели редактирования (рис.4). В редакторе задаются название сплава (компонента) и процентное содержания элементов в сплаве и шихте. Для проверки правильности расчёта в редакторе предусмотрен вывод суммы элементов сплава (компонента), а так же расчёт остатка для основного элемента.
Рис.4 Панель редактирования химического состава сплавов и компонентов шихты
Разработанная программа позволяет выбрать из списка различных (имеющихся в базе данных или заданных пользователем самостоятельно) шихтовых материалов (включая чушковый металл, лигатуры любого состава, возврат собственного производства, лом, стружку, чистые металлы) такой набор, который отвечал бы условиям минимальной стоимости и соответствовал заданному химическому составу, определенному ГОСТом на сплав. При этом также учитывается допустимое содержание в сплаве вредных примесей. Окончательные результаты расчета представляют собой данные по рассчитанному составу шихтовых материалов с учётом угара, общей массы металлозавалки, а также конечный состав сплава с учётом ограничения по примесям и оптимальная стоимость металлозавалки. (рис. 5)
Рис.5 Окно результатов расчета оптимального состава шихты
Тестовые испытания разработанной системы показали, что используемый для расчетов алгоритм симплекс-метода позволяет получить оптимальное решение при ограниченном количестве допустимых базисных решений практически мгновенно, даже при включении в расчет всех имеющихся в базе данных компонентов шихты (для алюминиевых сплавов N=15).
Преимуществами разработанной системы являются ее универсальность и открытость:
- возможность работы с практически неограниченным количеством компонентов шихты;
- возможность проведения расчета для любых многокомпонентных сплавов (количество химических элементов неограниченно);
- интеграция с базами данных химических составов промышленных сплавов (черных, цветных);
- возможность создания подключения и редактирования собственных баз данных сплавов и компонентов шихты (рис.6-7);
- возможность удобной передачи данных в офисные приложения (например, в MS Word, Excel);
- легкость в использовании.
Рис.6. Панель редактирования базы данных шихтовых материалов
Рис.7. Панель редактирования базы данных сплавов
В начало