trendability

Мера подобия между траекториями индикаторов состояния

Описание

пример

Y = trendability(X) возвращает тенденциозность пожизненных данных X. Использование trendability в качестве меры подобия между траекториями функции, измеренной в нескольких экспериментах по восстановлению отказа. Более модная функция имеет траектории с такой же базовой формой. Значения Y область значений от 0 до 1, где Y равен 1, если X совершенно модно и 0, если X является нетрадиционным.

пример

Y = trendability(X,lifetimeVar) возвращает тенденциозность пожизненных данных X использование переменной времени жизни lifetimeVar.

пример

Y = trendability(X,lifetimeVar,dataVar) возвращает тенденциозность пожизненных данных X использование переменных данных, заданных как dataVar.

пример

Y = trendability(X,lifetimeVar,dataVar,memberVar) возвращает тенденциозность пожизненных данных X использование переменной времени жизни lifetimeVar, переменные данных, заданные как dataVar, и переменной представитель memberVar.

пример

Y = trendability(___,Name,Value) оценивает тенденциозность с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.

пример

trendability(___) без выходных аргументов строит столбчатую диаграмму с ранжированными значениями трендируемости.

Примеры

свернуть все

В этом примере рассмотрите данные о жизни 10 одинаковых машин со следующими 6 потенциальными прогностическими параметрами-константа, линейная, квадратичная, кубическая, логарифмическая и периодическая. Набор данных machineDataCellArray.mat содержит C который является 1x10 массив ячеек матриц, где каждый элемент массива ячеек является матрицей, которая содержит данные о жизни машины. Для каждой матрицы в массиве ячеек первый столбец содержит время, в то время как другие столбцы содержат переменные данных.

Загрузите данные о жизни и визуализируйте их в зависимости от времени.

load('machineDataCellArray.mat','C')
display(C)
C=1×10 cell array
  Columns 1 through 4

    {219x7 double}    {189x7 double}    {202x7 double}    {199x7 double}

  Columns 5 through 8

    {229x7 double}    {184x7 double}    {224x7 double}    {208x7 double}

  Columns 9 through 10

    {181x7 double}    {197x7 double}

for k = 1:length(C)
    plot(C{k}(:,1), C{k}(:,2:end));
    hold on;
end

Figure contains an axes. The axes contains 60 objects of type line.

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

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

trendability(C)

Figure contains an axes. The axes with title Trendability Metric contains an object of type bar.

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

В этом примере рассмотрите данные о жизни 10 одинаковых машин со следующими 6 потенциальными прогностическими параметрами-константа, линейная, квадратичная, кубическая, логарифмическая и периодическая. Набор данных machineDataTable.mat содержит T, который является 1x10 массив ячеек из таблиц, где каждый элемент массива ячеек содержит таблицу жизненных данных для машины.

Загрузите и отобразите данные.

load('machineDataTable.mat','T');
display(T)
T=1×10 cell array
  Columns 1 through 4

    {219x7 table}    {189x7 table}    {202x7 table}    {199x7 table}

  Columns 5 through 8

    {229x7 table}    {184x7 table}    {224x7 table}    {208x7 table}

  Columns 9 through 10

    {181x7 table}    {197x7 table}

head(T{1},2)
ans=2×7 table
    Time    Constant    Linear    Quadratic    Cubic     Logarithmic    Periodic
    ____    ________    ______    _________    ______    ___________    ________

       0     3.2029     11.203     7.7029      3.8829      2.2517        0.2029 
    0.05     2.8135     10.763     7.2637      3.6006      1.8579       0.12251 

Обратите внимание, что каждая таблица в массиве ячеек содержит переменную времени жизни 'Time' и переменные данных 'Constant', 'Linear', 'Quadratic', 'Cubic', 'Logarithmic', и 'Periodic'.

Вычислительная тенденциозность с Time как переменная времени жизни.

Y = trendability(T,'Time')
Y=1×6 table
    Constant     Linear     Quadratic     Cubic     Logarithmic    Periodic 
    _________    _______    _________    _______    ___________    _________

    0.0035529    0.99984     0.63753     0.92057      0.99582      0.0041995

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

Рассмотрим жизненные данные 4 машин. Каждая машина имеет 4 кода отказа для индикаторов потенциального состояния-напряжение, ток и степень. trendabilityEnsemble.zip - это набор из 4 файлов, где каждый файл содержит расписание жизненных данных для каждой машины - tbl1.mat, tbl2.mat, tbl3.mat и tbl4.mat. Можно также использовать файлы, содержащие данные для нескольких машин. Для каждого расписания организация данных заключается в следующем:

