Регрессируем обычную известь

Всем привет! На связи конвертерный цех № 1. Последние месяцы мы работаем над тем, как посчитать, сколько известковой пыли приезжает к нам на конвейере.

image
И на данный момент мы научились правильно определять это количество с вероятностью 85%

И нет, мы не сошли с ума. Просто в процессе использования извести некоторое количество самой мелкой её фракции вылетает в трубу. Каждый раз — разное. И «вылететь в трубу» тут не фигуральное выражение, а точное описание процесса: около 10% известковой пыли, которую мы отправляем в конвертер с жидким металлом, навсегда исчезает в аспираторе. Так как мы не знаем, от какого количества нужно эти 10% взять и не можем посчитать, сколько её в какой момент улетит, известь в металл насыпается с запасом. И это бесит.

«А почему бы не посчитать, сколько вешать в граммах?» — заинтересовались мы и начали придумывать, как это сделать.

Зачем в металл сыпать известь


Эта история начинается, когда чугун в огромном и очень горячем ковше из доменного цеха приезжает в конвертерный цех № 1, чтобы стать там сталью. Подробно о том, как это выглядит, коллеги из соседнего цеха написали как-то большую статью. Но если вкратце, то мы проводим несколько манипуляций. Например, выгоняем из расплава фосфор и кремний в виде шлака, который потом легко можно отделить от расплавленного металла. Для этого в конвертер вводится известь, которая запускает нужную нам химическую реакцию.

Вообще, в металлургии известь расходуется в громадных количествах, и поэтому у нас есть свой собственный известняковый карьер неподалёку от комбината. Камень оттуда приезжает в огнеупорный цех. Там его обжигают в огромных печах, вращающихся над землёй под наклоном. В результате обжига получается необходимая нам известь.

image

Сначала она катается в огнеупорном цехе (ОГЦ) по системе конвейерных лент, на которых стоят грохота — специальные устройства, отсеивающие мелкую фракцию, —, а потом доезжает до конвертерного цеха № 1 и попадает уже на нашу ленту. В этом месте стоит камера, которая станет одним из главных героев сегодняшней истории. Запомните её.

image
Камера смотрит вот на такую конвейерную ленту и видит на ней камушки разного размера

Дальше известь загружается в расходные бункеры, где и хранится, пока не придёт пора подавать её в конвертер при помощи специального весового бункера с тензометрическим датчиком, который позволяет отмерить столько извести, сколько нам нужно.

Пара слов про грансостав


Техническая инструкция гласит, что известь должна быть определённого качества. И грансостав (то есть распределение фракций) — один из самых важных её показателей. Грубо говоря, на ленте лежат камушки разного размера. Мы условно делим их на три фракции, самая приятная из которых — средняя, то есть известь диаметром от 10 до 50 мм. Всё, что крупнее, — не очень хорошо, но не критично. А вот всё, что мельче, то есть от 0 до 10 мм, — это самая противная фракция, которая постоянно норовит вылететь в газоотводящий тракт вместо того, чтобы попасть в конвертер. Так вот, нам нужно, чтобы этой мелкой пыли было не больше 15% в массовой доле извести, поступающей к нам в цех, крупной — не больше 10%, а средней — не меньше 75%.

image
Но так хорошо получается не всегда

image
Совсем не всегда

Мы не можем заранее предсказать, сколько пыли будет в извести, поэтому на всякий случай засыпаем её в металл с запасом, из расчёта, что её окажется 20–30%, и этот объём попадает в аспирацию. Каждый день в трёх конвертерах цеха проводится 90 плавок. На каждую плавку уходит в среднем семь-восемь тонн извести и из них около 1400 кг перевеса.

image
В итоге хотим получать вот такую аналитику и советы по оптимизации процесса

В общем, мы взялись за оцифровку всех бизнес-процессов цеха, дошли до извести и решили создать сервис, который определяет её точный грансостав.

Программа-минимум для нашего неамбициозного проекта — сделать так, чтобы не приходилось сыпать в конвертер лишнее. Программа-максимум — наладить тесные отношения между конвертерным и огнеупорным цехами. В идеальной картине мира в ОГЦ с нашей помощью будут понимать, какая известь от них уходит, и смогут придумать, как улучшить свои процессы, в какой момент стоит проверить сохранность сита на грохоте, в какой — поменять режим грохочения и так далее.

Грансостав, конечно, ещё очень сильно зависит от качества известняка, который приезжает с карьера, так что совсем уж в идеале мы видим, что туда тоже будет уходить наша информация и они также смогут корректировать свои процессы.

Да, наш сервис не решает критических задач, но НЛМК сегодня — один из самых низкозатратных комбинатов на рынке, и мы вылавливаем все мелочи и недостатки, чтобы сделать производство ещё более безотходным и технологичным. Для нас это важно.

