Факультет компьютерных информационных технологий и автоматики (КИТА) |
Кириченко Виталий МихайловичКафедра: Автоматизированные системы управленияГруппа: ИУС-06мe-mail: kir_vm@mail.ruТема магистерской работы: "Разработка компьютеризированной подсистемы расчёта материалов, загружаемых в доменную печь".Руководитель: доц. Орлов Юрий Константинович |
Автобиография | Ссылки | Библиотека | Отчёт о поиске | Индивидуальное |
1. Введение. Актуальность темы магистерской работы. |
4. Решение задачи оптимизации шихты Расчет компонентов шихты представляет собой определение оптимальной комбинации различных по химическому составу и стоимости материалов (включая чушковый металл, лигатуры, возврат собственного производства, лом, стружку, чистые металлы) и требует соблюдения следующих основных условий: - в список контролируемых химических
элементов должны быть включены все элементы, определяемые типом
(маркой) сплава; С целью снижения стоимости шихты в
основной набор компонентов дополнительно включаются более дешевые
материалы: лом, стружка, вторичные сплавы, возврат собственного
производства и т. д. При этом содержание данных компонентов в
металлозавалке должно ограничиваться по следующим причинам: а) процент
возврата является обычно постоянной величиной и зависит от вида сплава,
способа литья, типа плавильного агрегата и др.; Таким образом, задача оптимизации состава шихты формально может быть представлена как задача поиска экстремума (минимума) скалярной линейной функции цели 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 и прямых ограничениях по управляемым параметрам: Поставленная задача имеет решение, если в исходных данных имеется информация о компонентах металлозавалки: количестве, стоимости, химическом составе, величине угара элементов в конкретном плавильном агрегате, известны ограничения по химическому составу сплава и компонентному составу шихты. Сведения о химическом составе литейных сплавов приводятся в соответствующих ГОСТах на сплавы, шихтовых материалов - в сертификатах заводов-поставщиков. Величина угара каждого элемента зависит от состояния исходной шихты и конкретных условий плавки, но ввиду трудности такого учета в расчетах обычно применяется среднее значение угара, независимо от состава шихты, но с учетом состояния шихты (компактная или дисперсная шихта). Поиск минимума линейной целевой функции F(X) может осуществляться с помощью численных методов линейного программирования решения экстремальных задач. В связи с этим целью данной работы являлся анализ эффективности численных методов линейного программирования для решения задачи оптимизации состава шихты и разработка на этой основе программного обеспечения, реализующего алгоритм решения многовариантной задачи минимизации стоимости шихты при заданных условиях получения сплава определенного химического состава из неограниченного множества исходных компонентов металлозавалки. Решение поставленной задачи может быть найдено методом прямого перебора всех возможных комбинаций вектора управляемых переменных X с некоторой заданной точностью X. Однако реализация алгоритма прямого перебора возможных решений с заданной точностью определяется необходимостью использования вложенных циклических структур, существенно увеличивающих длительность расчета. Для разработки универсальной системы выбора оптимального состава шихты, не ограниченной количеством включаемых в расчет компонентов металлозавалки, наиболее эффективным является использование симплекс-метода линейного программирования. Данный метод реализует рациональный перебор базисных допустимых решений в виде конечного итеративного процесса, необходимо улучшающего значение целевой функции на каждом шаге вычислений. Применение симплекс-метода для задачи оптимизации состава шихты предполагает предварительное приведение ее формальной постановки к стандартной канонической форме с 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 симплекс-метод реализует направленный перебор допустимых базисных решений по соответствующим точкам допустимых решений в виде итеративного процесса, где на каждом шаге значения целевой функции строго убывают. Переход между крайними точками допустимых решений осуществляется в соответствии с простыми линейно-алгебраическими преобразованиями системы ограничений. Поскольку число крайних точек допустимых решений конечно, а целевая функция линейна, то, перебирая крайние точки в направлении убывания целевой функции, симплекс-метод за конечное число шагов сходится к глобальному минимуму. Разработанная программа, позволит выбрать из списка различных (имеющихся в базе данных или заданных пользователем самостоятельно) шихтовых материалов (включая чушковый металл, лигатуры любого состава, возврат собственного производства, лом, стружку, чистые металлы) такой набор, который отвечал бы условиям минимальной стоимости и соответствовал заданному химическому составу, определенному ГОСТом на сплав. При этом также учитывается допустимое содержание в сплаве вредных примесей. Окончательные результаты расчета представляют собой данные по рассчитанному составу шихтовых материалов с учётом угара, общей массы металлозавалки, а также конечный состав сплава с учётом ограничения по примесям и оптимальная стоимость металлозавалки. Используемый для расчетов алгоритм симплекс-метода позволит получить оптимальное решение при ограниченном количестве допустимых базисных решений практически мгновенно, даже при включении в расчет всех имеющихся в базе данных компонентов шихты. 5. Метод реализации поставленной задачи. Наиболее изученным разделом математического программирования является линейное программирование. Поставленную в работе задачу можно решить множеством методов этого раздела, но наиболее подходящий – Симплекс метод. Основное и главное его преимущество над другими методами (например, методом перебора) – это скорость выполнения расчётов, которая несоизмеримо выше чем у остальных. Симплекс-метод, известный также в нашей литературе под названием метода последовательного улучшения плана, впервые разработал Г.Данциг в 1947 г. Этот метод позволяет переходить от одного допустимого базисного решения к другому, причем так, что значения целевой функции непрерывно возрастают. В результате оптимальное решение находят за конечное число шагов. ОПИСАНИЕ МЕТОДА Симплекс-метод, известный также в нашей литературе под названием метода последовательного улучшения плана, впервые разработал Г.Данциг в 1947 г. Этот метод позволяет переходить от одного допустимого базисного решения к другому, причем так, что значения целевой функции непрерывно возрастают. В результате оптимальное решение находят за конечное число шагов. Алгоритмы симплекса-метода позволяют также установить, является ли задача ЛП разрешимой. Запишем ограничения задачи ЛП в таком
виде:
A1x1
+ A2x2
+ ... + Anxn +An+1xn+1
+...+ An+mxn+m
= A0. Пусть
A1,...,Am –
множество линейно независимых векторов.
Тогда уравнение Тогда, очевидно: (2.2.4) Умножив уравнение (2.2.2) на xr
и вычтя полученное уравнение из уравнения (2.2.1), получим Решение (2.2.6), во-первых, не будет базисным, так как содержит m + 1 переменную, а во-вторых, будет допустимым не для всех значений xr. Чтобы новое решение оставалось допустимым, нужно выбрать значение xr таким, чтобы ни одна из величин i = xi* - xrxir (i=1, 2, ...,m) не стала меньше нуля. Следовательно, максимальное значение переменной xr определяется соотношением xrmax=min { x*i
/ {x*ir
}.
(2.2.7) Чтобы сделать новое допустимое решение базисным, нужно одну переменную xi вывести из базисного решения, а соответствующий вектор из базиса. В этом случае новый базис будет содержать также m векторов. Для этого выбираем значения в соответствии с (2.2.7). Тогда новое базисное решение имеет вид x1* - xr maxx1r; x2* - xr maxx2r; xj (опущен) xr max, а новый базис - (A1, A2, ., Aj-1, Aj+1,..., Am, Ar). Такой переход от одного базиса к другому позволяет находить решения почти всех задач ЛП. Определив все крайние точки, можно вычислить значения целевой функции и найти оптимальное решение. Однако для больших значений m и n это практически невозможно. Поэтому для перехода от текущего решения к новому допустимому базисному решению, которому отвечает большее значение целевой функции, используют соответствующий критерий (симплекс-разность). Новому ДБР { x1*
- xrx1r,
x2* - xrx2r,...,
xm* - xrxmr,
xr}
соответствует следующее значение целевой функции где z0 - значение целевой функции для начального ДБР; сr-с1x1r - с2x2r -...- сmxmr - симплекс-разность для переменной хr. Симплекс-разность вычисляют для каждой переменной, не входящей в базисное решение, и выбирают такую небазисную переменную хr, для которой симплекс-разность положительна и максимальна. Таким образом, алгоритм симплекса-метода состоит из следующих этапов: 1) находят начальный базис и связанное с ним допустимое базисное решение; 2) вычисляют симплекс-разность для каждой переменной, не входящей в базисное решение; 3) вводят в базис наиболее "выгодную" переменную с максимальной положительной симплексом-разностью. Ее значение xrmax определяют из соотношения
4) выводят из базисного решения переменную xj, соответствующую , а из базиса - вектор Aj; 5) переходят к этапу 2 новой итерации. Этапы 2) - 4) повторяют до тех пор, пока симплекс-разности для всех переменных, не входящих в базис, не станут отрицательными. Это и есть признак оптимальности текущего базисного решения. 6. Примеры аналогичных программных разработок. Одной из программ, реализующей метод расчёта шихты является OptimaChargeX. Более подробно ознакомиться с этим продуктом можно здесь. Описание работы: Перед началом расчета необходимо добавить сплав, для которого необходимо рассчитать шихту (если данного сплава еще нет в базе данных имеющихся сплавов). Для этого необходимо зайти в редактор имеющихся сплавов. Для добавления нового сплава необходимо нажать правой кнопкой мыши в любом месте редактора и в меню выбрать пункт «Add alloy». В появившемся окне необходимо задать максимальные и минимальные пределы содержания элементов в новом сплаве (кроме основного элемента сплава), ввести название сплава и основной элемент. После этого необходимо нажать кнопку «Ввод закончен», чтобы программа сама рассчитала пределы содержания основного элемента сплава. Сохраняем новый сплав нажатием кнопки «Сохранить». Для редактирования необходимого сплава необходимо нажать правой кнопкой мыши на нужном сплаве и в меню выбрать пункт «Edit alloy». В появившемся окне можно редактировать максимальные и минимальные пределы содержания элементов в новом сплаве (кроме основного элемента сплава), изменить название сплава. После этого необходимо нажать кнопку «Ввод закончен», чтобы программа сама рассчитала пределы содержания основного элемента сплава. Сохраняем отредактированный сплав нажатием кнопки «Сохранить». Найти необходимый сплав для редактирования в базе данных можно с помощью поискового окна в нижней части редактора. Примечание! Поисковое окно учитывает регистр символов (т.е. заглавные и прописные символы). При необходимости ввода нового элемента сплава нажать правой кнопкой мыши в любом месте редактора и в меню выбрать пункт «View elements». В появившемся окне можно выбрать новый отображаемый элемент. Сохраняем новый элемент нажатием кнопки «Сохранить». Для расчета необходимо ввести (редактировать) номенклатуру компонентов шихты, которые имеются в наличии. Для этого необходимо зайти в редактор компонентов шихты. Для добавления нового шихтового компонента необходимо нажать правой кнопкой мыши в любом месте редактора и в меню выбрать пункт «Add component». В появившемся окне необходимо задать процентное содержание элементов в новом компоненте, ввести название компонента шихты, его цену и вес на складе. После этого необходимо выбрать элемент, по которому будет произведен расчет остатка (для того, чтобы сумма долей элементов была равна 100%) и нажать кнопку «Рассчитать остаток», чтобы программа сама рассчитала содержания основного элемента компонента шихты. Сохраняем новый компонент нажатием кнопки «Сохранить». Для редактирования шихтового компонента необходимо нажать правой кнопкой мыши на нужном компоненте и в меню выбрать пункт «Edit component». В появившемся окне можно редактировать процентное содержание элементов в компоненте, изменить название компонента шихты, его цену и вес на складе. После этого необходимо выбрать элемент, по которому будет произведен расчет остатка (для того, чтобы сумма долей элементов была равна 100%) и нажать кнопку «Рассчитать остаток», чтобы программа сама рассчитала содержания основного элемента компонента шихты. Сохраняем отредактированный компонент нажатием кнопки «Сохранить». Примечание! При вводе процентного содержания элементов в компоненте шихты, их суммарное значение не должно превышать 100%. В противном случае ввод будет необходимо осуществить заново. (Применено для корректной работы программы) На данном этапе необходимо задать угар/пригар химических элементов. Технологический угар/пригар задается в соответствии с работой плавильного агрегата и выбора технологии плавки. Для этого нужно нажать на кнопку «Задать угар элементов» и в появившемся окне задать процент угара/пригара элементов. Примечание! Пригар задается со знаком «-». На данном этапе в главном окне программы выбирается необходимый для выплавки сплав, задается масса металлозавалки, выбираются необходимые компоненты шихты и их количество, а также выбирается параметр оптимизации расчетов (стоимость или средний состав). Для выбора необходимого для выплавки сплава в меню «Сплав» с помощью бегунка находим и выставляем требуемый сплав. Выбор необходимых компонентов шихты производится путем выставления галок напротив имеющихся шихтовых компонентов. Количество используемого компонента выставляется с помощью бегунка, расположенного посередине окна программы, при этом количество компонента будет изменяться в колонке «Использовать» таблицы компонентов шихты (применяется для возможного дозирования компонента шихты на определенный срок времени). Масса металлозавалки вводится в окне «Масса завалки». Для выбора параметра оптимизации расчетов необходимо зайти в меню «Оптимизация» и выставить галку напротив необходимого параметра. После выбора всех необходимых параметров необходимо нажать кнопку «Расчет», для вывода результатов на экран. Окончательные результаты расчета представляют собой данные по рассчитанному составу шихтовых материалов с учётом угара, общей массы металлозавалки, а также конечный состав сплава с учётом ограничения по примесям и оптимальная стоимость металлозавалки. Результаты расчетов для дальнейшей обработки, составления отчетов и т.д. можно экспортировать в офисное приложение MS Excel, путем нажатия кнопки «Экспорт в Excel». 7. Обобщение результатов научного поиска. Чтобы Украина могла успешно
конкурировать на мировом рынке промышленности, необходимы огромные
капиталовложения на реконструкцию и модернизацию существующего
оборудования. Но далеко не все предприятия могут себе это позволить.
Поэтому сейчас большое внимание уделяют успехам в научно-технической
сфере, особенно автоматизации. С помощью современных технологий
появилась возможность улучшить качество выпускаемой продукции, при этом
минимизируя затраты на производство. Целью данной
магистерской работы является оптимизация производства с
наименьшими затратами на закупку необходимых материалов. Когда задача
будет реализована программно, с её помощью появится возможность
оперативно и быстро производить расчет в производственных условиях, при
постоянно меняющемся ассортименте шихтовых материалов и легирующих
добавок; получать заданный химический состав при минимальной стоимости
шихтовых материалов или с усредненным составом. 1. Вентцель Е.С. Исследование операций. – М.: Сов. Радио, 1972. – 552 с. 2. Линейное и нелинейное программирование / Под ред. Ляшенко И.Н. – Киев: Вища шк., 1975. – 327 с. 3. Боклан Б.В., Гришко В.А, Немченко С. З. «Контроль и регулирование параметров доменного процесса», Изд-во «Наукова думка», Киев, 1972, с. 129-137. 4. Спирин Н.А., Лавров В.В. Информационные системы в металлургии: Конспект лекций. Екатеринбург: УГТУ–УПИ, 2004. – 495с. 5. Расчёт оптимального состава шихтовых материалов методами линейного программирования / Лущик П.Е., Бельский А.В. – Минск, 2005. 6. Шур А.Б., Лепило Н.Н. Совершенствование технологических расчётов в доменном производстве. – Производство чугуна на рубеже столетий. Труды V международного конгресса доменщиков. Днепропетровск – Кривой Рог, 1999. 7. Снижение расходов на производство литья.( http://www.lityo.com.ua/li/s_22.html)
|
|
|
© 2007 Кириченко В.М. © 2007 ДонНТУ |