workspaceEnsemble

Управляйте данными ансамбля, хранимыми в рабочем пространстве MATLAB с помощью кода, сгенерированного Diagnostic Feature Designer

Описание

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

Когда вы импортируете таблицу или массив ячеек в приложение и генерируете код после того, как вы завершили свой проект интерактивной функции, тот код включает создание ансамбля рабочей области. Этот ансамбль содержит переменные, которые идентичны тем в вашем начальном импорте и могут управлять любыми наборами входных данных, которые включают те же переменные. Например, предположите, что вы импортируете 20 таблиц-участник в приложение, извлекаете функцию и генерируете функцию. Ансамбль рабочей области в этой функции совместим с 2000 таблицами-участником, пока таблица включает те же переменные.

Для получения дополнительной информации об ансамблях данных, смотрите Ансамбли Данных для Мониторинга состояния и Прогнозирующего Обслуживания.

Создание

Описание

wsensemble = workspaceEnsemble(Name,Value) создает пустой workspaceEnsemble объект wsensemble со свойствами, заданными аргументами пары "имя-значение".

пример

wsensemble = workspaceEnsemble(data,Name,Value) создает workspaceEnsemble объект wsensemble от набора данных data.

Входные параметры

развернуть все

Набор входных данных в виде таблицы или массива ячеек таблиц.

  • Если data таблица, каждая строка представляет данные одного члена ансамбля.

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

Свойства

развернуть все

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

Пример: outputEnsemble = workspaceEnsemble(inputData,'DataVariables',["Vibration";"Tacho"])

Независимые переменные в ансамбле в виде массива строк или массива ячеек. Как правило, независимые переменные заказывают членам ансамбля. Примерами являются метки времени или количество операционных циклов.

Пример: outputEnsemble = workspaceEnsemble(inputData,'IndependentVariables',"Time")

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

Пример: outputEnsemble = workspaceEnsemble(inputData,'ConditionVariables',"faultCode")

Переменные, чтобы читать из ансамбля в виде массива строк или массива ячеек. SelectedVariables идентифицирует который переменные в data читать и работать с.

Пример: outputEnsemble.SelectedVariables = ["Vibration","Tacho"]

Число членов, чтобы читать из ансамбля рабочей области целиком, когда вы используете read команда в виде положительного целого числа, которое меньше, чем общее количество членов в ансамбле. По умолчанию, read команда возвращает таблицу с одной строкой, содержащую данные от одного члена ансамбля. Считывать данные от нескольких членов на сингле read операция, набор это свойство к целочисленному значению, больше, чем одно. Например, если ReadSize 3, затем read возвращает таблицу с тремя строками, где каждая строка содержит данные от различного члена ансамбля. Если меньше, чем ReadSize члены являются непрочитанными, затем read возвращает таблицу со столькими же строк, сколько там остаются члены.

Изменение ReadSize свойство также сбрасывает ансамбль к своему непрочитанному состоянию. Например, предположите, что вы устанавливаете ReadSize к 1 считать некоторые члены ансамбля по одному, и затем изменить ReadSize к 3. Следующее read операция возвращает данные от первых трех членов ансамбля.

Функции объекта

refreshОбновите ансамбль рабочей области с разделами модифицированных или добавленных данных, вычисленных в параллельной обработке
writeMemberЗапишите данные определенному члену ансамбля рабочей области
readMemberВозвратите данные члена ансамбля на основе индекса члена
findIndexНайдите индексы члена ансамбля рабочей области для членов, которые совпадают с заданным именем переменной и значением

Примеры

свернуть все

Создайте workspaceEnsemble объект из таблицы ансамбля и считал свое содержимое.

Загрузите таблицу dataTable ансамбля и просмотрите первые три члена.

load dfd_Tutorial dataTable
head(dataTable,3)
ans=3×3 table
        Vibration               Tacho           faultCode
    __________________    __________________    _________

    {6000x1 timetable}    {6000x1 timetable}        0    
    {6000x1 timetable}    {6000x1 timetable}        1    
    {6000x1 timetable}    {6000x1 timetable}        1    