При выполнении вычислений на длинные массивы MATLAB ® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox™), либо локальный сеанс работы с MATLAB. Чтобы запустить пример с помощью локального сеанса работы с MATLAB, измените глобальное окружение выполнения с помощью mapreducer функция.

mapreducer(0)

Извлеките сжатые файлы, считайте данные в расписаниях и создайте fileEnsembleDatastore объект с использованием данных расписания. Для получения дополнительной информации о создании файла datastore ансамбля, смотрите fileEnsembleDatastore.

unzip trendabilityEnsemble.zip;
ens = fileEnsembleDatastore(pwd,'.mat');
ens.DataVariables = {'Voltage','Current','Power','FaultCode','Machine'};
% Make sure that the function for reading data is on path
addpath(fullfile(matlabroot,'examples','predmaint','main')) 
ens.ReadFcn = @readtable_data;
ens.SelectedVariables = {'Voltage','Current','Power','FaultCode','Machine'};

Визуализируйте тенденциозность потенциальных прогностических функций с помощью 'Machine' когда представитель переменной и группирует данные о жизни по 'FaultCode'. Группировка жизненных данных гарантирует, что trendability вычисляет метрику для каждого кода отказа отдельно.

trendability(ens,'MemberVariable','Machine','GroupBy','FaultCode');
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.083 sec
Evaluation completed in 0.2 sec
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.037 sec
Evaluation completed in 0.14 sec
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.13 sec
Evaluation completed in 0.15 sec

Figure contains an axes. The axes with title Trendability Metric contains 4 objects of type bar. These objects represent FaultCode: 1, FaultCode: 2, FaultCode: 3, FaultCode: 4.

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

rmpath(fullfile(matlabroot,'examples','predmaint','main')) % Reset path

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

свернуть все

Пожизненные данные, заданные как массив ячеек из матриц, массив ячеек из таблиц и расписаний, fileEnsembleDatastore объект, таблица или расписание. Данные о сроке службы содержат данные о выполнении до отказа контролируемых систем. Термин «срок службы» здесь относится к сроку службы машины, заданному в терминах модулей, которую вы используете для измерения срока службы системы. Модулями жизни могут быть такие величины, как пройденное расстояние (мили), потребленное топливо (галлоны) или время с начала операции (дни).

Если X является

  • массив ячеек из матриц или таблиц, функция принимает, что каждая матрица или таблица содержит столбцы пожизненных данных для системы. Каждый столбец каждой матрицы или таблицы, кроме первого столбца, содержит данные для прогностической переменной. 'Var1','Var2', ... может использоваться для обращения к матричным столбцам, которые содержат данные о жизни. Например, файл machineDataCellArray.mat содержит массив ячеек 1 на 10 матриц C, где каждая из 10 матриц содержит данные для конкретной машины.

  • таблица или расписание, функция принимает, что каждый столбец, кроме первого, содержит столбцы данных о жизни. Имена табличной переменной могут использоваться для ссылки на столбцы, которые содержат данные о жизни. Если lifetimeVar не задан, когда X является таблицей, затем первый столбец данных используется как переменная времени жизни.

  • a fileEnsembleDatastore задайте переменные данных dataVar и переменные представителей memberVar будет использоваться. Если lifetimeVar не задан, тогда первый столбец данных используется в качестве пожизненной переменной для расчетов.

Каждый численный представитель в X имеет тип double.

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

Для массива ячеек из матриц значение 'Time' может использоваться для обращения к первому столбцу каждой матрицы, который, как принято, содержит переменную времени жизни. Например, файл machineDataCellArray.mat содержит массив ячеек C, где первый столбец в каждой матрице содержит переменную времени жизни, в то время как другие столбцы содержат переменные данных.

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

Если X является

  • a fileEnsembleDatastore объект, значение dataVar заменяет DataVariables свойство ансамбля.

  • массив ячеек из матриц, значение 'Time' может использоваться для обращения к первому столбцу каждой матрицы, то есть переменной времени жизни lifetimeVar. 'Var1','Var2', ... может использоваться для ссылки на другие матричные столбцы, которые содержат данные о жизни. Например, файл machineDataCellArray.mat содержит массив ячеек C где первый столбец в каждой матрице содержит переменную времени жизни. Другие столбцы массива ячеек C содержат переменные данных.

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

Значения dataVar должны быть допустимыми именами ансамбля или табличной переменной. Если dataVar не задан, расчет включает все столбцы данных, кроме указанного в lifetimeVar. Например, предположим, что каждая запись в массиве ячеек является таблицей с переменными A, B, C, и D. Настройка dataVar на ["A","D"] использует только A и D для расчета во время C и D игнорируются.

Переменная Member, заданная как строковый или символьный вектор. Использование memberVar чтобы задать переменную для идентификации систем или машин в жизненных данных X. Для образца, в fileEnsembleDatastore объект, пятый столбец в каждом расписании содержит номера, которые идентифицируют данные от конкретной машины. Имя столбца соответствует представителю переменной memberVar.

