Автоматическая редукция данных с использованием сгенерированного кода MATLAB

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

С помощью сгенерированного кода можно:

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

  • Измените функцию в соответствии с вашим приложением. Например, вы можете добавить обработку сигналов или функции, которые недоступны в Diagnostic Feature Designer.

  • Включите фрагменты функции в другой набор кода, который вы разрабатываете.

Сгенерируйте функцию для функций

Самый простой способ сгенерировать код для автоматической редукции данных - использовать кнопку Export на вкладке Feature Designer и выбрать Generate Function for Features.

Export button in Diagnostic Feature Designer showing menu for feature and data export and for code generation

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

Options on Diagnostic Feature Designer for specifying features to include in code generation

Вы можете сгенерировать код для всех ваших функций или, если вы выполнили рейтинг, можно выбрать количество верхних функций, которые нужно включить. Если вы выполнили оценку, можно также сгенерировать функцию с помощью кнопки Export на вкладке Feature Ranking. Сгенерированный код включает вычисления для любых вычисленных сигналов или спектров, которые требуются функции. Код включает преамбулу, в которой суммируются расчеты, которые выполняет код.

%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_stats/Data_ImpulseFactor
%  Vibration_stats/Data_Mean
%  Vibration_stats/Data_ShapeFactor
%  Vibration_stats/Data_Std
%  Vibration_tsa_rotmac/Data_RMS
%  Vibration_tsa_rotmac/Data_CrestFactor
%
% Organization of the function:
% 1. Compute signals/spectra/features
% 2. Extract computed features into a table
%
% Modify the function to add or remove data processing, feature generation
% or ranking operations.

Сгенерируйте функцию для конкретных переменных, функций и таблиц рейтинга

Если необходимо настроить выбор для генерации кода, используйте опцию Export > Generate Function for.... С помощью этой опции вы можете:

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

  • Фильтруйте выходные выходы так, чтобы вы могли выбрать один из функций с определенными характеристиками, таких как входной сигнал или текст с именем переменной.

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

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

Function generation option with selections for full signal mode and for a frame-based mode

Когда вы выбираете Export > Generate Function for... и выбираете источник функции, открывается окно, содержащее выходы выбора кандидата. Каждая выходная строка включает дополнительную информацию о том, как был вычислен выход.

Window in Diagnostic Feature Designer for selecting code generation outputs

На рисунке выбраны функции перекоса и RMS, а также спектр степени. На панели Details отображаются выходы и входы для последнего выбранного элемента. Панель Code Will Be Generated For содержит выбранные параметры.

Наряду с окном выбора, выбор Export > Generate Function for... открывает вкладку Code Generation, которая содержит опции фильтрации.

Code Generation tab in Diagnostic Feature Designer for selecting filtering options

Например, чтобы выбрать только функции, которые вычисляются непосредственно из сигнала TSA, выберите Input > Vibration_tsa/Data, как показано на рисунке.

Selection for code generation input from TSA signal data only

Отфильтрованное окно выбора отображает три функции, которые основаны непосредственно на сигнале TSA, наряду со спектром степени, который также основан непосредственно на сигнале TSA.

Filtered selection window of features and spectrum

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

Input filter set for all signals containing the tsa string

Filtered list of all features and spectra that contain the tsa string

Можно также фильтровать выход, метод и тип анализа. Для примера, если вы хотите сгенерировать код для таблицы рейтинга, выберите Analysis Type > ranking.

Code Generation tab in Diagnostic Feature Designer with Analysis Type filter set to the ranking option

Список выбора включает t-критерая Стьюдента и таблицы рейтинга Бхаттачарьи.

Filtered list of ranking tables for code generation

Чтобы очистить все фильтры, нажмите Reset Filters.

Reset Filters button

Каждое отфильтрованное представление отображает подмножество доступных выходов. Чтобы отобразить все выбранные значения вместе, нажмите кнопку Sort by Selection.

Sort by Selection button

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

List of all possible outputs with selections grouped at the top

Чтобы сгенерировать код для этих элементов, нажмите Generate Function.

Сохраните и используйте сгенерированный код

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

function [featureTable,outputTable] = diagnosticFeatures(inputData)
Два выходов этой функции являются таблицей признаков, которая содержит признаки и переменные условий, и выхода таблицей, которая содержит все переменные в ансамбле. Второй выходной аргумент необязателен. Можно использовать эту функцию для любых входных данных, которые имеют те же входные переменные, что и данные, которые вы первоначально импортировали в приложение. например, предположим, что ваши данные в fullDataTable и вам нужна только таблица функций features. Использование:
features = diagnosticFeatures(fullDataTable)

Если вы первоначально импортировали отдельные таблицы с помощью Import Single-Member Datasets и хотите проверить код на соответствие исходным данным, необходимо объединить таблицы. Для примера, если вы импортировали таблицы t1, t2, и t3, где каждая таблица представляет отдельный представитель ансамбля, сначала объедините таблицы в одну входную таблицу, а затем запустите сгенерированную функцию.

inputData = {t1,t2,t3};
features = diagnosticFeatures(inputData);

Для примера генерации кода и проверки кода с исходными данными смотрите Сгенерируйте функцию MATLAB в Diagnostic Feature Designer. Для примера, который применяет код к новому набору данных, смотрите Применить сгенерированную функцию MATLAB к расширенному набору данных. Описание самого сгенерированного кода и того, как он выполняет свои расчеты, смотрите в Анатомии кода MATLAB, сгенерированного приложением.

Изменение опций расчета для сгенерированного кода

Код, который вы генерируете, частично зависит от выбора в Computation Options. Рисунок ниже показывает варианты Computation Options при импорте ансамбля datastore.

Computation options in Diagnostic Feature Designer with a green box around the options that you can change just before generating code.

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

Зеленый ящик на Computation Options рисунке указывает опции, которые можно изменить непосредственно перед генерацией кода.

  • Store all results in a local dataset или Write results to the same folder as the original data - можно переключаться между опциями генерации кода. Эти опции появляются только при импорте ансамбля datastore.

  • Use parallel computing - Вы можете изменить эту опцию для генерации кода. Параллельные вычисления можно использовать только в том случае, если установлены Parallel Computing Toolbox™.

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

См. также

Похожие темы