Этот пример показывает, как использовать приложение Diagnostic Feature Designer, чтобы анализировать и выбрать функции, чтобы диагностировать отказы в тройном поршневом насосе.
Использование в качестве примера моделировало данные об отказе насоса, сгенерированные примером Мультиклассового обнаружения неисправностей с использованием смоделированных данных. Данные были предварительно обработаны, чтобы удалить переходные процессы запуска насоса.
Загрузите тройные данные об отказе насоса. Данные о насосе содержат 240 потоков и измерения давления для различных условий отказа. Существует три типа отказа (пропускающий цилиндр насоса, блокированное входное отверстие насоса, увеличенное трение переноса насоса). Измерения покрывают условия, где ни один, один, или несколько отказов не присутствует. Данные собраны в таблице, где каждая строка является различным измерением.
load('savedPumpData')
pumpData
pumpData=240×3 table
flow pressure faultCode
__________________ __________________ _________
[1201x1 timetable] [1201x1 timetable] 0
[1201x1 timetable] [1201x1 timetable] 0
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 0
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
[1201x1 timetable] [1201x1 timetable] 100
⋮
Откройте Diagnostic Feature Designer при помощи команды diagnosticFeatureDesigner
. Импортируйте данные о насосе в приложение. Данные организованы как мультичленский ансамбль, так используйте ту опцию для импорта.
Если мы задаем переменную, которую мы хотим импортировать как pumpData
, мы можем затем рассмотреть различные сигналы, которые мы импортируем. Гарантируйте, что переменная faultCode
является условной переменной. Условные переменные обозначают присутствие или отсутствие отказа и используются приложением для группировки и классификации
Постройте сигнал потока путем выбора flow
из раздела Signals & Spectra браузера данных и нажатия на Signal Trace в галерее графика. Постройте сигнал pressure
тот же путь.
Эти графики показывают давление и сигналы потока для всех 240 участников в наборе данных. Можно кликнуть по вкладке Signal Trace и выбрать группу кодом отказа, чтобы отобразить сигналы с тем же кодом отказа в том же цвете. Группировка сигналов таким образом может помочь вам быстро определить, существуют ли какие-либо четкие различия между сигналами различных типов отказа. В этом случае измеренные сигналы не показывают четких различий для различных кодов отказа.
Когда измеренные сигналы не показывают различий для различных условий отказа, следующий шаг должен извлечь функции временного интервала, такие как среднее и стандартное отклонение сигнала от сигнала. Чтобы открыть диалоговое окно, показанное здесь, выберите Time-Domain Features и затем Функции Сигнала. Выберите функции, которые требуется извлечь и нажать ОК. На данный момент снимите флажок результатов Графика. Мы построим результаты позже, чтобы видеть, помогают ли функции отличить различные условия отказа. Повторите этот процесс для сигнала давления путем изменения сигнала, выбранного наверху диалогового окна.
Поршневой насос использует карданный вал и цилиндры, чтобы накачать жидкость. Из-за механической конструкции насоса мы ожидаем там быть циклическими колебаниями потока насоса и давлением. Например, масштабируйте в раздел сигналов потока с помощью регулятора панорамы сигнала ниже графика трассировки сигнала.
Вычисление спектра частоты потока подсветит циклическую природу сигнала потока и могло дать лучшее понимание, как сигнал потока изменяется при различных условиях отказа. Оцените спектры частоты с помощью авторегрессивного метода. Этот метод соответствует авторегрессивной модели предписанного порядка к данным, и затем вычисляет спектр той предполагаемой модели. Этот подход уменьшает любой сверхподбор кривой к сигналу необработанных данных. В этом случае задайте порядок модели 20
.
Графический вывод вычисленных спектров в линейной шкале ясно показывает резонирующий peaks. Группировка кодом отказа подсвечивает, как спектры изменяются для различных условий отказа.
Выполните те же вычисления для сигнала давления, как результаты обеспечат дополнительные функции, чтобы помочь отличить различные условия отказа.
Мы можем теперь вычислить спектральные функции, такие как peaks, модальные коэффициенты и степень полосы. Мы извлекаем эти функции в меньшей полосе частот между 25-250 Гц как peaks после того, как 250 Гц будут меньшими. Обратите внимание на то, что мы извлекаем 5 спектральных peaks для каждого сигнала. На данный момент снимите флажок результатов Графика. Мы построим результаты позже, чтобы видеть, помогают ли функции отличить различные условия отказа. Повторите этот процесс для сигнала давления путем изменения сигнала, выбранного наверху диалогового окна.
Все функции, которые мы извлекли, были собраны в таблице, показанной в Табличном браузере Функции. Чтобы просмотреть вычисленные данные о функции, выберите FeatureTable1
из браузера данных и нажмите Feature Table View в галерее графика. Код отказа также отображен в табличном представлении функции как крайний правый столбец в таблице. Когда больше функций вычисляется, больше столбцов добавлено к таблице.
Вы видите дистрибутивы значений функции для различных значений условной переменной, т.е. типы отказа, путем просмотра таблицы функции как гистограмму. Нажмите Histogram в галерее графика, чтобы создать график гистограммы. Используйте следующие и предыдущие кнопки, чтобы показать гистограммы для различных функций. Графики гистограммы, сгруппированные кодом отказа, могут помочь определить, являются ли определенными функциями сильные дифференциаторы между типами отказа. Если они будут сильными дифференциаторами, их дистрибутивы будут более удалены друг от друга. Для тройных данных о насосе дистрибутивы функции имеют тенденцию накладываться и нет никаких функций, которые могут ясно быть использованы, чтобы идентифицировать отказы. Следующие взгляды раздела на использование автоматизировали рейтинг, чтобы найти, какие функции более полезны для прогноза отказа.
От вкладки Feature Designer нажмите Rank Features и выберите FeatureTable1
. Приложение собирает все данные о функции и оценивает функции на основе метрики, такие как АНОВА. Функции затем перечислены с точки зрения важности на основе метрического значения. В этом случае мы видим, что значение RMS для сигнала потока и RMS и средних значений для сигнала давления является функциями, которые наиболее строго отличают различные типы отказа друг от друга.
После того, как мы оценили наши функции с точки зрения важности, следующий шаг должен экспортировать их так, чтобы мы могли обучить классификацию, основанную на модели на этих функциях. Нажмите Export, выберите Export to Classification Learner и выберите функции, которые вы хотите использовать для классификации. В этом случае мы экспортируем все функции, которые имеют метрику One-way ANOVA
> 1, т.е. все функции до и включая pressure_ps_spec/Data_Zeta1
. Функции затем отправляются в Classification Learner и могут быть использованы, чтобы разработать классификатор, чтобы идентифицировать различные отказы.
В Classification Learner выберите 5-fold cross validation
и запустите сеанс.
От Classification Learner, train все доступные модели. Метод RUSBoosted trees
имеет самую высокую точность классификации 81%. Следующий шаг мог быть должен выполнить итерации на функциях — особенно спектральных функциях — и возможно изменить спектральный метод вычисления, изменить пропускную способность или использовать различный peaks частоты, чтобы улучшить точность классификации.
Этот пример показал, как использовать Diagnostic Feature Designer, чтобы анализировать и выбрать функции и создать классификатор, чтобы диагностировать отказы в тройном поршневом насосе.
Classification Learner | Diagnostic Feature Designer