В этом примере показано, как подготовить матричные данные к импорту в 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 с помощью опции Ансамбля мультичлена Импорта.
array2timetable
| Diagnostic Feature Designer | table
| timetable