![image](https://habrastorage.org/webt/o0/4n/eb/o04nebqcxs_8cg3q8t66djykns8.jpeg)
Чугун мы делаем в доменной печи. Сверху засыпаем руду и кокс в качестве топлива, снизу задуваем воздух, который обеспечивает горение. В результате получаем чугун и доменный газ, который можно сжечь где-то ещё и получить энергию. Собственно, мы так и делаем, только смешиваем его с природным газом, потому что у доменного «гуляет» калорийность.
Но доменный газ обладает ещё одним важным качеством: он выходит из печи очень горячим и под давлением. Очень глупо охлаждать его просто так, обогревая атмосферу. Гораздо лучше потратить эту энергию с пользой, ведь она отлично превращается в кинетическую энергию, которая может двигать всё что угодно. Вот мы и поставили на двух доменных печах турбины, их вращает этот самый доменный газ, чтобы они генерировали электричество, пока мы отдаём газ на генерацию электричества. Это не шутка: мощность на турбинах на границе выхода в рабочий режим — 6 и 8 МВт, а рабочая — выше 12 МВт.
Но, конечно, не всё так просто. У турбины есть лопатки, которые нужно постоянно регулировать, менять угол их наклона и т. д., так как они прямо влияют на расход газа, а значит, на давление в системе, а значит, на производительность электроэнергии. Тут-то и понадобились кое-какие ИТ-доработки.
Где находится бескомпрессорная газовая турбина
Вот довольно «простая» принципиальная схема агрегата:
![image](https://habrastorage.org/webt/ck/_y/at/ck_yatyzb_bwmgfqonzoblrau_o.png)
А вот довольно простая принципиальная схема процесса:
![image](https://habrastorage.org/webt/3c/db/xu/3cdbxu-5dz9fayqpx-xs600srds.png)
Не смотрите, что тут много всего, интересующий нас участок — это выход из доменной печи, затем — газопровод до турбины (ГУБТ — газовая утилизационная бескомпрессорная турбина) и связь с генератором. Ещё на схеме не указан обходной путь через турбину — байпасный клапан, очень нужный и важный элемент для безопасности установки.
Турбина — это совершенно обычная турбина, такой высокотехнологичный вал с лопатками-лопастями, которые крутятся, когда через проточную часть проходит газ. В свою очередь, этот же вал жёстко соединён с валом генератора.
![image](https://habrastorage.org/webt/bp/lx/xa/bplxxaugcoji2lbygsey0wc_ef0.jpeg)
Тут-то и наступает самое интересное. Дело в том, что нам важно поддерживать правильное давление в системе до турбины. Нижняя граница давления нужна для обеспечения техпроцесса, а верхняя граница давления находится ниже уровня возможных повреждений системы. Когда давление достигает верхней допустимой границы, автоматически открывается байпас-клапан (обходной путь для газа без сопротивления, фактически просто труба) и газ, вместо того, чтобы проходить через ГУБТ, сразу направляется в общезаводской коллектор доменного газа.
С другой стороны, нам интересно держать давление близким к верхней границе: это позволяет генерировать энергию наиболее стабильно. В итоге получается так, что регулирование степени открытия лопастей турбины определяет, сколько газа будет использовано с пользой, а сколько просто пронесётся мимо турбины через клапан и систему газопроводов. Зачем нам эти потери, когда можно нарастить пользу?
Советские инженеры решили эту проблему традиционным способом: человек должен смотреть на давление под колошником и потери в газопроводе, чтобы определить давление перед ГУБТ, а также на генерацию электроэнергии, и вручную исходя из опыта принимать решение о том, какой выставить угол лопаток турбины.
Задача казалась сложной, потому что давление в системе меняется постоянно: процессы в домне не самые стабильные с точки зрения калорийности доменного газа. Стрелки дёргаются туда-сюда каждую секунду. Собственно, автоматизацию не ставили в том числе и по этой причине: нужно прогнозировать изменение давления перед ГУБТ и понимать, что будет происходить дальше. Реагировать в реальном времени нельзя, потому что 1 % изменения угла открытия — это 5–10 минут. То есть быстро переигрывать лопатками — плохая идея с точки зрения правильности эксплуатации.
Мы решили, что нам нужно создать такой алгоритм, с помощью которого оператор мог бы отслеживать режимы работы турбины онлайн. То есть оцифровать текущую логику, чтобы решение постоянно искал сам алгоритм, а не оператор. Ему остаётся лишь чуть приоткрыть или призакрыть лопасти. Вторая, более сложная задача — прогнозировать изменение давления перед ГУБТ и управлять лопастями предиктивно.
![image](https://habrastorage.org/webt/oc/of/eh/ocofehgb18xcczrpnhwuglzcxrq.jpeg)
В этом то и заключается наш гибридный подход рекомендательной системы: сначала мы разработали реальный алгоритм на основе физики процессов, а затем «прикрутили» ещё один алгоритм по прогнозу давления перед ГУБТ.
Что мы сделали
Сначала вытащили схему из головы операторов и переложили её в алгоритм. Если правильно подобрать магические константы под конкретные печь и турбину, то алгоритм будет выглядеть довольно просто:
![image](https://habrastorage.org/webt/f5/ou/mq/f5oumqnyyfutuizkg-ne9jfw0tq.png)
Это вариант для ГУБТ-1 и соответствующей ей доменной печи
Особенность в том, что давление уставки (то есть верхний и нижний пороги допустимого давления в системе до турбины) может меняться в зависимости от процессов. Машинисты турбины про такие изменения не знают, поэтому по факту реагируют на слишком долгое открытие обходного клапана или на свои ощущения по поводу того, как они чувствуют тренд изменений давления.
Мы создали для них рекомендательный сервис. По сути, это мониторинг с довольно простой математикой принятия решения и простой математикой расчёта ожидаемого давления (используется модель машинного обучения от Microsoft LightGBM, которая показала себя лучше, чем, например, обычные линейные модели). Дальше алгоритм подсказывает, как стоит изменить угол положения лопаток.
Вот интерфейс:
![image](https://habrastorage.org/webt/gc/yx/9v/gcyx9v7sltzw-qnl3kgrucq_9hs.png)
Здесь зафиксирована рекомендация в режиме онлайн, но в интерфейсе программы можно проанализировать и исторический период, то есть посмотреть, когда и какие были рекомендации
Если турбина находится в режиме запуска или переходном режиме, то, согласно алгоритму, мы ничего не рекомендуем. Запускается турбина следующим образом: сначала делает 15 оборотов за счёт внешней нагрузки, потом лопасти статора вручную управляются оператором, и подаётся газ, который постепенно раскручивает турбину, и в момент, когда скорость её работы достигнет трёх тысяч оборотов в минуту, начинается стабильная генерация: в нашем случае при данном режиме — порядка 6–10 МВт.
Если турбина работает хорошо, то алгоритм смотрит на байпасный клапан. Если в среднем за 10 минут он был открыт больше, чем на 6 %, то дальше он проверяет угол открытия байпасного клапана в режиме реального времени и проверяет текущую разницу между уставкой и давлением перед турбиной. Если она меньше 4кПа — алгоритм рекомендует приоткрыть угол лопаток турбины, чтобы направить через неё больше потока. Если клапан закрыт, а разница давлений высокая, то требуется уменьшить угол лопаток турбины, чтобы пропускать меньше газа.
Чуть больше — про магические константы. Минимальную разницу между уставкой и фактическим давлением выбрали экспертно исходя из анализа исторических данных. Если разница между уставкой и фактическим давлением будет слишком малой, то параметры редко будут попадать в заданный интервал и, соответственно, будет слишком частая смена рекомендаций подсказчиком.
Максимальную разницу также выбрали экспертно исходя из анализа исторических данных. Здесь — обратно: если разница между уставкой и фактическим давлением будет слишком большой, то параметры будут большую часть времени находиться в заданном интервале и, соответственно, будет слишком редкая смена рекомендаций подсказчиком, в результате чего мы потеряем часть эффекта. По клапану: если выставить большой процент минимального закрытия, то клапан будет пропускать лишний доменный газ (который мог бы совершать полезную работу).
По байпасному клапану минимальный порог обуславливается: для первой турбины — опасностью заклинивания клапана при его полностью закрытом положении; для второй — неточной работой позиционера, то есть при полном закрытии он показывает 3 % вместо 0 %. Минимальные границы взяты чуть больше, чтобы также не «гонять» рекомендации слишком часто.
Вот конкретный пример решения:
![image](https://habrastorage.org/webt/xz/vw/4m/xzvw4mkp_bjil3fxlvk8ekwscms.jpeg)
У нас мощность — более 6 Мвт, и в среднем за 10 минут клапан был открыт меньше чем на 6 %. Дальше смотрим среднюю разность за 10 минут между уставкой и фактом. Она больше 4 кПа, поэтому смотрим текущую разницу между уставкой и фактом, т. к. она больше 4 кПа, то принимаем решение прикрыть угол лопаток на 1 %.
![image](https://habrastorage.org/webt/kt/eb/wl/ktebwl5ssq0xl2jxs4w0zytcacm.png)
Так выглядит рекомендация для операторов
![image](https://habrastorage.org/webt/en/di/rl/endirlh4ose-y3evmhcfy2rma8o.png)
На правом нижнем графике видно, как понизился угол лопаток, т. е. рекомендация сервиса была принята (голубая линия — это рекомендация, а зелёная — факт)
В чём же заключается гибридное моделирование? В алгоритме присутствует фактическое давление перед ГУБТ, для которого мы и построили прогноз на минуту вперёд. Это усовершенствует физическую модель алгоритма. Ниже — результаты визуализации того, как работает модель прогноза давления.
![image](https://habrastorage.org/webt/hi/ys/dq/hiysdq8dyfnz1g7iidyjjyh77ga.png)
Прогноз давления перед ГУБТ. Зелёный — факт, оранжевый — прогноз на одну минуту вперёд.
В январе 2022 года начали собирать статистику. Внедрили чуть раньше, но тут отчёт за год. Сначала машинисты пользовались подсказкой не так часто, как могли. Поначалу рекомендации выполнялись не всегда сразу, поэтому на гистограммах мы наблюдаем низкий процент в начале периода по отношению ко всему. Сейчас, спустя год, сервисом пользуются более уверенно и эффективно.
![image](https://habrastorage.org/webt/tl/xl/jt/tlxljttzvvlkeh9oblqbzsuc6ym.png)
Статистика работы четырёх бригад за январь-ноябрь 2022 года
Для сравнения работы с сервисом и без него мы построили ещё одну модель (обычную линейную регрессию), которая выявляла зависимость выработки электроэнергии ГУБТ от изменений ряда параметров. И смоделировали процесс работы ГУБТ при условии, если бы операторы тогда пользовались сервисом. Расчётный эффект составил порядка 0,7 МВт дополнительной электроэнергии. Это фактически то, что иначе «стравили» бы в байпас.
![image](https://habrastorage.org/webt/uf/v7/rq/ufv7rqii6nftupm-igg_unkgvyq.jpeg)
Щит управления доменной печью
В итоге сейчас у нас работает физико-математическая модель, которая даёт рекомендации в режиме онлайн.