exponenta event banner

монотонность

Количественная оценка монотонной тенденции в показателях состояния

Описание

пример

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

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

пример

Y = monotonicity(X,lifetimeVar) возвращает монотонность данных о времени жизни X используя переменную времени жизни lifetimeVar.

пример

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

пример

Y = monotonicity(X,lifetimeVar,dataVar,memberVar) возвращает монотонность данных о времени жизни X используя переменную времени жизни lifetimeVar, переменные данных, указанные dataVarи переменная-член memberVar.

пример

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

пример

monotonicity(___) без выходных аргументов строит гистограмму ранжированных значений монотонности.

Примеры

свернуть все

В этом примере рассмотрим данные о времени жизни 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 машин на графике.

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

monotonicity(C)

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

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

В этом примере рассмотрим данные о времени жизни 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 = monotonicity(T,'Time','Method','rank')
Y=1×6 table
    Constant    Linear    Quadratic     Cubic     Logarithmic    Periodic
    ________    ______    _________    _______    ___________    ________

    0.069487      1        0.17777     0.97993      0.99957      0.059208

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

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

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

mapreducer(0)

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

unzip monotonicityEnsemble.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'. Группирование данных о сроке службы гарантирует, что monotonicity вычисляет метрику для каждого кода неисправности отдельно.

monotonicity(ens,'MemberVariable','Machine','GroupBy','FaultCode');
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.63 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.15 sec
Evaluation completed in 0.33 sec
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.39 sec
Evaluation completed in 0.44 sec

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

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

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

Метод вычисления монотонности, указанный как разделенная запятыми пара, состоящая из 'Method«и либо» 'sign' или 'rank'.

  • 'sign', используйте формулу signum.

  • 'rank'Используйте формулу ранговой корреляции Спирмена.

Дополнительные сведения см. в разделе Алгоритмы.

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

свернуть все

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

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

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

  • Y равно 0, если X совершенно немонотонный.

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

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

Ограничения

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

Алгоритмы

свернуть все

Монотонность вычисляется следующими двумя способами, как определено 'Method'вариант.

Формула знака или метод знака

При указании 'Method'как 'sign', при вычислении монотонности используется следующая формула:

монотонность = 1M∑j=1M|∑k=1Nj−1sgn (xj (k + 1) xj (k)) Nj − 1 |

где xj представляет вектор измерений признака в j-ой системе, M - число контролируемых систем, а Nj - число измерений в j-ой системе.

Метод коэффициента ранговой корреляции Спирмана

При указании 'Method'как 'rank', при вычислении монотонности используется следующая формула:

монотонность = 1M∑j=1M'corr (ранг (xj), ранг (tj)) |

где М - количество контролируемых систем, а tj - вектор временных точек, соответствующий вектору измерения xj.

Ссылки

[1] Плоскодонная рыбачья лодка, J. и Дж. В. Хайнз. «Определение оптимальных прогностических параметров на основе подхода к генетическим алгоритмам». В материалах ежегодной конференции Общества по прогностике и управлению здравоохранением. 2009.

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

[3] Lei, Y. Интеллектуальная диагностика неисправностей и прогнозирование оставшегося срока службы вращающегося оборудования. Сиань, Китай: Сианьский университет Цзяотун Пресс, 2017.

[4] Лофти, С., Дж. Б. Али, Э. Беххёфер и М. Бенбузид. «Прогноз здоровья высокоскоростных подшипников валов ветротурбин через спектральные показатели Куртоза и СВР». Прикладная акустика том 120, 2017, стр. 1-8.

Представлен в R2018b