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

 

Заказчик

Общество с ограниченной ответственностью "Научно-технический центр неразрушающего контроля УРАН"

 

Проект

Разработка и отладка программного обеспечения для определения толщины стенок металлических труб с использованием методов неразрушающего контроля для семейства ОС Windows в среде разработки Embarcadero RAD Studio

 

Цели и задачи

ПО для определения толщины стенок металлических труб представляет собой Win32-приложение, выполняющее следующий набор функций: 

  • сбор первичных сигналов с PCI-плат АЦП 
  • возможность открытия/просмотра/сохранения информации, полученной с первичных датчиков, на жёсткий диск
  • управление внешними исполнительными механизмами при помощи PCI-плат дискретного вывода 
  • расчёт и буферизация промежуточных и итоговых результатов расчёта 
  • отображение первичных сигналов, промежуточных и итоговых результатов расчёта на экране в наглядной для оператора форме
  • возможность подстройки перечисленных ниже параметров под конкретную установку:
    • частота дискретизации плат АЦП
    • количество первичных датчиков
    • калибровочные коэффициенты для каждого из датчиков 
    • погрешность и правила определения толщины стенки трубы
    • множество различных дискретных параметров, имеющих отношение к внешним исполнительным механизмам 

 

Решение

Решение задачи было начато с моделирования математических алгоритмов в среде MathWorks® MATLAB™. В качестве исходных данных выступали реальные сигналы, собранные ранее в полевых условиях на "настоящих" трубах. Итогом работы с MATLAB™стали отлаженные алгоритмы. 

Спецификой решаемой задачи являются относительно большие потоки данных, которые необходимо подвергать математической обработке в режиме реального времени, т.е. "как можно быстрее". И тут проявилась обратная сторона универсальной природы MATLAB™ - медлительность. Забегая немного вперёд, отметим, что для полного расчёта одной трубы с использованием реализованного в MATLAB™ алгоритма требуется порядка 72-75 минут, в то время как реализация этой же математики в конечном продукте выполняла вычисления за 8-10 секунд при прочих равных условиях (ОС - Windows 7, Процессор - Intel Core i-350M ОЗУ - 2 ГБайт). 

Реализация математического аппарата для конечного продукта выполнялась на чистом С и в конечном итоге была оформлена как динамически подключаемая библиотека (DLL). Первые тесты этой библиотеки показали, что расчёт "эталонной трубы" требует 15-18 секунд. После профилирования кода были обнаружены неидеальности и возможные пути дальнейшей оптимизации. Чтобы, во-первых, не изобретать велосипед, а, во-вторых, ускорить выход продукта, было принято решение использовать часть алгоритмов из  GNU Scientific Library. Результатом явилось дальнейшее ускорение работы ПО, уже упомянутое выше. 

Нельзя не отметить, что данная работа была выполнена в достаточно короткие сроки, исключительно благодаря тесной кооперации со специалистами ООО "НТЦ НК Уран", особенно на заключительных этапах, в т.ч. во время проведения пусконаладочных работ. В течение этого периода времени выполнялась отладка алгоритмов управления внешними исполнительными механизмами, устранение run-time ошибок, в т.ч. ошибок в работе с памятью. 

Пусконаладочные работы проводились в другом регионе РФ, поэтому для оперативного внесения и отслеживания изменений в исходных текстах программы использовался публичный SVN-репозиторий. 
 

 

Результаты

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

  • Установка работает стабильно, при этом минимальная погрешность определения толщины стенок трубы равна 0,07 мм. 
© ООО "Контроль-В" 2012 - 2018