Ансамбли данных для мониторинга состояния и прогнозирующего обслуживания

Анализ данных является основой любого мониторинга состояния и прогнозирующего технического обслуживания. Predictive Maintenance Toolbox™ обеспечивает инструменты под названием ensemble datastores для создания, маркировки и управления часто большие наборы комплексных данных, необходимые для прогнозирующего проекта алгоритма обслуживания.

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

  • Операция нормальной системы

  • Система, действующая в дефектном условии

  • Пожизненная запись работы системы (данные run-to-failure)

Для проекта алгоритма можно также использовать моделируемые данные, сгенерированные путем выполнения модели Simulink® системы при различной работе и условиях отказа.

Есть ли с помощью результатов измерений, сгенерированных данных или обоих, у вас часто много сигналов, передвигающихся на отрезок времени или несколько отрезков времени. У вас могут также быть сигналы от многих машин (например, измерения от 100 отдельных механизмов все произведенные к тем же спецификациям). И у вас могут быть данные, представляющие и здоровую операцию и условия отказа. В любом случае разработка алгоритмов для прогнозирующего обслуживания требует организации и анализа больших объемов данных при отслеживании системы и подготавливает данные, представляет.

Хранилища данных ансамбля могут помочь вам работать с такими данными, хранятся ли они локально или в удаленном месте, таком как "облачное" хранилище с помощью Amazon S3™ (Простой Сервис Устройства хранения данных), Устройство хранения данных Windows Azure® Blob и Hadoop® Distributed File System (HDFS™).

Ансамбли данных

Основной модуль для организации и управления многоаспектные наборы данных в Predictive Maintenance Toolbox является ансамблем данных. ensemble является набором наборов данных, созданных путем измерения или симуляции системы при переменных условиях.

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

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

Этим семейством наборов данных является ensemble, и каждой строкой в ансамбле является member ансамбля.

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

На практике данные для каждого члена ансамбля обычно хранимы в отдельном файле данных. Таким образом, например, у вас может быть один файл, содержащий данные для механизма 01 на уровне 9 500 миль, другой файл, содержащий данные для механизма 01 на уровне 21 250 миль, и так далее.

Моделируемые данные ансамбля

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

  • Отличайтесь значения параметров, которые отражают присутствие или отсутствие отказа. Например, используйте очень низкоомное значение, чтобы смоделировать короткое замыкание.

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

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

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

Команда generateSimulationEnsemble помогает вам сгенерировать такие наборы данных из модели, в которой можно моделировать условия отказа путем варьирования некоторого аспекта модели.

Переменные ансамбля

Переменные в вашем ансамбле служат различным целям, и соответственно могут быть сгруппированы в несколько типов:

  • 'DataVariables' Основное содержание членов ансамбля, включая результаты измерений и производные данные, которые вы используете для анализа и разработки прогнозирующих алгоритмов обслуживания. Например, в проиллюстрированных ансамблях коробки передач, Vibration и Tachometer являются переменными данных. Переменные данных могут также включать полученные значения, такие как среднее значение сигнала или частота пикового значения в спектре сигнала.

  • Independent variables — Переменные, которые идентифицируют или заказывают участникам в ансамбле, таким как метки времени, номер операционных часов или идентификаторы машины. В ансамбле измеренных данных коробки передач Age является независимой переменной.

  • Condition variables — Переменные, которые описывают условие отказа или условия работы члена ансамбля. Условные переменные могут записать присутствие или отсутствие состояния отказа или другие условия работы, такие как температура окружающей среды. В ансамбле моделируемых данных коробки передач SensorDrift является условной переменной. Условные переменные могут также быть полученными значениями, такими как одно скалярное значение, которое кодирует, несколько дают сбой и условия работы.

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

Данные ансамбля в Predictive Maintenance Toolbox

