Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диссер 2.doc
Скачиваний:
66
Добавлен:
06.03.2016
Размер:
6.66 Mб
Скачать

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

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

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

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

  • вычисление вейвлет-преобразования;

  • реализация алгоритма поддержки принятия решений на основе прецедентов;

  • количественная оценки степени развития дефекта.

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

Однако существует ряд пакетов, которые содержат уже готовые модули вычисления подобных сложных математических операций. К таким программным продуктам можно отнести MathCAD, MATLAB, и т.д. [99, 114].

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

Пакет расширения систем MATLAB – Wavelet Toolbox – одно из новейших и мощных программных средств для реализации и применения вейвлет-функций и проведения вейвлет-анализа. Пакет предоставляет широкие возможности по работе с вейвлетами, причем как в командном режиме, так и с помощью графического интерфейса пользователя. По разнообразию типов вейвлетов и функций для обработки сигналов, а также по количеству примеров, данный пакет является одним из самых лучших. Пакет Wavelet Toolbox предоставляет:

  • инструментальные средства для вейвлет-анализа и синтеза сигналов;

  • большое количество встроенных вейвлетов разных порядков;

  • средства обработки сигналов;

  • средства для проведения непрерывного и дискретного вейвлет-преобразований;

  • средства визуализации вейвлетов и всех операций с ними.

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

Исходя из перечисленных выше особенностей, можно сделать вывод, что применение MATLAB Wavelet Toolbox для вычисления вейвлет-преобразования временных сигналов вибрации погружного электрооборудования является наиболее оптимальным решением. Описание и примеры работы в MATLAB Wavelet Toolbox подробно изложены в [59, 114, 120, 121].

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

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

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

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

  • возможности разбиения программы на модули;

  • возможность создания программ не требовательных к ресурсам ЭВМ.

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

В качестве системы программирования использовалась система C++ Builder 2010, которая отвечает всем вышеперечисленным требованиям.

Указанная версия обеспечивает поддержку «Unicode», что позволяет обеспечить корректную работу написанного приложения с любым, установленном на компьютере, языковым пакетом ОС Windows.

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

  • элемент «Generics» и анонимные методы для C++, позволяют создавать более гибкий и качественный код;

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

  • меньшее время передачи приложением сообщений ОС.

Выбранная система дает возможность использования следующих ее возможностей:

  • объектно-ориентированный подход;

  • визуальное программирование интерфейса.

При объектно-ориентированном подходе в программировании, приложение не является простой последовательностью выполнения прописанных операторов, а представляет собой совокупность объектов и способов их взаимодействия. Обмен данными между объектами приложения происходит в результате определенных событий. Прежде всего – это действия пользователя (например, нажатие определенной кнопки). Кроме того, события могут наступать в результате работы самого объекта. В каждом экземпляре объекта могут быть определены обработчики определенных событий. Написание программного кода указанных обработчиков и является основным этапом программирования с помощью среды C++ Builder 2010.

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

Использование визуального и объектно-ориентированного программирования позволяет использовать современный подход, который носит название «быстрая разработка приложений».

Резюмируя вышесказанное можно отметить, что использование среды программирования C++ Builder 2010 позволяет реализовать следующее:

  • создание полностью законченных приложений для различных сфер деятельности;

  • выполнение различных операций, а также операций с графикой;

  • значительно снизить время, затрачиваемое на создание интерфейса, который будет корректно отображаться в любой версии ОС Windows;

В параграфе рассматриваются основные принципы организации разработанного программного комплекса, включая его внутреннюю структуру (рисунок 4.6).

Рисунок 4.16 - Структура программного комплекса

В структуре программного комплекса можно выделить следующие модули:

Модуль wawt.m. Данный модуль написан на языке MATLAB с применением функций входящих в состав пакета расширения Wavelet Toolbox. Данный модуль является единственным в составе программного комплекса, который написан на языке MATLAB, поэтому для применения его в составе комплекса была выполнена компиляция программного модуля в исполняемый файл «wawt.exe».

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

  • реализацию алгоритма непрерывного вейвлет преобразования по заданным параметрам;

  • преобразование полученного результата в форму удобную для дальнейшего использования в системе C++ Builder 2010, а также сохранение его виде отдельного файла на жестоком диске компьютера.

