Вступление


В школе для закрепления знания нам задавали решить множество однотипных примеров. Мы все время досадовали: что тут ценного? Подставить в формулу два-три значения и получить ответ. Где тут полет мысли? Реальность оказалась суровей, чем школа.

Сейчас я работаю аналитиком в ИТ. До прихода в ИТ-сферу я поработал инженером-теплотехником, программистом ЧПУ, поучаствовал в исследовательских проектах.

На своем опыте я убедился, что 95% рабочего времени инженеры и ученые тратят на такие «однотипные» действия. Расчеты уравнений, проверки, регистрация результатов, копирование спецификаций. Проект за проектом, эксперимент за экспериментом, день за днем.

Вот пара примеров с моей прошлой работы.

До 2019 года я делал макеты для термовакуумной формовки. Если такой макет обтянуть разогретым пластиком, то получим изделие, которое точно повторяет геометрию этого макета. Описание технологии тут.

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

  • Autodesk Inventor для 3Д моделирования;
  • Excel для выгрузки размеров заготовки;
  • Excel для расчета стоимости макета;
  • модуль HSM для составления управляющей программы ЧПУ;
  • Файловая система компьютера для управления файлами программ;
  • Среда Mach3 для управления станком ЧПУ.

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

До этого я участвовал в разработке и производстве световодов (ссылка). Исследований, проектирования и расчетов там было много: специализированные среды теплотехнических и светотехнических расчетов (Ansys, Dialux), плюс расчеты экономической эффективности, плюс Autocad и Inventor для моделей и чертежей. И здесь те же трудности: результат расчета из одного приложения нужно перетянуть в другое приложение для следующего расчета. И так несколько раз в поисках оптимального решения.

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

Особенность современной бизнес-среды — это скорость. Рынок все время подгоняет. В 2014 году на изготовление макета мы брали 2-3 недели. В 2018 году – три дня, и это уже казалось слишком долго. Сейчас проектировщик должен выдать несколько вариантов решения за то же время, какое раньше выделялось только на один вариант.

И еще один момент – инвестиции и риски. Чтобы «зацепиться» за проект, предприятие до заключения договора с заказчиком должно вложить в концептуальную разработку ~6% стоимости этого проекта. Эти средства уходят:

  • на исследование;
  • концептуальное проектирование;
  • оценку трудозатрат;
  • подготовку эскизов и т.д.

Компания берет их из своего кармана, это собственный риск. Внимание к концепции требует времени специалистов, а они заняты рутиной.

После знакомства с инструментами работы в ИТ-компании я заинтересовался, какие практики из автоматизации бизнес-процессов могли бы быть полезны инженерам. Так, бизнес уже давно применяет роботизацию процессов (RPA) для борьбы с рутиной.

Производители RPA заявляют о следующих преимуществах такого инструмента автоматизации:

  1. универсальность (робот способен работать с любым приложением, с любым источником данных);
  2. простота освоения (не требуется глубоких компетенций в программировании и администрировании);
  3. быстрота разработки (на готовый алгоритм уходит меньше времени, чем при традиционном програмировании);
  4. реальная разгрузка сотрудника от рутинных операций.

По этим критериям мы и проверим, каков эффект использования RPA в инженерных/научных расчетах.

Описание примера


Рассматривать будем простой пример. Есть консольно закрепленная балка с грузом.
image
Взглянем на эту задачу с позиции инженера и с позиции ученого.

Кейс «инженер»: есть консольно закрепленная балка длиной 2 м. Она должна удержать груз массой 500 кг с 3-кратным запасом прочности. Балка выполнена из прямоугольной трубы. Нужно подобрать сечение балки по каталогу ГОСТ.

Кейс «ученый»: выяснить, как влияет масса груза, сечение и длина балки на несущую способность этой балки. Вывести регрессионное уравнение.

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

Подробно изучим именно первый кейс — «инженер». Кейс «ученый» реализуется похожим образом.

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

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

Задача инженера


Общая схема кейса «инженер» такая:

  1. На листе Excel имеем таблицу с сортаментом труб по ГОСТ.
  2. Для каждой записи из этой таблицы мы должны построить 3D-модель в Autodesk Inventor.
  3. Затем в среде Inventor Stress Analyses выполняем прочностной расчет и выгружаем результат расчета в html.
  4. Находим в полученном файле величину «Максимальное напряжение по Мизесу».
  5. Останавливаем расчет, если запас прочности (отношение предела текучести материала к максимальному напряжению по Мизесу) будет меньше 3.

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

image

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

ГОСТ 8645-68 «Трубы стальные прямоугольные» содержит 300 записей. В своей демонстрационной задаче мы сократим cписок: возьмем по одной позиции из каждого семейства размеров. Итого 19 записей, из которых нужно выбрать одну.

image

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

