Подготовьте матричные данные к Diagnostic Feature Designer

Этот пример показывает, как подготовить матричные данные к импорту в 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 содержат измеренный сигнал вибрации. Третье и четвертое содержат измеренный сигнал tacho. Каждый сигнал состоит из независимой переменной (время) и переменная данных (вибрация или tacho измерение). Извлеките эти сигналы в независимые матрицы 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    

Преобразуйте несколько членских матриц в таблицу ансамбля

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

Initialize 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 с помощью мультичленской опции Ансамбля Импорта.

Смотрите также

| | |

Похожие темы