С Predictive Maintenance Toolbox вы справляетесь и взаимодействуете с данными ансамбля с помощью объектов ensemble datastore. В MATLAB® данные timeseries часто хранимы как вектор или timetable. Другие данные могут храниться как скалярные значения (такие как возраст механизма), логические значения (такой как, присутствует ли отказ или не), строки (такие как идентификатор), или таблицы. Ваш ансамбль может содержать любой тип данных, который полезен, чтобы записать для вашего приложения. В ансамбле вы обычно храните данные для каждого участника в отдельном файле. Объекты datastore ансамбля помогают вам организовать, маркировать и обработать данные ансамбля. То, какой datastore ансамбля возражают, что вы используете, зависит от того, работаете ли вы с результатами измерений по диску или генерируете моделируемые данные из модели Simulink.

  • Объекты simulationEnsembleDatastore — Управляют данными, сгенерированными из модели Simulink с помощью generateSimulationEnsemble.

  • Объекты fileEnsembleDatastore — Управляют любыми другими данными ансамбля, хранимыми на диске, таком как результаты измерений.

Объекты datastore ансамбля содержат информацию о данных, хранимых на диске, и позволяют вам взаимодействовать с данными. Вы делаете настолько использующие команды, такие как read, который извлекает данные из ансамбля в рабочее пространство MATLAB и writeToLastMemberRead, который записывает данные ансамблю.

Последний участник Рид

Когда вы работаете с ансамблем, программное обеспечение отслеживает, которого члена ансамбля оно последний раз читало. Когда вы вызываете read, программное обеспечение выбирает следующего участника, который будет читать, и обновляет свойство LastMemberRead ансамбля отразить того участника. Когда вы затем вызываете writeToLastMemberRead, программное обеспечение пишет в того участника.

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

Предположим, что вы теперь считываете некоторые данные из объекта ансамбля, ensemble.

data = read(ensemble);

В первый раз, когда вы вызываете read на ансамбле, программное обеспечение назначает некоторого члена ансамбля как первый участник, который будет читать. Программное обеспечение читает выбранные переменные от того участника в рабочее пространство MATLAB в table по имени data. (Выбранные переменные являются переменными, которые вы задаете в свойстве SelectedVariables ensemble.) Обновления программного обеспечения свойство ensemble.LastMemberRead с именем файла того участника.

Пока вы не вызываете read снова, обозначение last-member-read остается с членом ансамбля, которому программное обеспечение присвоило его. Таким образом, например, предположите, что вы обрабатываете data, чтобы вычислить некоторую выведенную переменную, такую как частота пикового значения в спектре сигнала вибрации, VibPeak. Можно добавить полученное значение члену ансамбля, которому оно соответствует, который является все еще последним членским чтением. Для этого сначала расширьте список переменных данных в ensemble, чтобы включать новую переменную.

ensemble.DataVariables = [ensemble.DataVariables; "VibPeak"]

Эта операция эквивалентна добавлению нового столбца ансамблю, как показано на следующем рисунке. Новая переменная первоначально заполняется в каждом ансамбле отсутствующим значением. (См. missing для получения дополнительной информации.)

Теперь, используйте writeToLastMemberRead, чтобы заполнить значение новой переменной для последнего членского чтения.

newdata = table(VibPeak,'VariableNames',{'VibPeak'});
writeToLastMemberRead(ensemble,newdata);

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

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

Команда hasdata говорит вам, были ли все члены ансамбля считаны. Команда reset очищает обозначение "чтения" от всех участников, таких, что следующий вызов read работает с первым членом ансамбля. Операция сброса очищает свойство LastMemberRead ансамбля, но это не изменяет другие свойства ансамбля, такие как DataVariables или SelectedVariables. Это также не изменяет данных, которые вы записали обратно ансамблю. Для примера, который показывает больше взаимодействий с ансамблем сгенерированных данных, смотрите, Генерируют и Смоделированный ансамбль данных Использования.

Чтение данных измерений

Несмотря на то, что предыдущее обсуждение использовало моделируемый ансамбль в качестве примера, обозначение последнего членского чтения ведет себя тот же путь в ансамблях результатов измерений, которыми вы управляете с fileEnsembleDatastore. Однако, когда вы работаете с результатами измерений, необходимо предоставить информацию, чтобы сказать read и команды writeToLastMemberRead, как данные хранятся и организованный на диске.

