prognosability

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

Описание

пример

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

пример

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

пример

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

prognosability(C)

Figure contains an axes. The axes with title Prognosability 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 = 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 

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

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

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

mapreducer(0)

Извлеките сжатые файлы, считайте данные в расписаниях и создайте 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'};

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

prognosability(ens,'MemberVariable','Machine','GroupBy','FaultCode');
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.096 sec
Evaluation completed in 0.23 sec
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.042 sec
Evaluation completed in 0.13 sec
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.15 sec
Evaluation completed in 0.18 sec

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

  • Y 0, если X совершенно не предсказуема.

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

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

Ограничения

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

Алгоритмы

В расчете прогностической способности используется эта формула:

prognosability = exp(stdj(xj(Nj))meanj|xj(1)xj(Nj)|),      j = 1,...,M

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

Ссылки

[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
Для просмотра документации необходимо авторизоваться на сайте