Как грансостав извести изучали раньше и что должно измениться


До того как мы взялись за цифровизацию, эта задача решалась примерно никак. Весь контроль грансостава извести заключался в том, что один раз в месяц (а то и реже) технолог останавливал ленту, брал с неё пробу извести, делал один рассев и отправлял показания в огнеупорный цех. Всё.

Наш сервис должен делать то же самое, только в реальном времени, без остановки конвейера и мужика с лопатой.

Как работает сервис


В идеале это выглядит так: камера фотографирует известь на входе в цех и распознаёт, сколько на ленте мелочи, сколько средних камней и сколько крупных, анализирует данные и выдаёт нам сухие цифры.

image
Собственно, вот она

Благодаря системе датчиков, система понимает, в какой бункер сколько извести поступило и какой в каждом из бункеров средний грансостав. Дальше все эти данные в реальном времени поступают в сервис-советчик. А он в свою очередь сообщает машинисту дистрибьютора, который принимает решение, сколько извести насыпать в весовой бункер. Так что человек может спокойно перестать перестраховываться и сыпать ровно столько, сколько нужно для шлакообразования, ни больше ни меньше.

Решение, кстати, довольно дешёвое, потому что лента в цехе у нас одна, так что и камера нужна тоже одна. Стоит она около 50 тысяч рублей, в масштабах комбината это — ничто. Но есть и плохая новость: чтобы система начала правильно и уверенно распознавать то, что видит, нужно сделать много (очень много) ручных проб.

Как мы учим модель


Ручные пробы, они же рассевы, — это довольно затратная штука. И даже не столько потому, что нужно останавливать конвейер (хотя и это тоже), сколько потому, что просеять мешок извести довольно тяжело физически и долго по времени. А пока наша модель не заработала, махать лопатами приходится часто и с удовольствием.

Помахать лопатами и поковыряться в пыльной извёстке, кстати, поначалу пришлось всему руководству проекта, пока мы налаживали процесс, оптимизировали его и учитывали нюансы.

Путём проб и ошибок пришли к следующему алгоритму.

Чтобы взять пробу, нам нужно четыре человека. Двое стоят у ленты: один лопатой складывает известь в мешок, второй веником помогает собирать то, что первый пропустил. Третий по сигналу останавливает и запускает конвейер, а четвёртый собирает изображения с камеры удалённо.

Один рассев = одна фотография ленты = один мешок извести.

Весь процесс происходит так.

Мы договариваемся с оператором и технологами, в какое время можно остановить ленту так, чтобы это не отразилось на производстве. Например, они дают нам 20–30 минут в час дня в пятницу. Два главных героя, вооружившись лопатой и веником, приходят в цех. Конвейер останавливается, человек, который следит за моделью, делает красивый снимок и отдаёт сигнал: «Ребята, забирайте пробу». Двое героев аккуратно сгребают всё, что попадает в границы кадра, в мешок и звонят оператору, чтобы он прогнал ленту чуть дальше. Оператор включает её на пару секунд, и всё повторяется.

Отведённого нам на пробы получаса хватает, чтобы набрать пять-десять мешков извести. Когда время заканчивается, ребята тащат мешки к весам, расстилают рядом с ними железную пластинку, раскладывают сита и просеивают всё, что набрали. На пластине в итоге лежит самая мелкая извёстка, в нижнем сите — средняя, а в верхнем — крупные камни, которые вообще никуда не пролезли. Затем каждую фракцию они складывают в вёдра и взвешивают. К человеку, который непосредственно занят обучением модели, приходят пронумерованные данные о грансоставе извести, которые он потом сопоставляет с фотографиями и загоняет в модель. Модель — учится.

Чтобы добиться максимального результата, таких рассевов нужно сделать от шестисот до тысячи. Пока мы собрали всего двести, но та модель, которую мы имеем сейчас, уже выдаёт MVP 85% и позволяет сэкономить семь миллионов рублей в год. Так что — переходим к этапу опытной эксплуатации.

image
Количество принятых рекомендаций — 80%

То есть мы уже пользуемся её данными, но постоянно мониторим происходящее и доучиваем систему с помощью новых рассевов. В идеале мы, конечно, хотим, чтобы она выдавала нам информацию с 95–99% точностью (и позволяла экономить уже двадцать миллионов в год). И, я думаю, мы этого в конце концов добьёмся.

Вообще, если говорить про экономический эффект, то на сегодняшний день на создание MVP было потрачено семнадцать с половиной миллионов рублей. То есть после того, как система будет доработана, окупится она примерно за десять месяцев.

Время метаний


Мы шли к этому результату через боль и страдание. И эффект от своей работы увидели только недавно.