Материал — Сталь
Плотность 7,85 г/куб. см;
Предел текучести 207 MPa;
Предел на разрыв 345 MPa;
Модуль Юнга 210 GPa;
Модуль сдвига 80,7692 GPa.

Так выглядит трехмерная модель нагруженной балки:

image

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

image
?

Теперь передадим часть работы роботу


Схема работы изменяется следующим образом:

image

Робота соберем в среде 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 из библиотеки команд. Затем настройка параметров в окошке свойств.

image

Разгрузка от рутины


На обработку одной записи робот тратит 1 мин 20 сек. Примерно столько же времени мы тратили на обработку одной записи без робота.

Если же речь о десятках и сотнях записей, то человек неизбежно утомится, начнет отвлекаться. Специалиста могут внезапно занять какой-то другой задачей. С человеком пропорция вида «Если задача занимает A минут, то N таких задач можно выполнить за A*N минут» не работает – времени всегда уходит больше.

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

Таблица 1. Результат подбора сечения балки

image

Задача ученого


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

Чтобы регрессионное уравнение обладало точностью, ученый должен обработать большой массив данных.

Для нашего примера выделяется массив входных переменных:

  • высота профиля трубы;
  • ширина;
  • толщина стенки;
  • длина балки;
  • масса груза.

Если мы должны сделать расчет хотя бы для 3 значений каждой переменной, то совокупно это 243 повторения. При двухминутной продолжительности одной итерации общее время составит уже 8 часов — целый рабочий день! Для более полного исследования мы должны брать не по 3 значения, а по 10 или больше.

В ходе исследования обязательно выяснится, что в модель нужно включить дополнительные факторы. Например, «погонять» различные сорта стали. Объем вычислений возрастает в десятки и сотни раз.

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

Резюме


«Продукт» инженера — реально работающее устройство, конструкция. Роботизация расчетов снизит риски за счет более глубокой проработки проекта (больше расчетов, больше режимов, больше вариантов).

«Продукт» ученого — уравнение, закономерность или иное компактное описание. И тем оно точнее, чем больше данных вовлекли в анализ. RPA-решение поможет формировать информационную «пищу» для моделей.

Обобщим наш пример.

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

Роль расчетной среды играет любое приложение, которое специалист использует в работе. Ansys, Autocad, Solidworks, FlowVision, Dialux, PowerMill, Archicad. Или что-то собственной разработки, например, программа для подбора вентиляторов на заводе-производителе (см. Программы подбора оборудования Systemair).

В роли источника данных рассматриваем и веб-сайт, и базу данных, и лист Excel, и txt-файл.
Конечный результат работы – отчет – это документ Word с автоматически сформированным текстом, диаграмма Excel, набор скриншотов или рассылка электронных писем.

RPA применим везде, где применим инженерный анализ. Вот некоторые области:

  • прочностные расчеты и деформация;
  • гидро- и газодинамика;
  • теплообмен;
  • электромагнетизм;
  • междисциплинарный анализ;
  • порождающее проектирование;
  • управляющие программы для ЧПУ (например, нестинг);
  • медицинские и биологические исследования;
  • в расчетах систем с обратной связью или нестационарных систем (когда конечный результат необходимо передать в исходные данные и повторить расчет).

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

