workspaceEnsemble

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

Описание

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

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

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

Создание

Описание

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 представителей, каждый из которых содержит расписания с данными о вибрации и тахометре наряду с скалярным кодом отказа.

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

Создайте ансамбль рабочей области 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 являются обеими таблицами, содержащими данные о вибрации и тахометре. 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 представителей, каждый из которых содержит расписания с данными о вибрации и тахометре наряду с кодом скалярного отказа.

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 

Добавление новой возможности к переменным Ensemble

Включение обновлённого представителя в 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