Первое, что мы сделали, — разобрались, как отслеживать, куда конкретно идёт известь, потому что бункеров у нас несколько и посчитать грансостав в каждом из них только по данным с камеры невозможно. Мы сначала пытались вычислить это всё математическими методами, но знатно обломались.

А потом придумали простое и элегантное решение.

После ленты известь попадает в длинную трубу под названием «вибрационный конвейер», которая проходит над всеми бункерами. Чтобы насыпать её в какой-то из них, нужно нажать кнопку и открыть нужный шибер.

Мы подключили к программируемому реле каждый из них, чтобы знать, когда какой откроется. И ещё — по датчику уровня к каждому бункеру, чтобы отслеживать, сколько конкретно извести туда упадёт.

Таким образом стало возможно отслеживать в реальном времени, куда конкретно уезжает из-под камеры наша известь. А значит, теперь несложно с высокой точностью вычислить средний грансостав в каждом из бункеров.

image
Программа выдаёт нам такую картинку о содержимом каждого бункера

image
И вот такую аналитику

Дальше стали думать, как чётко сфотографировать некрупные камушки, лежащие на ленте, которая едет со скоростью 1,25 м/с. Фотоаппарат нам был нужен с минимальной выдержкой, чтобы фотографии получались максимально быстро и чётко. Остановились на камере с глобальным затвором, которая моментально формирует стоп-кадр быстродвижущихся объектов.

Затем мы начали налаживать освещение: даже самая хорошая камера ничего не сфотографирует в полутьме. И первым делом совершили глупую неочевидную ошибку: купили прожекторы, у которых от переменного напряжения моргал свет. Глазами этого видно не было, но из трёх очень чётких фотографий, сделанных с маленькой выдержкой, две показывали «Чёрный квадрат» Малевича. Какое-то время мы просто отсеивали эти тёмные кадры, а потом купили светильники, которые при переменном напряжении давали постоянный свет. Аллилуйя.

image
И они отлично справляются со своей задачей

Сначала мы боялись, что может быть проблема сильной запылённости, но повезло: известь засыпается на ленту далеко от камеры и, когда она подъезжает под объектив, пыль уже укладывается и не мешает.

К текущему решению, как распознавать грансостав, мы пришли не сразу. Первая мысль, которая возникла, — просвечивать известь лазерным грануломером. Мы нашли тех, кто делает эти приборы, и написали им длинное проникновенное письмо, к которому приложили пару мешков извести и фотографии ленты. Ребята постарались разложить её на свой конвейер максимально похожим способом и провели несколько экспериментов. В итоге выяснилось, что грануломер больше подходит для вычисления тех камней, которые значительно больше требуемого размера, а значит, нам не подходит.

Следующей идеей было — сфотографировать ленту и отрисовать контуры каждого камушка, а потом высчитывать гранулярность и учить модель по рисункам, как успешно делают наши коллеги на дробилке. Но и эта идея у нас совершенно феерически обломалась по той же самой причине. Метод чрезвычайно хорош для крупных объектов, а наши пыль и мелочь имеют неприятное свойство под эти крупные объекты закатываться, так что обрисовать мы можем только верхний слой извести.

И только когда мы придумали обучать модель на ручных рассевах, дело пошло. Правда, то, что идея «выстрелила», стало понятно не сразу, даже был момент, когда решили, что просто ничего не получилось — когда модель, обученная на первых 150 картинках и по итогам тестовых рассевов показавшая хорошие результаты, увидев новые картинки, внезапно сказала, что здесь вообще ничего нет. Это было не то чтобы внезапной новостью — мы понимали, что данных мало изначально, обучающая выборка была примерно в 10 раз меньше необходимой. Но в первый момент не было понятно, получится ли это сделать вообще. Стали наращивать выборку, и с увеличением числа рассевов точность стала расти. Ну вы помните, что сейчас она 85%, а стремимся мы к 95–99%.

Ещё была идея упростить задачу и уменьшить количество рассевов путём перемешивания веником извести на ленте, чтобы на один мешок приходилось несколько разных фотографий, но она с треском провалилась — «читерство» не показало сильного выхлопа по точности. Так что теперь только отдельные пробы, только хардкор.

Рабочие в цехе поначалу смотрели на нас как на чокнутых инопланетян. Но за время работы над проектом прониклись идеей сервиса и сами подключились к процессу. Ещё интереснее им стало, когда появились первые результаты.

В целом мы довольны тем, что у нас сейчас получается, и единственный совет, который могли дать самим себе из прошлого, — сразу начинать с ручных рассевов и не связываться с обрисовкой отдельных камушков. Мы особо никаких контуров отрисовать по ней в принципе не можем: мелкая извёстка укатывается вниз и другие методы с ней просто не работают.

© Habrahabr.ru