Химия процесса чуть сложнее: вам нужен алюминий, который станет мостиком между сталью и цинком.
Алюминия в расплаве меньше 1%, но его точная доля очень сильно влияет на то, как будет ложиться покрытие. Недостаток алюминия приведёт к плохой адгезии расплава и непроцинковке полосы. Чуть больше — тоже плохо: излишек будет в расплаве. Только при попадании в норму покрытие получается прочным, пластичным и блестящим. Кроме того, нестабильность концентрации алюминия может вызвать неэффективное использование цинка, которое ведёт к увеличению операционных расходов, а также к образованию дросса, представляющего собой соединение цветных металлов с железом.
У нас на производстве — четыре агрегата горячего цинкования. Берём рулон, запускаем его в агрегат, он там проходит через ванну. В начале агрегата к концу рулона привариваем другой рулон, и через ванну в итоге всегда идёт полоса металла, которая покрывается цинком. В ванне стоят индукторы, которые держат температуру между 450 и 470 градусами Цельсия.
Получается томящийся цинково-алюминиевый «суп», в который рабочие цеха могут добавлять «куриные кубики» в виде новых цинк-алюминиевых слитков по мере обеднения расплава.
Индуктор разогревает расплав в ванне
Как и во многих производствах XXI века, у нас не было автоматизации процесса, всё делалось ручным способом — забор лабораторной пробы происходит раз в 8–12 часов, и это довольно дорогой и сложный процесс.
Тут у меня появилась гипотеза, что на основе большого объёма входной информации по прокату полосы, параметрам работы агрегата и историческим данным из прошлого опыта можно прогнозировать концентрацию алюминия в расплаве в каждый момент времени и автоматизировать процесс её стабилизации.
В чём была задача
Мы на НЛМК ходим по производству и думаем. Думаем мы обычно о том, что было бы здорово применить какую-то технологию и резко улучшить процесс, который делается вручную или почти вручную. За последние годы фразы «Определяет на глаз» и «Проба берётся раз в 8–12 часов» стали для нас триггерами, что можно сэкономить несколько миллионов рублей как с куста, просто добавив какие-то простые детекторы с аналитикой. Каждый раз это кажется приключением на 20 минут, но по мере погружения в детали производства выясняется, что не всё так просто, и опытный Сан Саныч уделывает робота на раз-два. Заканчивается это обычно тем, что мы делаем ассистирующую модель, на которую сотрудникам цеха можно ориентироваться.
Линия непрерывного горячего цинкования имела все признаки подходящей к улучшению.
Это часть большого агрегата АНГЦ
Башня охлаждения и дрессировочная клеть
Знакомьтесь: АНГЦ
Ванна — только один из узлов большой машины. На агрегаты заходит предварительно прошедшая стадию травления и смотанная в рулон сталь, обработанная на участке подготовки холоднокатаных рулонов. В самом АНГЦ металл проходит стадии очистки, термической обработки, нанесения и охлаждения покрытия, дающие ту самую оцинкованную сталь, которую вы хорошо знаете.
Погружной ролик. АНГЦ
Естественно, оптимизировать его работу можно на каждом этапе, но самый большой потенциальный выигрыш у нас в ванне.
Там есть «серебряная пуля» — концентрация алюминия. Если начать разбираться в физико-химических основах процесса, то выяснится, что один этот параметр имеет огромный рычажный эффект. Практически вся возможная экономия связана как раз с ним.
Сама ванна горячего цинкования, видно вход и выход полосы
Дело вот в чём:
- На начало работы (после пробы) мы можем точно сказать, какая концентрация в ванне, и быстро исправить её, просто бултыхнув внутрь пару слитков. Это очень простая математика: нужно посмотреть на имеющиеся слитки и решить, которого и сколько положить. Они отличаются массой и концентрацией. Слитки расплавляются не сразу, «суп» перемешивается тоже не мгновенно, но через какое-то время мы можем стартовать с требуемой концентрации.
- Затем через ванну без остановок постоянно проходит полоса металла. Она выносит цинк и алюминий. Алюминий образует химический мостик между сталью и цинком. Казалось бы, нам достаточно просто добавлять цинково-алюминиевые слитки идеальной концентрации в ванну для восполнения потерь, и всё было бы хорошо, но нет.
- Расход цинка и алюминия неравномерный и зависит от скоростных параметров работы линии цинкования, от типоразмера обрабатываемой стали и от класса покрытия. Советские инженеры составили таблицу типовых расходов, но она была относительно точна, потому что партии металла все разные. Одна из возможных идей — по точным свойствам полос металла и параметрам обработки партии предсказывать расход алюминия. Здесь нам понадобятся все бумажные журналы и градиентный бустинг.
- На выходе из ванны лишний цинк срезают газовыми ножами. Из-за этого дросс превращается на поверхности ванны во «взбитую пенку».
Процесс горячего покрытия листовой стали методом погружения в цинкосодержащий расплав сопровождается образованием побочных продуктов — дроссов. Дроссы, имеющие меньшую плотность, всплывают на поверхность ванны, а дроссы с большей плотностью (гартцинк) оседают на дне. Во всех случаях дроссы загрязняют рабочий расплав и полосу, уменьшая рабочий объём ванны, поэтому требуется их периодическое удаление. При концентрации от 0,18 до 0,3% наступает оптимум: дросса образуется меньше, а покрытие получается наиболее равномерным, пластичным, прочным, блестящим и качественным.
Итак, обычный алгоритм действий оцинковщика следующий:
1. Забрать пробу. Раз в восемь часов в одно и то же специально обозначенное место отправляется высокотехнологичный зонд. Выглядит он в точности, как специально обученное ведро, но у нас XXI век, поэтому это зонд-пробник. «Ведро» (или маленький «черпак» — зависит от конкретного агрегата) погружается на одну и ту же глубину и поднимается.
2. Проба уезжает в лабораторию. Лаборатория остужает содержимое ведра и воздействует на него рентгеновским излучением, чтобы посмотреть спектрограмму и определить концентрацию алюминия в пробе. Могут проводить и другие опыты, но в результате они заносят концентрацию пробы в ИТ-систему, а ИТ-система быстро сообщает эту концентрацию в цех.
Проба
3. Оцинковщик смотрит на концентрацию и думает, как ему довести её до оптимальной. В его распоряжении — слитки цинка, в которые добавлено разное количество алюминия: обычно это 0,3 и 0,8%. Они разной массы. Он прикидывает, какой слиток или какие слитки в какой комбинации можно сейчас бултыхнуть в «суп». Дальше берёт слитки специальным захватом и кладёт их ванну. То есть после получения пробы оцинковщик может установить устраивающую его концентрацию.
Цинково-алюминиевые слитки
4. Дальше его задача — фактически удерживать концентрацию алюминия в требуемом диапазоне, желательно с минимальным колебанием значения. Поскольку никаких чисел у него нет, то ориентироваться он может только на сменно-суточное задание по изготовлению оцинкованного проката, толщину требуемого покрытия, на количество дросса и на то, что видит на выходе по покрытию.
5. По мере приближения ощущения, что концентрация выходит за нужные границы, оцинковщик может добавлять новые слитки с разным содержанием алюминия. Поскольку слитки расплавляются и распределяются по объёму ванны не сразу, то реакция требует некоторого предвидения. На случай, если оцинковщик облажался окончательно и на выходе уже идёт явный брак из-за недостатка концентрации, у него есть алюминиевая проволока — катанка, которую можно забить в ванну, чтобы резко увеличить концентрацию. Но катанка — это плохая идея, потому что будет неравномерность расплава. А при высоком содержании алюминия возрастает вероятность получения дефекта — непроцинковка.
6. Ещё оцинковщик собирает специальным скиммером дросс с поверхности ванны. Процесс похож на снятие пенки с кофе ножом. Получаются слитки дросса, которые уезжают на переработку: для нас это лом цветных металлов.
АНГЦ. Погружной ролик.
Чем можем помочь мы
Две основные идеи:
- Уточнить коэффициенты расхода в зависимости от того, что за металл на входе.
- Попытаться численно спрогнозировать концентрацию алюминия в ванне.
Вспомогательные идеи:
- Автоматизировать выбор оптимального слитка для стабилизации концентрации в данный момент.
- Оцифровать учёт того, что происходит в оцинковке, хотя бы для того, чтобы уйти от бумажного журнала.
Ключевое в задаче — знать расчётную концентрацию алюминия сейчас, а прогнозную — через час (с учётом процесса расплавления закинутых слитков). Похоже, что этого можно добиться, либо построив модель, либо увеличив количество проб.
Брать пробы чаще крайне нерентабельно. Во-первых, там сложные расходники. Во-вторых, этот процесс подразумевает ручной труд, а ручной труд в контакте с расплавом — это всегда риски для персонала, поднимать которые мы никак не можем.
Уходим думать про модели.
Входные данные
Начинаем разбираться, что у нас есть:
- Лабораторные данные, то есть состав ведра.
- Телеметрия с агрегата: температура полосы, температура ванны, скорость полосы, давление на воздушных ножах и так далее.
- Данные о рулоне на входе и выходе: толщина результирующего покрытия, толщина полосы, ширина полосы, класс покрытия и т. п.
- Данные о том, какие «куриные кубики» кидали оцинковщики: массы слитков, время загрузки, концентрация алюминия в слитке.
- Исторические данные о работе АНГЦ в бумажных журналах.
Что сделали
Вся ключевая информации вместе с телеметрией с агрегата, лабораторными показателями и прочим попадает в целевые источники данных — локальные хранилища или БД. Затем весь объём информации начинает подниматься по уровням выше, где данные разбиваются по темам и контурам и попадают в соответствующие топики шины Kafka, где мы их получаем, предобрабатываем и записываем в хранилище нового сервиса.
Модель прогнозирует концентрацию алюминия с учётом параметров процесса и прогоняемой стали. Вторая задача по загрузке слитков решается с помощью оптимизатора, который взаимодействует с основной моделью и знает информацию о прогнозе уровня концентрации на данный момент.
Решается задача регрессии — прогноз концентрации алюминия после добавления нового цинк-алюминиевого слитка. Модель обучается на временных рядах, данных за последние X часов (8, 24 или 48: для каждого агрегата выбран свой диапазон).
Для каждого из четырёх АНГЦ реализованы свой пайплайн и, соответственно, свой контейнер с моделью (bentoml-сервис). Выбрана модель CatBoostRegressor — градиентный бустинг над решающими деревьями.
Данные для первой версии модели были получены с помощью выгрузки в csv из СУП и системы «Лаборатория УТК», а также оцифровки бумажных журналов. Для последующих версий данные выгружались из БД сервиса в HDFS.
Метрика, по которой оценивается модель, — MAE (mean absolute error — средняя абсолютная ошибка). Допустимая mae — 0,05.
После того как модель обучится, создаётся скрипт, необходимый для последующего создания bentoml-сервиса. В этом скрипте описываются методы для predict, а также предобработка данных.
После того как образ собран, он кладётся в Артифактори.
Стандартные компоненты и взаимодействия платформы для разработки и реализации моделей DS
После этого, прописав некоторый CI/CD-пайплайн мы можем развернуть образ модели в виде микросервиса в k8s-кластере. Плюс параллельно с процессом реализации модели разрабатывается сервисная часть — бэк и фронт, которые также будут развёрнуты на k8s-кластере и будут взаимодействовать с микросервисом модели.
Всё это хранится в Артифактори в виде образа, а сервис — в k8s-кластере, где отдельные поды — для бэка и фронта.
Верхнеуровневая архитектура сервиса
Прогнозы выносятся на фронт. Через интерфейс фронта оцинковщик задаёт целевую концентрацию и видит все параметры процесса. Интерфейс подсказывает наиболее подходящий следующий слиток.
В результате это выглядит вот так:
Это не финал, тут нет интеграции с данными о складах слитков — только запас текущей смены
На панели присутствуют лабораторные показания, наше теоретически спрогнозированное значение, а также значение концентрации, которое задаёт оцинковщик для следующей программы.
Как видно, оцинковщик очень просто может оценить уровень концентрации и сделать соответствующие действия для её нормализации.
Необходимые слитки определённой марки для последующей загрузки подсвечиваются как рекомендация.
На этом этапе мы понимаем, что оцинковщик может контролировать производственный процесс слежения за ванной оцинкования, который теперь полностью автоматизирован и регламентирован.
Оцинковщик загружает около трёх слитков в час (максимум — шесть). Соответственно, он видит, как будет меняться концентрация в зависимости от времени и уже погруженных слитков. И видит оценку концентрации в реальном времени.
Подтверждение гипотез
Сама модель оказалась очень приятной с точки зрения того, что не пришлось ставить новое оборудование.
Использовалась уже существующая инфраструктура. Единственное — пришлось делать преобразование данных после получения информации с брокера, потому что некоторые данные были далеко не в том виде, как надо нам, и из разных источников (их надо было сопоставлять).
Бумажные журналы оказались тяжёлым испытанием. Во-первых, там рукописный почерк. Во-вторых, есть человеческий фактор — ошибки и исправления. В-третьих, оцинковщики не материально ответственны за слитки, поэтому могли приходить корректировки от МОЛ после инвентаризаций.
Несколько месяцев у нас ушло просто на сбор документов и их оцифровку.
Очень хорошо помогла в разборе данных библиотека Tsfresh, которая генерирует новые признаки из временного ряда.
По самой модели тестировали разные бустинги, полиномиальные модели и так далее, но победил всё равно CatBoostRegressor — градиентный бустинг над решающими деревьями.
Внедряли не без сопротивления («Зачем электронный журнал, когда есть вот такой замечательный бумажный?»), но ассистент был полезен самим оцинковщикам, которые хотели знать, что будет в ванне дальше. На деле они нас очень выручили, забивая во время тестового периода нормальные данные по всему, что делали. Сейчас ИТ-часть дублирует бумагу, позже, может быть, откажемся от бумаги полностью.
Метрики для модели
Сначала мы оцениваем, насколько эффективно сервис стабилизирует концентрацию алюминия, потом — как стабильная концентрация алюминия влияет на КПЭ-расход цинка (г/м2).
Оценка эффективности сервиса:
- Точность модели (MAE, R2).
- Эффективность рекомендаций (отклонение фактического анализа от целевого значения, MAE).
- Процент принятых рекомендаций.
- Сокращение расхода цинка.
Итоговая точность модели без дополнительных данных, но после нескольких месяцев довнесения данных с интерфейсов (после бумажных журналов) получилась 95%. То есть ошибка прогноза гуляет в коридоре всего 5%.
До конца не было понятно, каким точно будет результат, будет ли прям заметный положительный эффект от внедрения ассистента. После долгих оценок (у нас они идут сверху вниз и снизу вверх, то есть надо смотреть ещё результаты работы блока производства в целом) доказано, что мы сделали очень крутую штуку:
- Сэкономили 46,4 тонны цинка за год (это было легко посчитать, но это самый малозначимый из эффектов).
- Минимизировали образование дросса (то есть, по сути, увеличили безопасность производства).
- И самое главное — снизили количество брака: оцинковка при более точном выдерживании концентрации вылезает из АНГЦ с куда меньшим количеством дефектов. Это очень большая экономия, но тут я вам не могу назвать чисел из-за закрытых коммерческих данных.
В итоге, как это ни странно, мы снова взяли методологии советских инженеров и улучшили их с помощью современных технологий. Например, тут нет научной работы по определению оптимального коридора концентраций: её сделали за нас предыдущие поколения химиков НЛМК.
Уже такое улучшение дало значимый результат. Но на этом мы не остановимся. Уже понятно, что менять дальше: планируем автоматический учёт цинка, оптимизацию потребления слитков со складов и так далее. Можно лезть уже и дальше в науку, но у нас ещё много вещей на производстве, которые можно оптимизировать проще.
Итог: теперь наша ИТ-команда видит листы оцинковки по всей стране и улыбается. Потому что это наши листы!
Автор: Александр