Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Вступление
В школе для закрепления знания нам задавали решить множество однотипных примеров. Мы все время досадовали: что тут ценного? Подставить в формулу два-три значения и получить ответ. Где тут полет мысли? Реальность оказалась суровей, чем школа.
Сейчас я работаю аналитиком в ИТ. До прихода в ИТ-сферу я поработал инженером-теплотехником, программистом ЧПУ, поучаствовал в исследовательских проектах.
На своем опыте я убедился, что 95% рабочего времени инженеры и ученые тратят на такие «однотипные» действия. Расчеты уравнений, проверки, регистрация результатов, копирование спецификаций. Проект за проектом, эксперимент за экспериментом, день за днем.
Вот пара примеров с моей прошлой работы.
До 2019 года я делал макеты для термовакуумной формовки. Если такой макет обтянуть разогретым пластиком, то получим изделие, которое точно повторяет геометрию этого макета. Описание технологии тут.
В цикле изготовления макета необходим целый набор узкоспециализированных приложений:
- Autodesk Inventor для 3Д моделирования;
- Excel для выгрузки размеров заготовки;
- Excel для расчета стоимости макета;
- модуль HSM для составления управляющей программы ЧПУ;
- Файловая система компьютера для управления файлами программ;
- Среда Mach3 для управления станком ЧПУ.
Из среды в среду данные приходилось переносить вручную, а это целые таблицы и массивы значений. Процесс медленный, нередко случались ошибки.
До этого я участвовал в разработке и производстве световодов (ссылка). Исследований, проектирования и расчетов там было много: специализированные среды теплотехнических и светотехнических расчетов (Ansys, Dialux), плюс расчеты экономической эффективности, плюс Autocad и Inventor для моделей и чертежей. И здесь те же трудности: результат расчета из одного приложения нужно перетянуть в другое приложение для следующего расчета. И так несколько раз в поисках оптимального решения.
Время инженера и время ученого — это очень дорогое время. Речь здесь не о зарплате. За расчетами инженера стоит большой проект с командой. За исследованиями ученого стоит перспектива целой отрасли. Но часто высококвалифицированный специалист «тупо» перебивает значения из одной программы в другую вместо разработки концепций, моделирования, интерпретации результатов, диспутов и мозговых штурмов с коллегами.
Особенность современной бизнес-среды — это скорость. Рынок все время подгоняет. В 2014 году на изготовление макета мы брали 2-3 недели. В 2018 году – три дня, и это уже казалось слишком долго. Сейчас проектировщик должен выдать несколько вариантов решения за то же время, какое раньше выделялось только на один вариант.
И еще один момент – инвестиции и риски. Чтобы «зацепиться» за проект, предприятие до заключения договора с заказчиком должно вложить в концептуальную разработку ~6% стоимости этого проекта. Эти средства уходят:
- на исследование;
- концептуальное проектирование;
- оценку трудозатрат;
- подготовку эскизов и т.д.
Компания берет их из своего кармана, это собственный риск. Внимание к концепции требует времени специалистов, а они заняты рутиной.
После знакомства с инструментами работы в ИТ-компании я заинтересовался, какие практики из автоматизации бизнес-процессов могли бы быть полезны инженерам. Так, бизнес уже давно применяет роботизацию процессов (RPA) для борьбы с рутиной.
Производители RPA заявляют о следующих преимуществах такого инструмента автоматизации:
- универсальность (робот способен работать с любым приложением, с любым источником данных);
- простота освоения (не требуется глубоких компетенций в программировании и администрировании);
- быстрота разработки (на готовый алгоритм уходит меньше времени, чем при традиционном програмировании);
- реальная разгрузка сотрудника от рутинных операций.
По этим критериям мы и проверим, каков эффект использования RPA в инженерных/научных расчетах.
Описание примера
Рассматривать будем простой пример. Есть консольно закрепленная балка с грузом.
Взглянем на эту задачу с позиции инженера и с позиции ученого.
Кейс «инженер»: есть консольно закрепленная балка длиной 2 м. Она должна удержать груз массой 500 кг с 3-кратным запасом прочности. Балка выполнена из прямоугольной трубы. Нужно подобрать сечение балки по каталогу ГОСТ.
Кейс «ученый»: выяснить, как влияет масса груза, сечение и длина балки на несущую способность этой балки. Вывести регрессионное уравнение.
В обоих случаях учитывается сила тяжести, которая действует на балку пропорционально массе балки.
Подробно изучим именно первый кейс — «инженер». Кейс «ученый» реализуется похожим образом.
Технически наш пример очень простой. И специалист-предметник сможет посчитать его просто на калькуляторе. Мы преследуем другую цель: показать, как поможет RPA-решение, когда задача становится масштабной.
В упрощениях отметим также: сечение трубы — идеальный прямоугольник, без скругления углов, без учета сварного шва.
Задача инженера
Общая схема кейса «инженер» такая:
- На листе Excel имеем таблицу с сортаментом труб по ГОСТ.
- Для каждой записи из этой таблицы мы должны построить 3D-модель в Autodesk Inventor.
- Затем в среде Inventor Stress Analyses выполняем прочностной расчет и выгружаем результат расчета в html.
- Находим в полученном файле величину «Максимальное напряжение по Мизесу».
- Останавливаем расчет, если запас прочности (отношение предела текучести материала к максимальному напряжению по Мизесу) будет меньше 3.
Считаем, что балка подходящего сечения обеспечит 3-кратный запас прочности и будет минимальна по массе среди других вариантов.
Итого, в нашей задаче специалист работает с 3 приложениями (см. схему выше). В реальной обстановке количество приложений бывает и больше.
ГОСТ 8645-68 «Трубы стальные прямоугольные» содержит 300 записей. В своей демонстрационной задаче мы сократим cписок: возьмем по одной позиции из каждого семейства размеров. Итого 19 записей, из которых нужно выбрать одну.
Среда моделирования Inventor, в которой мы будем строить модель и делать расчет прочности, содержит библиотеку готовых материалов. Материал балки примем из этой библиотеки:
Материал — Сталь
Плотность 7,85 г/куб. см;
Предел текучести 207 MPa;
Предел на разрыв 345 MPa;
Модуль Юнга 210 GPa;
Модуль сдвига 80,7692 GPa.
Так выглядит трехмерная модель нагруженной балки:
А здесь результат прочностного расчета. Система подкрашивает красным уязвимые области балки. В этих местах напряжение самое большое. Шкала слева показывает значение максимального напряжения в материале балки.
Теперь передадим часть работы роботу
Схема работы изменяется следующим образом:
Робота соберем в среде Automation Anywhere Community Edition (далее АА). Пробежимся по критериям оценки и опишем субъективные впечатления.
Универсальность
Решения RPA (особенно коммерческие) настойчиво позиционируются как средство автоматизации бизнес-процессов, автоматизации работы офисных сотрудников. В примерах и учебных курсах разбирают взаимодействие с ERP, ECM, Web. Все очень «офисное».
По началу у нас были сомнения, сможет ли AA подхватить интерфейс и данные нашего Autodesk Inventor. Но все действительно сработало: каждый элемент, каждый контрол определился и записался. Даже в служебных формах с таблицами параметров робот получил доступ к нужной ячейке просто по указанию мышки.
Далее было испытание с запуском студии прочностного расчета. И тоже без проблем. На этом этапе пришлось внимательно поработать с паузами между действиями, когда система ожидает завершения расчета.
С получением итоговых данных из Web и вставкой их в Excel прошло гладко.
В рамках этой задачи универсальность подтвердилась. Судя по описаниям других поставщиков RPA, универсальность – действительно общее свойство этой категории ПО.
Простота освоения
На освоение ушло несколько вечеров: курсы, учебные примеры – все это есть. У многих поставщиков RPA обучение бесплатно. Единственный барьер: интерфейс среды и курсы у АА только на английском.
Быстрота разработки
Алгоритм для «задачи инженера» мы разработали и отладили за вечер. Последовательность действий уложилась всего в 44 инструкции. Ниже на рисунке фрагмент интерфейса Automation Anywhere с готовым роботом. Концепция Low code/No code – программировать не пришлось: применяли рекодеры операций, либо drug’n’drop из библиотеки команд. Затем настройка параметров в окошке свойств.
Разгрузка от рутины
На обработку одной записи робот тратит 1 мин 20 сек. Примерно столько же времени мы тратили на обработку одной записи без робота.
Если же речь о десятках и сотнях записей, то человек неизбежно утомится, начнет отвлекаться. Специалиста могут внезапно занять какой-то другой задачей. С человеком пропорция вида «Если задача занимает A минут, то N таких задач можно выполнить за A*N минут» не работает – времени всегда уходит больше.
В нашем примере робот будет перебирать записи последовательно, начиная с самых больших сечений. На больших массивах это небыстрый метод. Для ускорения можно реализовать последовательные приближения, например, метод Ньютона или половинного деления.
Результат расчета:
Таблица 1. Результат подбора сечения балки
Задача ученого
Задача ученого — провести несколько численных экспериментов, чтобы определить закон, по которому изменяется несущая способность балки в зависимости от ее сечения, длины и массы груза. Найденный закон формулируют в виде регрессионного уравнения.
Чтобы регрессионное уравнение обладало точностью, ученый должен обработать большой массив данных.
Для нашего примера выделяется массив входных переменных:
- высота профиля трубы;
- ширина;
- толщина стенки;
- длина балки;
- масса груза.
Если мы должны сделать расчет хотя бы для 3 значений каждой переменной, то совокупно это 243 повторения. При двухминутной продолжительности одной итерации общее время составит уже 8 часов — целый рабочий день! Для более полного исследования мы должны брать не по 3 значения, а по 10 или больше.
В ходе исследования обязательно выяснится, что в модель нужно включить дополнительные факторы. Например, «погонять» различные сорта стали. Объем вычислений возрастает в десятки и сотни раз.
На реальной задаче робот сможет освободить ученому несколько дней, которые специалист использует для подготовки публикации, а это главный показатель деятельности ученого.
Резюме
«Продукт» инженера — реально работающее устройство, конструкция. Роботизация расчетов снизит риски за счет более глубокой проработки проекта (больше расчетов, больше режимов, больше вариантов).
«Продукт» ученого — уравнение, закономерность или иное компактное описание. И тем оно точнее, чем больше данных вовлекли в анализ. RPA-решение поможет формировать информационную «пищу» для моделей.
Обобщим наш пример.
В роли расчетной модели может быть какая угодно модель: модель моста, модель двигателя, модель системы отопления. От специалиста требуется, чтобы все компоненты модели находились в правильном взаимодействии друг с другом и чтобы модель предоставляла «наружу» набор ключевых параметров-переменных.
Роль расчетной среды играет любое приложение, которое специалист использует в работе. Ansys, Autocad, Solidworks, FlowVision, Dialux, PowerMill, Archicad. Или что-то собственной разработки, например, программа для подбора вентиляторов на заводе-производителе (см. Программы подбора оборудования Systemair).
В роли источника данных рассматриваем и веб-сайт, и базу данных, и лист Excel, и txt-файл.
Конечный результат работы – отчет – это документ Word с автоматически сформированным текстом, диаграмма Excel, набор скриншотов или рассылка электронных писем.
RPA применим везде, где применим инженерный анализ. Вот некоторые области:
- прочностные расчеты и деформация;
- гидро- и газодинамика;
- теплообмен;
- электромагнетизм;
- междисциплинарный анализ;
- порождающее проектирование;
- управляющие программы для ЧПУ (например, нестинг);
- медицинские и биологические исследования;
- в расчетах систем с обратной связью или нестационарных систем (когда конечный результат необходимо передать в исходные данные и повторить расчет).
Сегодня RPA-решения активно используются в бизнесе для автоматизации процессов, работы с данными. В рутине офисного сотрудника, инженера и ученого много общего. Мы показали, что роботы пригодны в инженерной и научной деятельности.
Подытожим наши впечатления.
- Универсальность — да, RPA универсальный инструмент.
- Простота в освоении — да, просто и доступно, но нужен язык.
- Быстрота разработки — да, алгоритм собирается быстро, особенно, когда «набьешь руку» по работе с рекодерами.
- Разгрузка от рутины — да, действительно способен принести пользу в задачах большого масштаба.