Подытожим наши впечатления.

  1. Универсальность — да, RPA универсальный инструмент.
  2. Простота в освоении — да, просто и доступно, но нужен язык.
  3. Быстрота разработки — да, алгоритм собирается быстро, особенно, когда «набьешь руку» по работе с рекодерами.
  4. Разгрузка от рутины — да, действительно способен принести пользу в задачах большого масштаба.

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


  1. x67
    15.11.2019 19:38

    Я правильно понял, что в посте речь про софтину (или класс софта), которая позволяет работать в одной среде, не выгружая результаты в эксель?
    Тогда почему бы не воспользоваться макроязыком, который по моей памяти есть и в инвенторе. Это ведь будет бесплатно и решит задачу, причем решение может юыть индивидуальным, а значит максимально автоматизированным, чего не добиться с помощью готового софта


    1. Kazancev
      15.11.2019 20:01
      +1

      К сожалению, автор поста решает нерешаемую задачу. Могу судить, т.к. сам являюсь и тем, и другим, я инженер-прочнист и кафедральный сотрудник одновременно. Позиция «программируй всё что шевелится» не работает в сферах интеллектуального труда. Реальный обобщённый сферический научный сотрудник тратит не так много времени на снятие экспериментальных данных как описывает топикстартер, очень много времени уходит на анализ литературы, откидывание мусорных статей и книг, проработку текстов и продумывание смысла работы вообще. То же самое относится к инженерам — не поверите, но инженер большую часть времени а) чертит и обсуждает задачи и возникающие проблемы с другими инженерами б) пишет много-много отчётов и заполняет тонны бюрократических бумажек. А то, что описал ТС — это очень-очень частная задача, где нужно стать фактически частью механического конвейера (а деятельность вне этого конвейера ТС не описывает т.к. ещё недостаточно с ней знаком). Реальная жизнь сложнее чем одна частная задача. Реальная жизнь инженеров-научников — не компьютерная игра, нельзя упростить целеполагание и смысл до реализации рефлексов амёбы.
      Программирование очень сильно упростило жизнь в той же расчётной сфере, это я про кады-сапры-кае и прочий софт. Но программы так и не смогли заменить человеческие мозги. Руки частично заменили роботами, это да. Но, извините, никаким кадом и кае за один пресест и за время на выпить чашку кофе авиадвижок не обсчитать. Это фантазия сродни киберпанку. Повторяю, я знаю людей которые считают реальное железо и сам вхожу в их число и поэтому имею право на подобную критику =)

      Если же кого заинтересует вообще тема глобальной автоматизации в инженерии, то рекомендую ознакомиться вот с этим вот феерическим персонажем, который продолжает вводить людей в заблуждение касательно всесильности ИИ, софта и роботов cccp3d.ru/topic/91595-%D1%81%D0%BF%D0%B8-%D0%BE%D1%82-%D1%82%D1%83%D1%80%D1%82%D1%8B/?do=getNewComment
      Если кто подумает что перс по ссылке предлагает дельные вещи — взгляните на количество страниц в том топике…


      1. PalaginAV30 Автор
        19.11.2019 13:44

        Позиция «программируй всё что шевелится» не работает в сферах интеллектуального труда.

        Есть две причины, почему иногда нужно «программировать все, что шевелится»:
        1. программируй все, что шевелится — и по обратной связи найдешь 1 реально хороший кейс. И да — это будет 1 кейс из 100 вариантов/гипотез. «Программирование» здесь не столько прям прикладное и полезное, сколько исследовательское. Успешный кейс передаем в настоящую разработку и доводим его до нового работающего средства автоматизации. Неуспешные кейсы анализируем. Исследования виток за витком помогают прояснить принципы успешного кейса — так постепенно инновация превратится в технологию. Или наоборот, ляжет в стол до лучших времен.
        2. программируй все, что в интеллектуальном труде является рутиной. Наша как ИТ-аналитиков задача — находить рутинные элементы даже в самых творческих процессах. Пример — обход электронных библиотек и выгрузка референтных источников. И снова обратная связь подскажет, правильно ли мы (ИТ) понимаем нужды пользователей.

        Настоящая статья — это плод такого микроисследования. А ваше мнение, ваш комментарий — это та самая обратная связь.

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

        Так сложилось, что в проектах я всегда был частью команды, с распределением ролей. И на своем опыте бюрократии я действительно не хлебнул. Занимался как раз моделированием и расчетами, их было много.
        Про анализ литературы/очистку мусора/проработку текстов — это очень интересный кейс, который пересекается с «анализом конкурентов» в бизнесе. Тема активно развивается: там можно встретить и про ИИ, и про роботов, и про статистику. И здесь мы должны разделить функции. Роботам и ИИ — обход сайтов и изданий, сбор и упорядочение информации в файловой системе, группировка, классификация, грубая сортировка. Человеку — интерпретация, анализ, обобщения, гипотезы, выводы.

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

        Где подписаться? ))) Согласен с каждым словом! Именно так мы и понимаем круг «обязанностей» роботов, ИИ и прочих средств автоматизации. Да, ИИ и RPA — маркетингом позиционируется как некий «новый уровень». Но это новый уровень «рук», а не «мозгов».

        Повторяю, я знаю людей которые считают реальное железо и сам вхожу в их число и поэтому имею право на подобную критику =)

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


    1. PalaginAV30 Автор
      19.11.2019 13:40

      Я правильно понял, что в посте речь про софтину (или класс софта), которая позволяет работать в одной среде, не выгружая результаты в эксель?

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

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

      Согласен, если речь идет об автоматизации внутри одной среды, например, Inventor. Разработчик среды заложил в нее VBA для автоматизации внутренних потребностей. По COM можем взаимодействовать из VBA и с Excel, и с другими приложениями. Во многих других средах поставщики закладывают такие возможности автоматизации.

      Одна тонкость: чтобы работать в том же VBА, специалист должен знать объектную модель своей среды и объектную модель той среды, с которой завязывает взаимодействие.

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

      Встроенный в Inventor и Autocad макрорекодер не записывает действия в стороннем приложении. RPA же базируется на собственной платформе, поэтому автоматизировать можно работу в любых приложениях. А на данные робот будет смотреть через GUI целевого приложения.

      Не забываем и об ограничениях RPA.

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

      Но он может последовательно обойти все дерево построения с целью, например, переименовать элементы в соответствии с какой-то логикой. Или затянуть в библиотеку инструментов HSM-модуля каталог фрез и резцов с рекомендуемыми режимами прямо с сайта производителя. Это рутина, и именно для рутины RPA и рассчитан.