exponenta event banner

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

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

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

  • Нормальная работа системы

  • Система, работающая в неисправном состоянии

  • Запись срока эксплуатации системы (данные о пробеге)

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

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

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

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

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

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

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

Это семейство наборов данных - ансамбль, а каждый ряд в ансамбле - участник ансамбля.

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

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

Смоделированные данные ансамбля

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

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

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

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

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

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

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

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

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

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

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

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

Ensemble Data in Predictive Maintenance Toolbox (Сбор данных в инструментарии

Панель инструментов предиктивного обслуживания позволяет управлять данными ансамбля и взаимодействовать с ними с помощью объектов хранилища данных ансамбля. В MATLAB ® данные временных рядов часто хранятся в виде вектора или timetable. Другие данные могут храниться в виде скалярных значений (таких как возраст двигателя), логических значений (таких как наличие или отсутствие сбоя), строк (таких как идентификатор) или таблиц. Ансамбль может содержать любой тип данных, полезный для записи в приложении. В ансамбле данные для каждого участника обычно хранятся в отдельном файле. Объекты хранилища данных ансамбля помогают организовать, маркировать и обрабатывать данные ансамбля. Используемый объект хранилища данных ансамбля зависит от того, выполняется ли работа с измеренными данными на диске или создаются моделируемые данные из модели Simulink.

  • simulationEnsembleDatastore objects - управление данными, сгенерированными из модели Simulink, с помощью generateSimulationEnsemble.

  • fileEnsembleDatastore объекты - управление любыми другими данными ансамбля, хранящимися на диске, например измеренными данными.

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

Чтение последнего участника

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

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

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

data = read(ensemble);

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

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

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

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

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

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

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

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

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

Считывание измеренных данных

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

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

Примеры, показывающие эти взаимодействия с набором измеренных данных на диске, см. в:

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

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

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

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

  • tall - Преобразовать хранилище данных ансамбля в таблицу высокого уровня. (См. раздел Данные об отсутствии памяти в массивах Tall).

  • progress - Определите, какой процент хранилища данных ансамбля был прочитан.

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

  • numpartitions - Определение количества разделов хранилища данных.

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

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

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

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

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

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

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

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

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

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

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

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

См. также

| | |

Связанные темы