memberVar игнорируется, когда X задается как массив ячеек из матриц или таблиц.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: ...,'Method','rank'

Переменная времени жизни, заданная как разделенная разделенными запятой парами, состоящая из 'LifeTimeVariable'и либо строковый, либо вектор символов. Если 'LifeTimeVariable'не задан, затем используется первый столбец данных.

'LifeTimeVariable'эквивалентно входному аргументу lifetimeVar.

Переменные данных, заданные как разделенная разделенными запятой парами, состоящая из 'DataVariables'и массив строк, символьный вектор или массив ячеек из векторов символов.

'DataVariables'эквивалентно входному аргументу dataVar.

Переменные представителя, заданные как разделенная разделенными запятой парами, состоящая из 'MemberVariable'и либо строковый, либо вектор символов.

'MemberVariable'эквивалентно входному аргументу memberVar.

Критерий группировки, заданный как разделенная разделенными запятой парами, состоящая из 'GroupBy'и либо строковый, либо вектор символов. Используйте 'GroupBy', чтобы задать переменные для группировки пожизненных данных X по условиям работы.

Функция вычисляет метрику отдельно для каждой группы, которая является результатом применения критерия, такого как условие отказа, заданное как 'GroupBy'. Для образца, в fileEnsembleDatastore ens объекта, четвертый столбец в каждом расписании в ens содержит переменную 'FaultCode'. Метрика вычисляется для каждой машины путем группировки данных по 'FaultCode'.

Группировать переменные можно только при X определяется как fileEnsembleDatastore объект, таблица, расписание или массив ячеек из таблиц или расписаний.

Размер центрированного окна скользящего среднего для сглаживания данных, заданный как разделенная разделенными запятой парами, состоящая из 'WindowSize'и скалярный или двухэлементный вектор. Фильтр Савицкого-Голая используется для сглаживания данных. Для получения дополнительной информации смотрите smoothdata.

Если 'WindowSize'не задан, длина окна автоматически определяется из пожизненных данных X использование smoothdata(X,'sgolay'). Установите 'WindowSize'to 0, чтобы выключить сглаживание данных.

Выходные аргументы

свернуть все

Тенденциозность данных в течение жизни, возвращаемая как вектор или таблица.

Тенденциозность является мерой подобия между траекториями функции, измеренной в нескольких экспериментах по отказу. Более модная функция имеет траектории с такой же базовой формой. Когда система постепенно приближается к отказу, подходящий индикатор состояния обычно очень моден. И наоборот, любая функция, которая не является модной, является менее подходящим индикатором состояния. Значения Y область значений от 0 до 1.

  • Y равен 1, если X совершенно модно.

  • Y 0, если X совершенно нетрадиционно.

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

Когда 'GroupBy'не задан, тогда Y возвращается как вектор-строка или таблица с одной строкой. И наоборот, когда 'GroupBy'задается, затем каждая строка в Y соответствует одной группе.

Ограничения

  • Когда X является длинная таблица или длинное расписание, trendability тем не менее загружает полный массив в память с помощью gather. Если доступная память недостаточна, то trendability возвращает ошибку.

Алгоритмы

При расчете тенденциозности используется эта формула:

trendability = minj,k|corr(xj,xk)|,      j,k = 1,...,M

где xj представляет вектор измерений функции на jth система и M переменной - это количество контролируемых систем.

Когда xj и xk имеют различные длины, более короткий вектор повторно дискретизируется, чтобы соответствовать длине более длинного вектора. Чтобы облегчить этот процесс, их временные векторы сначала нормализуются до процента срока службы, то есть [0%, 100%].

Ссылки

[1] Coble, J., and J. W. Hines. Идентификация оптимальных прогностических параметров из данных: подход к генетическим алгоритмам. В трудах ежегодной конференции Общества прогностики и управления здоровьем. 2009.

[2] Coble, J. «Слияние источников данных для предсказания оставшегося полезного срока службы - автоматизированный метод определения параметров прогностики». Доктор философии. Дипломная работа. Университет Теннесси, Ноксвилл, TN, 2010.

[3] Lei, Y. Intelligent Fault Diagnosis And Remaining Use Life Prediction of Rotting Machinery. Сиань, Китай: Xi 'an Jiaotong University Press, 2017.

[4] Lofti, S., J. B. Ali, E. Bechhoefer, and M. Benbouzid. «Прогноз состояния высокоскоростных подшипников вала ветряного двигателя через спектральные индексы, полученные из Куртоза, и SVR». Прикладная акустика Vol. 120, 2017, pp. 1-8.

Введенный в R2018b