О чем статья

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

Предыстория

Для начала приведу пример системы, которыми управляют классы продуктов, описываемых в статье.

Некоторое время назад я столкнулся с задачей оптимизации расхода ферросплавов (далее ФС). При производстве стали сталевары добавляют специальные вещества, ферросплавы, чтоб получить нужную марку с определенным химическим составом (см. схему с этапами ниже). Например, чтобы содержание Si в полученной стали было не менее 0.2 % (в технологической инструкции обычно указан диапазон, допустим от 0.2 до 0.3, но мы для простоты будем говорить только о нижней границе)

Суть проблемы: сталевары добавляют ФС с запасом, чтобы точно получилось Si не меньше 0.2%, отсюда идет лишний расход.

Решение: цифровой советчик, который на основе алгоритмов машинного обучения рассчитывает, сколько минимально следует добавить ФС и дает рекомендацию сталевару, что позволяет сэкономить.

Упрощенно, структура этого советчика, как и многих других, выглядит следующим образом:

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

В рекомендации отображается, сколько какого материала добавить:

UI цифрового советчика по оптимизации расхода ФС
UI цифрового советчика по оптимизации расхода ФС

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

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

Предметка сквозной оптимизации и для чего нужен продукт

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

Цифровые советчики, установленные на разных узлах, работают независимо, и, например, максимальная экономия ресурса 1 на агрегате 1 ограничит возможность экономии ресурса 2 на агрегате 2.

“Цепочки” далее в контесте - это представление технологического процесса. И за счет такого моделирования можно высвободить эмерджентные выгоды.

Пример группы цифровых советчиков в металлургии и их взаимозависимостей:

Итак, была поставлена задача спроектировать и разработать такой продукт, который:

  • позволит подключать несколько цифровых советчиков, работа которых может влиять друг на друга

  • будет управлять работой этих цифровых советчиков в реальном времени

  • даст возможность имитировать такой процесс в реальном времени и считать общий экономический эффект

  • позволит получать дополнительный экономический эффект от интеллектуального управления советчиками там, где это возможно

Как это делают в мире?

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

1) Французская компания "Fives" использует мегамозг, загадочную "Мастер-модель", объединяющую и балансирующую другие модели. Как именно - узнать не получилось. Картинка с их сайта:

2) Немецко-американская "Smart Steel Technologies" предлагает "Экономить выбросы CO2, улучшать качество и повышать эффективность на всех этапах производства стали" с помощью группы своих цифровых советчиков, которые учитывают влияние друг на друга. То есть логика "мастер-модели" распределена между моделями самих советчиков. Что-то вроде "роя дронов", в котором нет главного управляющего объекта.

3) Корейцы Posco заявляют, что они "think of railway platforms", используют концепцию цепочечного производства, что позволяет увеличивать производительность, сокращать издержки и повышать качество. Но как именно работает их продукт PosFrame, я найти не смог.

4) Про японцев, Nippon Steel, информации было совсем мало. Только про пару советчиков, но ничего про сквозную оптимизацию, а она у них есть.

Выбор подхода к управлению советчиками

Ключевым, на мой взгляд, был вопрос, по какому пути идти - "французскому" с мастер моделью или "немецкому", где сами модели советчиков знают друг про друга.

Одним из требований к продукту было: "Позволит подключать несколько цифровых советчиков, работа которых может влиять друг на друга". Мы раскрыли его так, что:

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

  • во-вторых, будет возможность подключать "внешних" советчиков через API и управлять ими, т.к. на многих предприятиях уже стоят советчики от других вендоров

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

Таким образом, при проектировании взаимодействия с советчиками мы ориентировались на схему, в которой был бы один компонент, управляющий работой группы моделей:

Разберемся теперь со стрелками, как "Логика /модель сквозной оптимизации" должна управлять советчиками на примере описанных выше ФС.

Оптимизация в цепочке агрегатов, где отдают ФС

Советчики, в разработке которых я участвовал, на самом деле стараются рекомендовать отдачу не так чтобы попасть идеально в требования, а тоже немного с запасом. Например, не 0.2% Si, а 0.21. Чем больше запас, тем надежнее будет попадание в требования к марке стали, но и тем меньше экономия. Итого у советчиков есть главная настройка - в какой химический состав целиться, с каким запасом. Далее будем обозначать ее как "цель" по химии.

При производстве стали ФС добавляют 2 раза - на этапе выплавки и на этапе доводки, где формируется финальный химический состав. Например, можно получить 0.15% Si на выплавке и далее 0.21% на доводке. В зависимости от этого баланса можно получить разный экономический эффект от экономии ФС.

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

Параллельно с общей логикой работы мы описали 3 основных пользовательских сценария, реализацию которых в UI покажем позже:

  • настройка цепочки советчиков и того, какие цели они будут получать

  • запуск работы цепочки в симуляционном режиме и работа в продакшен среде

  • просмотр результатов работы цепочки и того, какой получается эконом.эффект

Когда концептуальные вопросы по тому, как будет работать продукт были решены, можно было перейти к следующему шагу и придумать его архитектуру.

