Подготовьте матричные данные к 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 путем нажатия на New Session и выбора DataTable в Выборе больше панели переменных.

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

| | |

Похожие темы