В Diagnostic Feature Designer функции исследуются в интерактивном режиме с помощью инструментов для обработки сигналов, создания функций и ранжирования. После выбора набора наиболее эффективных функций можно создать функцию MATLAB ®, которая воспроизводит вычисления для этих функций. Эту функцию можно применить непосредственно к большему набору данных измерений и увеличить число элементов в наборе элементов. Можно также изменить функцию в соответствии с приложением и включить часть или всю функцию в другой код.
В этом примере показано, как создать функцию MATLAB для вычисления набора элементов и как проверить эту функцию с помощью исходного набора данных.
В примере предполагается, что вы знакомы с концепциями данных ансамбля и с основными операциями в приложении, такими как импорт данных, обработка сигналов и создание функций. Дополнительные сведения об этих концепциях и операциях см. в разделе Определение индикаторов состояния для проектирования алгоритма предиктивного обслуживания.
В этом примере используются данные ансамбля, сгенерированные из модели системы передачи в разделе Использование Simulink для генерации данных об отказах. Результаты модели включают в себя:
Измерения вибрации от датчика, контролирующего вибрации обсадной колонны
Датчик тахометра, выдающий импульс при каждом вращении вала
Код отказа, указывающий на наличие смоделированного отказа
В окне команд MATLAB загрузите данные передачи, которые хранятся в таблице. dataTable.
load dfd_Tutorial dataTable
dataTable представляет собой ансамблевую таблицу, которая содержит 16 членов, каждый из которых представляет одну моделируемую систему передачи. Каждая строка таблицы соответствует одному члену. Каждый столбец таблицы соответствует одной переменной, например Vibration или FaultCode. Все участники ансамбля имеют одинаковые переменные.Откройте конструктор диагностических функций.
diagnosticFeatureDesigner
В приложении выполните импорт dataTable. В процессе импорта установите faultCode введите переменную условия. По завершении импорта обозреватель сигналов отображает данные вибрации и тахо, а обозреватель наборов данных отображает импортированный ансамбль. Сведения о процессе импорта см. в разделе Импорт и визуализация данных ансамбля в конструкторе диагностических функций.

Вычислите сигнал временной синхронизации (TSA) на основе сигналов вибрации и тахо. Для этого сначала выберите Vibration/Data на панели «Браузер данных». Затем на вкладке Feature Designer выберите Filtering & Averaging > Time-Synchronous Signal Averaging (Фильтрация и усреднение). Задайте параметры, как показано на следующем рисунке, и нажмите кнопку ОК.

Новый сигнал появится в браузере данных приложения.

Для получения информации о сигналах TSA см. tsa.
На вкладке Feature Designer выберите Time-Domain Features > Signal Features, чтобы открыть набор доступных сигнальных функций. Выберите элементы для среднего, стандартного отклонения и куртоза.

Просмотрите значения элемента. В браузере данных выберите FeatureTable1. Затем в графической галерее выберите «Таблица элементов». Эти шаги открывают таблицу, содержащую значения элементов для каждого элемента вместе с переменной условия. faultCode.

Создайте функцию MATLAB, которая воспроизводит вычисления для этих элементов. На вкладке Конструктор элементов выберите Экспорт > Создать функцию для элементов.

При выборе открывается диалоговое окно, в котором можно указать таблицу элементов и элементы. Параметры по умолчанию FeatureTable1 и Use All Features являются вашими единственными вариантами в этом случае, так как у вас есть только одна таблица функций и не выполнено никакого ранжирования.

При нажатии кнопки ОК в редакторе MATLAB открывается сценарий функции, который начинается со следующих строк.
function [featureTable,outputTable] = diagnosticFeatures(inputData) %DIAGNOSTICFEATURES recreates results in Diagnostic Feature Designer. % % Input: % inputData: A table or a cell array of tables/matrices containing the % data as those imported into the app. % % Output: % featureTable: A table containing all features and condition variables. % outputTable: A table containing the computation results. % % This function computes signals: % Vibration_tsa/Data % % This function computes features: % Vibration_tsa_stats/Kurtosis % Vibration_tsa_stats/Mean % Vibration_tsa_stats/Std % % Organization of the function: % 1. Compute signals/spectra/features % 2. Extract computed features into a table
diagnosticFeatures.m.Дополнительные сведения о содержимом кода см. в разделе Анатомия кода MATLAB, созданного приложением.
Запустите функцию с помощью dataTable для создания новой таблицы элементов featuretable.
featuretable = diagnosticFeatures(dataTable)
Сравните первые восемь значений элемента с соответствующими значениями элемента в приложении. На уровне отображаемой точности значения идентичны.
16×4 table
faultCode Vibration_tsa_stats/Kurtosis Vibration_tsa_stats/Mean Vibration_tsa_stats/Std
_________ ____________________________ ________________________ _______________________
0 2.2516 0.022125 0.99955
1 2.2526 -0.027311 0.999
1 2.2571 -0.45475 0.99629
1 2.2526 0.47419 0.999
1 2.2529 0.37326 0.999
1 2.2526 -0.14185 0.999
1 2.2529 0.40644 0.999
1 2.2529 -0.47485 0.99915
read | readFeatureTable | readMemberData | tsa | workspaceEnsemble | writeToLastMemberRead