prognosability

Мера изменчивости индикаторов состояния при отказе

Описание

пример

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

пример

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

пример

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

load('machineDataCellArray.mat','C')
display(C)
C=1×10 cell
  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

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

Визуализируйте prognosability потенциальных индикаторов состояния.

prognosability(C)

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

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

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

load('machineDataTable.mat','T');
display(T)
T=1×10 cell
  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'.

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

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

    0.56697     0.92321     0.28044     0.85048      0.96475      0.33853 

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

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

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

unzip prognosabilityEnsemble.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'};

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

prognosability(ens,'MemberVariable','Machine','GroupBy','FaultCode');
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 12).
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2.7 sec
Evaluation completed in 4.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.57 sec
Evaluation completed in 1.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.3 sec
Evaluation completed in 1.4 sec

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

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

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

свернуть все

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

Если X

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

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

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

Каждый числовой участник в X имеет тип double.

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

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

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

Если X

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

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

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

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

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

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

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

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

Пример: ...,'WindowSize',0

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

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

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

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

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

Членская переменная'эквивалентно входному параметру memberVar.

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

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

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

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

свернуть все

Prognosability пожизненных данных, возвращенных как вектор или таблица.

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

  • Y 1 если X совершенно prognosable.

  • Y 0 если X отлично non-prognosable.

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

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

Ограничения

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

Алгоритмы

Расчет prognosability использует эту формулу:

prognosability = exp(стандj(xj(Nj))среднее значениеj|xj(1)xj(Nj)|),      j  = 1,...,M

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

Ссылки

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

[2] Плоскодонная рыбачья лодка, J. "Объединяя источники данных, чтобы предсказать остающийся срок полезного использования - автоматизированный метод, чтобы идентифицировать параметры предзнаменований". Кандидатская диссертация. Университет Теннесси, Ноксвилла, TN, 2010.

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

[4] Lofti, S., Дж. Б. Али, Э. Бечхоефер и М. Бенбузид. "Ветряной двигатель высокоскоростной медицинский прогноз подшипников вала через спектральные Выведенные из эксцесса индексы и SVR". Прикладное Издание 120, 2017 Акустики, стр 1-8.

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

| |

Введенный в R2018b

Для просмотра документации необходимо авторизоваться на сайте