Таблица содержит 16 членов, каждый из которых содержат расписания с вибрацией и tacho данными наряду со скалярным кодом отказа.

Создайте ансамбль рабочей области

Создайте ансамбль рабочей области wensemble от dataTable.

wensemble = workspaceEnsemble(dataTable,'DataVariables',["Vibration";"Tacho"],...
           'ConditionVariables',"faultCode")
wensemble = 
  workspaceEnsemble with properties:

           DataVariables: [2x1 string]
    IndependentVariables: [0x0 string]
      ConditionVariables: "faultCode"
       SelectedVariables: [3x1 string]
                ReadSize: 1
              NumMembers: 16
          LastMemberRead: [0x0 string]

Подтвердите выборы условной переменной данных.

dv = wensemble.DataVariables
dv = 2x1 string
    "Vibration"
    "Tacho"

cv = wensemble.ConditionVariables
cv = 
"faultCode"

Считайте члены ансамбля рабочей области

Смотрите переменные данных в ансамбле рабочей области для первых двух членов.

По умолчанию чтение ансамбля возвращает все переменные ансамбля. Чтобы выбрать подмножество переменных, чтобы читать, задайте SelectedVariables.

wensemble.SelectedVariables = ["Vibration","Tacho"];

Используйте read получить содержимое следующего непрочитанного члена. Каждый раз, когда вы читаете член, программное обеспечение отмечает тот член как чтение и следующий read команда возвращает следующий член. Можно использовать последовательность read команды, чтобы циклично выполниться через ансамбль. Чтобы запуститься в первом члене, используйте reset.

reset(wensemble)
m1 = read(wensemble)
m1=1×2 table
        Vibration               Tacho       
    __________________    __________________

    {6000x1 timetable}    {6000x1 timetable}

m2 = read(wensemble);

m1 и m2 оба таблицы, содержащие вибрацию и tacho данные. m1 содержит данные для первого члена. m2 содержит данные для второго члена.

Исследуйте выборки вибрации на оба члена. Извлеките сигналы вибрации из m1 и m2 и отобразите первые три выборки каждого сигнала.

m1vib = readMemberData(m1,'Vibration');
m2vib = readMemberData(m2,'Vibration');
head(m1vib,3)
ans=3×1 timetable
      Time         Data  
    _________    ________

    0 sec        -0.66925
    0.005 sec    -0.61623
    0.01 sec     -0.56666

head(m2vib,3)
ans=3×1 timetable
      Time        Data  
    _________    _______

    0 sec        -1.6231
    0.005 sec    -1.5892
    0.01 sec     -1.5534

Каждый read команда возвращает уникальный результат.

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

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

Создайте ансамбль рабочей области из таблицы

Загрузите таблицу dataTable ансамбля, который содержит 16 членов, каждый из которых содержат расписания с вибрацией и tacho данными наряду со скалярным кодом отказа.

load dfd_Tutorial dataTable

Создайте ансамбль рабочей области wensemble от dataTable, определение переменных данных и условных переменных, соответствующих переменным в dataTable.

wensemble = workspaceEnsemble(dataTable,'DataVariables',["Vibration";"Tacho"],...
           'ConditionVariables',"faultCode")
wensemble = 
  workspaceEnsemble with properties:

           DataVariables: [2x1 string]
    IndependentVariables: [0x0 string]
      ConditionVariables: "faultCode"
       SelectedVariables: [3x1 string]
                ReadSize: 1
              NumMembers: 16
          LastMemberRead: [0x0 string]

Обработка данных и извлечение функций требуют только Vibration и Tacho. Задайте SelectedVariables содержать Vibration и Tacho.

wensemble.SelectedVariables = ["Vibration","Tacho"];

Вычислите среднее значение сигнала вибрации для первого члена ансамбля

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

Сбросьте ансамбль и считайте первый член.

reset(wensemble)
m = read(wensemble)
m=1×2 table
        Vibration               Tacho       
    __________________    __________________

    {6000x1 timetable}    {6000x1 timetable}

Извлеките данные о вибрации из расписания.