Архитектура и схема работы

Продукт реализован на микросервисной архитектуре, Kafka, Kubernetes - тут все стандартно. Компонентная архитектура выглядит так:

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

2) Через API поступают данные с завода в реальном времени, либо импортируется специальный файл с данными производства, в случае режима симуляции. 

3) В компоненте сквозной оптимизации рассчитываются цели и передаются в советчики.

4) Советчики рассчитывают рекомендации, показывают их сталеварам, а также отправляют рекомендации в компонент "Бизнес-мониторинг".

5) Компонент "Бизнес-мониторинг" по рекомендациям, данным производства и историческим данным рассчитывает:

  • последовал ли сталевар рекомендации

  • если последовал, то сколько ФС это позволило сэкономить, относительно того, сколько раньше отдавали сталевары, когда советчиков не было

  • если не последовал, считаем упущенную выгоду

6) В "Бизнес-мониторинге" формируются отчеты, содержащие в т.ч. экономический эффект как для каждого советчика, так и для всей цепочки. Позволяет нам измерить и показать эмерджентный эффект, который дает использование модели-оптимизатора.

В зависимости от настроек, цели для советчиков могут рассчитываться:

  • Простым алгоритмом. Например, по Si взять из требований к марке стали (0.2) и прибавить "запас" - 0.01. Указывается величина запаса

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

Импорт данных в режиме симуляции

В качестве формата данных, которые загружаются вручную в режиме симуляции, мы используем ... коллекции “Postman”.

Плюсы:

  • есть стандарт формирования коллекций на сайте разработчика. По работе с “Postman” присутствует множество информации. 

  • имеется консольный клиент (“Newman”) для прогона коллекций.

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

Минусы: 

  • вручную редактировать коллекцию сложнее, чем, например, данные в csv

  • при импорте больших коллекций могут возникать разного рода проблемы, связанные с утечкой памяти в “Newman”.

Что получили в итоге: работающий компонент системы, который эмулирует заводские системы и отправляет через Rest API данные о производстве в систему. Из-за проблемы с утечкой памяти пришлось ограничить размер коллекции, а в остальном проблем с таким решением больше не обнаружили

Как работает с точки зрения пользователя (Настройка и работа)

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

Визуально все это выглядит следующим образом:

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

В правой части заполняются настройки советчиков. Интерфейс динамический и без программирования позволяет добавлять новые советчики и новые настройки. На скрине видна главная настройка - каким алгоритмом подбирать цели для советчика по ФС на выплавке.

Выбран простой алгоритм "Отступом от НТД" где вручную настроено, сколько должно получиться  Si и Mn, относительно требований к марке стали. Для Si указано min НТД (требования к минимальному содержанию элемента) +0.01. То есть, компонент сквозной оптимизации будет рассчитывать цель для советчика на выплавке следующим образом: брать число, сколько минимум Si должно быть у этой марки стали и прибавлять к нему 0.01, например 0.2 + 0.01 = 0.21.

Также можно выбрать модель-оптимизатор. Сравнение ее эффективности с простым алгоритмом будет описано ниже.

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

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

После загрузки пакета видно прогресс - % плавок из всего пакета, по которым рассчитаны цели и выданы рекомендации советчиками. 

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

Пример отчета при симуляции на 149 плавках, получили эффект - экономия 127.2.

На заводах есть технологические ограничения, например, этапе доводки нельзя отдать ФС больше, чем 800 кг. Цифра 6.7% показывает, сколько раз при таких настройках цели были рассчитаны так, и советчики выдали такие рекомендации, что это ограничение было нарушено. Кстати, без советчиков сталевары судя по данным сами часто нарушают ограничение в 800 кг, примерно в 18% случаев

Соответственно, в случае ФС нужно подбирать настройки и искать баланс так, чтоб экономический эффект был максимальным, а % плавок с нарушением технологий - минимальным.

Результаты для бизнеса на примере ФС

После проведения множества экспериментов у простых алгоритмов с самыми разными настройками показатели были такие:

  • советчики дали экономию 263 рубля на тонну стали и 4.1% нарушений ограничений технологии

Модель-оптимизатор с автоподбором целей дала:

  • 269 рублей на тонну и 3.7 % нарушений ограничений

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

Планы развития

В настоящий моменты мы адаптируем наши платформу под химическую и нефтехимическую отрасли - системы оптимизации в реальном времени (RTO).

Примеры таких продуктов: Aspen GDOT (Dynamic RTO), Aspen Online (RTO), Honeywell Plant-Wide Optimizer, Yokogawa Dynamic Real Time Optimizer (RT-OP).

Там больше физ.хим. моделей, чем математики: система верхнего уровня (RTO) подбирает оптимальные управляемые переменные (Manipulated values) для систем нижнего уровня. На нижнем уровне с помощью физ.хим. моделей рассчитываются значения и передаются в качестве установочных параметров на агрегаты.

Модели и процессы разные, но суть сквозной оптимизации похожа, так что мы работаем и под эту доменную область.

Заключение

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

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

Комментарии (0)