exponenta event banner

workspaceEnsemble

Управление данными ансамбля, хранящимися в рабочей области MATLAB, с помощью кода, созданного конструктором диагностических функций

Описание

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

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

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

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

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

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

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

Загрузить таблицу ансамбля 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 

Добавление новой функции в переменные ансамбля

Включение обновленного элемента в 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