mvibd = readMemberData(m,'Vibration',"Data");

Вычислите среднее значение вибрации.

m_mean = mean(mvibd)
m_mean = 0.0218

Добавьте результаты к таблице-участнику m.

m = [m,table(m_mean,'VariableNames',"Data_Mean")]
m=1×3 table
        Vibration               Tacho           Data_Mean
    __________________    __________________    _________

    {6000x1 timetable}    {6000x1 timetable}    0.021809 

Добавьте новую опцию к переменным ансамбля

Включить обновленный член в wensemble, необходимо сначала задать новый Data_Mean покажите как переменная ансамбля. Добавьте Data_Mean к набору переменных данных dv ансамбля использование записи через точку.

dv = wensemble.DataVariables;
wensemble.DataVariables = [dv;"Data_Mean"];

Добавьте обновленную таблицу-участник ансамблю рабочей области

Добавьте обновленную таблицу-участник ансамблю, использующему writeToLastMemberRead команда.

writeToLastMemberRead(wensemble,m)

Цикл через остающиеся члены ансамбля

Выполните те же специфичные для члена шаги для остающихся членов ансамбля.

while hasdata(wensemble)
    m = read(wensemble);
    mvibd = readMemberData(m,'Vibration',"Data");
    m_mean = mean(mvibd);
    m = [m,table(m_mean,'VariableNames',"Data_Mean")];
    writeToLastMemberRead(wensemble,m)
end

Составьте таблицу таблицы и ансамбля функции от ансамбля рабочей области

Извлеките таблицу функции из wensemble с readFeatureTable команда. Просмотрите первые три строки.

ft = readFeatureTable(wensemble);
head(ft,3)
ans=3×2 table
    faultCode    Data_Mean 
    _________    __________

        0          0.021809
        1        -0.0092964
        1          -0.46431

Таблица функции содержит условную переменную FaultCode и переменная данных Data_Mean.

Установите SelectedVariables свойство включать все переменные так, чтобы получившаяся таблица ансамбля содержала всю вашу информацию.

wensemble.SelectedVariables = ["Vibration";"Tacho";"Data_Mean";"faultCode"]
wensemble = 
  workspaceEnsemble with properties:

           DataVariables: [3x1 string]
    IndependentVariables: [0x1 string]
      ConditionVariables: "faultCode"
       SelectedVariables: [4x1 string]
                ReadSize: 1
              NumMembers: 16
          LastMemberRead: [0x0 string]

Используйте команду datastore readall преобразовывать ансамбль рабочей области в таблицу ансамбля.

tensemble = readall(wensemble)
tensemble=16×4 table
        Vibration               Tacho           Data_Mean     faultCode
    __________________    __________________    __________    _________

    {6000x1 timetable}    {6000x1 timetable}      0.021809        0    
    {6000x1 timetable}    {6000x1 timetable}    -0.0092964        1    
    {6000x1 timetable}    {6000x1 timetable}      -0.46431        1    
    {6000x1 timetable}    {6000x1 timetable}        0.4922        1    
    {6000x1 timetable}    {6000x1 timetable}        0.3923        1    
    {6000x1 timetable}    {6000x1 timetable}      -0.12383        1    
    {6000x1 timetable}    {6000x1 timetable}       0.42548        1    
    {6000x1 timetable}    {6000x1 timetable}       -0.4598        1    
    {6000x1 timetable}    {6000x1 timetable}      0.062685        0    
    {6000x1 timetable}    {6000x1 timetable}      0.059155        0    
    {6000x1 timetable}    {6000x1 timetable}      0.037965        0    
    {6000x1 timetable}    {6000x1 timetable}       0.53982        1    
    {6000x1 timetable}    {6000x1 timetable}       0.52377        1    
    {6000x1 timetable}    {6000x1 timetable}        1.0357        1    
    {6000x1 timetable}    {6000x1 timetable}        1.0592        1    
    {6000x1 timetable}    {6000x1 timetable}      -0.94084        1    

Таблица включает исходные сигналы и новую возможность.

Введенный в R2020a