В этом примере показано, как подготовить матричные данные для импорта в Diagnostic Feature Designer. Вы проходите сначала через преобразование матрицы с одним членом и связанного с ней кода отказа в table
. Затем вы комбинируете несколько таблиц в один ансамблевой стол, который можно импортировать как мультипредставитель ансамбль.
Diagnostic Feature Designer принимает данные представителей, которые содержатся в отдельных числовых матрицах. Однако таблицы представителей обеспечивают большую гибкость и простоту использования.
С помощью таблицы можно встраивать измерения как сигнальные переменные, каждая из которых содержит как независимую переменную, так и одну или несколько переменных данных. С помощью матрицы можно задать только одну независимую переменную, которая применяется ко всем столбцам данных. Приложение может легче интерпретировать данные таблицы.
С помощью таблицы можно задать информативные имена переменных. С помощью матрицы приложение использует номера столбцов для идентификации векторов данных.
С помощью таблицы можно включать скалярную информацию для каждого представителя, такого как переменные условия или функции. С помощью матрицы вы не можете объединить скалярную информацию с информацией о сигнале. Это ограничение означает, что вы не можете группировать данные по меткам в приложении и не можете оценить эффективность функции при разделении, скажем healthy
данные от unhealthy
данные.
Ансамблевая таблица еще проще в использовании, потому что она объединяет все таблицы представителей в один набор данных. Чтобы импортировать таблицу ансамбля, вы импортируете всего один элемент, вместо того, чтобы выбирать несколько элементов.
Загрузите данные представителей и данные кода отказа. Данные представителя dmatall
состоит из четырех наборов размеченных по времени измерений вибрации и тахометра, взятых на интервале 30 секунд. Эти матрицы представителей сложены вместе в матрицу 3-D. Независимый вектор кода отказа fc
указывает, является ли каждый представитель из исправного (0
) или нездоровый (1
) система.
Инициализация tv_ensemble table
, который в конечном счете включает как данные с меткой времени, так и код отказа для каждого представителя.
load tvmatrixmembers dmatall fc
Начните с преобразования матрицы одного представителя в таблицу, которая содержит расписания для сигналов измерения и кода отказа представителя. Извлеките матрицу первого представителя из dmatall
.
memmat = dmatall(:,:,1);
Первые два столбца memmat
содержать измеренный сигнал вибрации. Третий и четвертый содержат измеренный сигнал тахометра. Каждый сигнал состоит из независимой переменной (времени) и переменной данных (вибрации или тахометрического измерения). Извлеките эти сигналы в независимые матрицы vibmat
и tachmat
.
vibmat = memmat(:,[1 2]); tachmat = memmat(:,[3 4]);
Преобразуйте каждый сигнал в timetable
. Во-первых, разделите каждый сигнал на его компоненты времени и данных. Используйте функцию seconds
для преобразования временных меток в переменные длительности для расписания. Затем введите компоненты сигнала в array2timetable
для преобразования сигналов в timetables
vibtt
и tachtt
. Присвойте имя переменной Data
в столбец данных. Расписание автоматически присваивает имя Time
в столбец времени.
vibtime = seconds(vibmat(:,1)); vibdata = vibmat(:,2); tachtime = seconds(tachmat(:,1)); tachdata = tachmat(:,2); vibtt = array2timetable(vibdata,'RowTimes',vibtime,'VariableNames',{'Data'}); tachtt = array2timetable(tachdata,'RowTimes',tachtime,'VariableNames',{'Data'});
Извлеките код отказа faultcode
от вектора кода отказа fc
.
faultcode = fc(1);
Соберите таблицу представителей, которая содержит два расписания, скаляр кода отказа и описательные имена переменных.
memtable = table({vibtt},{tachtt},faultcode,'VariableNames',{'Vibration','Tacho','FaultCode'});
Теперь у вас есть таблица представителей, которую можно вставить в ансамблевую таблицу, содержащую несколько таблиц представителей. Инициализируйте таблицу ансамбля и вставьте первый представителя.
tv_ensemble_table = table(); tv_ensemble_table(1,:) = memtable
tv_ensemble_table=1×3 table
Vibration Tacho FaultCode
___________________ ___________________ _________
{30001x1 timetable} {30001x1 timetable} 1
Можно повторить те же шаги обработки для всех матриц представителей, чтобы создать полную таблицу ансамбля. Можно также автоматизировать шаги обработки для каждой матрицы. Для этого сначала инициализируйте ансамблевую таблицу. Затем цикл через матрицы представителя, чтобы преобразовать представителей в таблицы и вставить их в ансамблевую таблицу.
Инициализация tv_ensemble_table
.
tv_ensemble_table = table();
Цикл через последовательность преобразования и вставки
for idx = 1:size(dmatall,3) vibmat = dmatall(:,[1 2],idx); tachmat = dmatall(:,[3 4],idx); vibtt = array2timetable(vibmat(:,2),'RowTimes',seconds(vibmat(:,1)),'VariableNames',{'Data'}); tachtt = array2timetable(tachmat(:,2),'RowTimes',seconds(tachmat(:,1)),'VariableNames',{'Data'}); tv_member = table({vibtt},{tachtt},fc(idx),'VariableNames',{'Vibration','Tacho','FaultCode'}); tv_ensemble_table(idx,:) = tv_member; end
Вы создали единую ансамблевую таблицу. Каждая строка представляет один представитель, и каждый представитель состоит из двух расписаний, представляющих сигналы вибрации и тахометра и скалярный код отказа.
tv_ensemble_table
tv_ensemble_table=4×3 table
Vibration Tacho FaultCode
___________________ ___________________ _________
{30001x1 timetable} {30001x1 timetable} 1
{30001x1 timetable} {30001x1 timetable} 0
{30001x1 timetable} {30001x1 timetable} 1
{30001x1 timetable} {30001x1 timetable} 0
Можно импортировать эту таблицу ансамбля в Diagnostic Feature Designer, нажав кнопку New Session и выбрав DataTable
на панели «Выбор дополнительных переменных».
array2timetable
| Diagnostic Feature Designer | table
| timetable