Вы делаете так путем установки свойств объекта fileEnsembleDatastore к функциям, которые вы пишете. Установите свойство ReadFcn на указатель функции, которая описывает, как считать переменные данных из файла данных. Когда вы вызываете read, он использует эту функцию, чтобы получить доступ к следующему файлу ансамбля и считать из него переменные, заданные в свойстве SelectedVariables datastore ансамбля. Точно так же вы используете свойство WriteToMemberFcn объекта fileEnsembleDatastore обеспечить функцию, которая описывает, как записать данные члену ансамбля.

Для примеров, которые показывают эти взаимодействия с ансамблем результатов измерений по диску, см.:

Ансамбли и хранилища данных MATLAB

Ансамбли в Predictive Maintenance Toolbox являются специализированным видом datastore MATLAB (см. Начало работы с Datastore (MATLAB)). read и команды writeToLastMemberRead имеют поведение, которое характерно для хранилищ данных ансамбля. Кроме того, следующие команды datastore MATLAB работают с хранилищами данных ансамбля то же самое, как они делают с другими хранилищами данных MATLAB.

  • hasdata Определите, имеет ли datastore ансамбля участников, которые еще не были считаны.

  • сброс Восстановите datastore ансамбля к состоянию, где никакие участники еще не были считаны. В этом состоянии нет никакого текущего элемента. Используйте эту команду, чтобы перечитать данные, которые вы уже считали из ансамбля.

  • высокий Преобразуйте datastore ансамбля в длинную таблицу. (См. Длинные массивы (MATLAB)).

  • прогресс Определите, какой процент datastore ансамбля был считан.

  • раздел Разделите datastore ансамбля в несколько хранилищ данных ансамбля для параллельных вычислений. (Для хранилищ данных ансамбля используйте синтаксис partition(ds,n,index).)

  • numpartitions Определите количество разделов datastore.

Чтение от нескольких членов ансамбля

По умолчанию команда read возвращает данные от одного члена ансамбля за один раз. Чтобы обработать данные больше чем от одного члена ансамбля за один раз, установите ReadSize объекта datastore ансамбля к значению, больше, чем 1. Например, если вы устанавливаете ReadSize на 3, затем каждый вызов read возвращает таблицу с тремя строками и назначает трех членов ансамбля как последнее членское чтение. Для получения дополнительной информации смотрите страницы с описанием simulationEnsembleDatastore и fileEnsembleDatastore.

Преобразуйте данные ансамбля в длинные таблицы

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

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

Как правило, ваш индикатор состояния является скалярным значением или некоторым другим значением, которое занимает меньше места в памяти, чем исходный необработанный сигнал. Таким образом, если вы записали такие значения в свой datastore, можно использовать tall и gather, чтобы извлечь индикаторы состояния в память для дальнейшей статистической обработки, такой столь же учебный классификатор.

Например, предположите, что каждый член вашего ансамбля содержит данные о вибрации timeseries. Для каждого участника вы считываете данные ансамбля и вычисляете индикатор состояния, который является скалярным значением, полученным на процесс анализа сигнала. Вы записываете полученное значение обратно участнику. Предположим, что полученное значение находится в переменной ансамбля под названием Indicator, и метка, содержащая информацию о члене ансамбля (таком как условие отказа), находится в переменной под названием Label. Чтобы выполнить последующий анализ на ансамбле, можно считать индикатор состояния и метку в память, не читая в больших данных о вибрации. Для этого установите свойство SelectedVariables ансамбля к переменным, которые вы хотите считать. Затем используйте tall, чтобы составить длинную таблицу выбранных переменных и gather, чтобы считать значения в память.

ensemble.SelectedVariables = ["Indicator","Label"];
featureTable = tall(ensemble);
featureTable = gather(featureTable);

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

Для примеров, которые иллюстрируют использование tall и gather, чтобы управлять данными ансамбля для прогнозирующего анализа обслуживания, см.:

Обработка данных ансамбля

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

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

| | |

Похожие темы