Основной функцией данного модуля является «cwt» - функция выполнения непрерывного вейвлет-преобразования.

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

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

Рисунок 4.17 - Форма для загрузки данных и построения графика

Модуль Unit2.cpp. Данный модуль (рисунок 4.8) осуществляет запуск вейвлет-преобразования, выбранного сигнала. Как отмечалось выше, вейвлет преобразование выполняется с помощью модуля «wawt.m», то есть по событию нажатия кнопки «выполнить преобразование», программа открывает исполняемый файл «wawt.exe», который выполняет преобразование и сохраняет результат в файл «waw.txt», предварительно выполнив преобразования данных для возможности дальнейшего применения в среде C++ Builder 2010.

Рисунок 4.18 - Форма для запуска вейвлет-преобразования

Модуль Unit3.cpp. Указанный модуль выполняет, одну из самых ключевых операций в рамках всей функциональности программного комплекса - по полученным значениям вейвлет-преобразования производит поиск локальных максимумов. Функционирование данного модуля (рисунок 4.9) происходит следующим образом: по нажатию кнопки «Найти точки максимума», происходит загрузка файла «waw.txt», после чего в полученном двумерном массиве данных отыскиваются координаты элементов массива, которые являются точками максимума. Далее полученные координаты (масштаб и временной сдвиг) максимумов выводятся на экран (элемент ListBox). Помимо этого выполняется подсчет количества полученных локальных максимумов. Данное число также выводится на экранную форму (посредством элемента Label). Кроме того, точки отображаются на графике (рисунок 4.12).

Рисунок 4.19 - Форма для нахождения координат точек максимума

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

Модуль Unit4.cpp. Данный модуль (рисунок 4.10) реализует начальную часть алгоритма поддержки принятия решений. Исходя исключительно из количества локальных максимумов, модуль производит выборку возможных дефектов. То есть по нажатию кнопки «вывести возможные дефекты» на форме (элемент Listbox) отображается список тех дефектов, которые удовлетворяют условию дефекта по количеству локальных максимумов. С ядрами классов эквивалентности, перечисленными в данной форме, будет в дальнейшем сравниваться исследуемый случай.

Рисунок 4.20 - Форма для определения списка возможных дефектов

Модуль Unit5.cpp. Данный модуль (рисунок 4.11) выполняет все основные операции, реализующие алгоритм поддержки принятия решения на основе прецедентов, описанный в п. 2.2.

Рисунок 4.21 - Форма для оценки расстояния

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

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

  • расстояние по временному сдвигу для всех возможных вариантов;

  • комплексное расстояние для всех возможных вариантов.

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

Модуль Unit6.cpp. Данный модуль (рисунок 4.12) выполняет функции определения дефекта, производит расчет СКЗ вибрации и степени развития дефекта. Таким образом, по нажатию кнопки «сформировать результат» производится выборка наименьшего комплексного расстояния (данные выполнения предыдущего модуля), и выводится название дефекта, которое соответствует этому расстоянию (элемент Label). Далее производится вычисление СКЗ вибрации согласно методике, изложенной в п.2.3, полученное значение также отображается на форме (элемент Label).

Рисунок 4.22 - Форма формирования результата диагностики

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

Полная экранная форма разработанного программного комплекса представлена на рисунке 4.13.

Как видно на рисунке 4.13, все элементы управления (кнопки, поля для ввода данных) расположены слева, а отображение графической информации производится в правой части экранной формы. В частности график временной зависимости вибрации расположен сверху, а полученные в результате выполнения модуля «Unit3.cpp» точки локальных максимумов визуализируются на графике снизу (элементы Chart1 и Chart2 соответственно).

Рисунок 4.23 - Полная экранная форма программного комплекса

Таким образом, была выполнена реализация программного комплекса диагностики погружного электрооборудования с применением среды C++ Builder 2010 и пакета MATLAB, который позволяет производить обработку результатов виброиспытаний указанного типа оборудования на основе алгоритмов и методик, разработанных в рамках данного магистерского исследования.