exponenta event banner

predictRUL

Оценка остаточного срока службы испытательного компонента

Описание

predictRUL функция оценивает оставшийся срок службы (RUL) испытательного компонента, учитывая модель оценки и информацию о времени его использования и профиле деградации. Перед прогнозированием RUL необходимо сначала сконфигурировать модель оценки с использованием исторических данных о работоспособности ансамбля сходных компонентов, например, нескольких машин, изготовленных в соответствии с одинаковыми спецификациями. Для этого используйте fit функция.

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

  • Модели деградации

  • Модели выживания

  • Модели подобия

Базовый пример, иллюстрирующий прогнозирование RUL, см. в разделе Обновление прогнозирования RUL по мере поступления данных.

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

пример

estRUL = predictRUL(mdl,data) оценивает оставшийся срок службы компонента с использованием модели подобия mdl и профили элементов деградации в data. data содержит измерения характеристик за срок службы компонента до текущего срока службы.

estRUL = predictRUL(mdl,data,bounds) оценивает оставшийся срок службы компонента с использованием модели подобия и границ элемента, указанных в bounds.

пример

estRUL = predictRUL(mdl,threshold) оценивает значение RUL для компонента с использованием модели деградации mdl и текущее значение переменной времени жизни, хранящееся в mdl. RUL - это оставшееся время до того, как прогнозируемый отклик модели достигнет порогового значения. threshold.

пример

estRUL = predictRUL(mdl,usageTime) оценивает значение RUL для компонента с использованием модели выживания надежности mdl и текущее время использования компонента.

пример

estRUL = predictRUL(mdl,covariates) оценивает RUL компонента с использованием ковариатной модели выживания mdl и текущие ковариатные значения для компонента.

пример

estRUL = predictRUL(___,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение.

[estRUL,ciRUL] = predictRUL(___) возвращает доверительный интервал, связанный с оценкой RUL.

пример

[estRUL,ciRUL,pdfRUL] = predictRUL(___) возвращает функцию плотности вероятности для оценки RUL.

[estRUL,ciRUL,pdfRUL,histRUL] = predictRUL(___) возвращает гистограмму показателей подобия компонентов при оценке RUL с использованием модели подобия.

Примеры

свернуть все

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

load('pairwiseTrainVectors.mat')

Обучающие данные представляют собой клеточный массив векторов столбцов. Каждый вектор столбца является профилем элемента деградации для компонента.

Создайте попарную модель подобия с настройками по умолчанию.

mdl = pairwiseSimilarityModel;

Обучение модели подобия с использованием данных обучения.

fit(mdl,pairwiseTrainVectors)

Загрузить данные наблюдения.

load('linTestData.mat','linTestData1')

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

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

threshold = 60;

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

mdl = linearDegradationModel('Theta',1,'ThetaVariance',1e6,'NoiseVariance',0.003,...
                             'LifeTimeVariable',"Time",'DataVariables',"Condition",...
                             'LifeTimeUnit',"hours");

Наблюдать за состоянием компонента для 50 часов, обновление модели деградации после каждого наблюдения.

for i=1:50
    update(mdl,linTestData1(i,:));
end

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

estRUL = predictRUL(mdl,threshold)
estRUL = duration
   50.301 hr

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

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

load('expTrainTables.mat')

Данные обучения представляют собой массив ячеек таблиц. Каждая таблица является профилем элемента деградации для компонента. Каждый профиль состоит из измерений срока службы в "Hours" измерения переменных и соответствующих признаков деградации в "Condition" переменная.

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

mdl = exponentialDegradationModel('LifeTimeUnit',"hours");

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

fit(mdl,expTrainTables,"Time","Condition")

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

load('expTestData.mat')

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

threshold = 500;

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

for t = 1:150 
 update(mdl,expTestData(t,:)) 
end 
estRUL = predictRUL(mdl,threshold) 
estRUL = duration
   136.45 hr

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

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

load('covariateData.mat')

Эти данные содержат время разряда батареи и соответствующую ковариатную информацию. Ковариатные переменные:

  • Температура

  • Груз

  • Производитель

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

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

mdl = covariateSurvivalModel('LifeTimeVariable',"DischargeTime",'LifeTimeUnit',"hours",...
   'DataVariables',["Temperature","Load","Manufacturer"],'EncodedVariables',"Manufacturer");
fit(mdl,covariateData)
Successful convergence: Norm of gradient less than OPTIONS.TolFun

Предположим, что у вас есть батарейный блок производства производителя B который был запущен для 30 часов. Создайте таблицу тестовых данных, содержащую время использования. DischargeTimeи измеренную температуру окружающей среды, TestAmbientTemperature, и нарисованный ток, TestBatteryLoad.

TestBatteryLoad = 25;
TestAmbientTemperature = 60; 
DischargeTime = hours(30);
TestData = timetable(TestAmbientTemperature,TestBatteryLoad,"B",'RowTimes',hours(30));
TestData.Properties.VariableNames = {'Temperature','Load','Manufacturer'};
TestData.Properties.DimensionNames{1} = 'DischargeTime';

Спрогнозировать значение RUL для батареи.

estRUL = predictRUL(mdl,TestData)
estRUL = duration
   38.337 hr

Постройте график функции выживания для ковариатных данных батареи.

plot(mdl,TestData)

Figure contains an axes. The axes with title Survival Function Plot contains 2 objects of type stair. These objects represent Baseline Survival Function, Current Survival Function.

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

load('reliabilityData.mat')

Эти данные являются вектором столбца duration объекты, представляющие время разряда батареи.

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

mdl = reliabilitySurvivalModel('LifeTimeVariable',"DischargeTime",'LifeTimeUnit',"hours");

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

fit(mdl,reliabilityData)

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

[estRUL,ciRUL,pdfRUL] = predictRUL(mdl);

Постройте график распределения вероятностей.

bar(pdfRUL.RUL,pdfRUL.ProbabilityDensity)
xlabel('Remaining useful life (hours)')
xlim(hours([40 90]))

Figure contains an axes. The axes contains an object of type bar.

Улучшите представление распределения, предоставив количество ячеек и размер ячейки для прогнозирования.

[estRUL,ciRUL,pdfRUL] = predictRUL(mdl,'BinSize',0.5,'NumBins',500);
bar(pdfRUL.RUL,pdfRUL.ProbabilityDensity)
xlabel('Remaining useful life (hours)')
xlim(hours([40 90]))

Figure contains an axes. The axes contains an object of type bar.

Спрогнозировать значение RUL для компонента, работающего в течение 50 часов.

[estRUL,ciRUL,pdfRUL] = predictRUL(mdl,hours(50),'BinSize',0.5,'NumBins',500);
bar(pdfRUL.RUL,pdfRUL.ProbabilityDensity)
xlabel('Remaining useful life (hours)')
xlim(hours([0 40]))

Figure contains an axes. The axes contains an object of type bar.

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

свернуть все

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

Группы моделей RULДополнительные сведения
Модели деградацииlinearDegradationModel
exponentialDegradationModel
Модели выживанияreliabilitySurvivalModel
covariateSurvivalModel
Модели подобияhashSimilarityModel
pairwiseSimilarityModel
residualSimilarityModel

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

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

  • (N + 1) - по-M числовому массиву, где N - количество признаков, а M - количество измерений признаков. В каждой строке первый столбец содержит время использования, а остальные столбцы содержат соответствующие измерения признаков ухудшения. Порядок элементов должен соответствовать порядку, указанному в DataVariables имущество mdl.

  • table или timetable объект. Таблица должна содержать переменные с именами, соответствующими строкам в DataVariables и LifeTimeVariable свойства mdl.

data применяется, когда mdl является hashSimilarityModel, pairwiseSimilarityModel, или residualSimilarityModel, объект.

Границы признаков деградации, которые указывают эффективный срок службы компонента, указанный как массив N-by-2, где N - количество признаков деградации. Для i-го элемента, bounds(i,1) - нижняя граница элемента и bounds(i,2) - верхняя граница. Порядок элементов должен соответствовать порядку, указанному в DataVariables имущество mdl.

Выбрать bounds основываясь на знании допустимых границ для элементов деградации.

bounds применяется, когда mdl является hashSimilarityModel, pairwiseSimilarityModel, или residualSimilarityModel объект.

Пороговые пределы переменной данных для моделей ухудшения, заданные как скалярное значение. Оставшийся срок полезного использования - это оставшееся время до того, как прогнозируемый отклик модели достигнет порогового значения.

Знак Theta имущество mdl указывает направление роста деградации. Если Theta является:

  • Положительный, затем threshold - верхняя граница элемента ухудшения

  • Отрицательный, то threshold - нижняя граница в элементе ухудшения

Выбрать threshold основываясь на знании допустимых границ для элемента деградации.

threshold применяется, когда mdl является linearDegradationModel или exponentialDesgradationModel объект.

Текущее время использования компонента, указанное как скалярное значение или duration объект. Единицы измерения usageTime должны быть совместимы с LifeTimeUnit имущество mdl.

Текущие ковариатные значения и время использования компонента, указанные как:

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

  • table или timetable с одной строкой. Таблица должна содержать переменные, указанные в LifeTimeVariable, DataVariables, и CensorVariable свойства mdl.

Если ковариатные данные содержат кодированные переменные, то необходимо указать covariates использование table или timetable.

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

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

Пример: Alpha,0.2 устанавливает доверительный интервал прогнозирования на 0.2/2 кому 1-0.2/2 область процентиля.

Уровень надежности для вычислительных систем ciRUL, указанная как пара, разделенная запятыми, состоящая из 'Alpha' и скалярное значение в диапазоне 0-1. predictRUL вычисляет доверительный интервал как Alpha/ 2 - 1-Alpha/ 2 процентильная область.

Количество ячеек, используемых для анализа pdfRUL, указанная как пара, разделенная запятыми, состоящая из 'NumBins' и положительное целое число. Этот аргумент применяется, когда mdl является моделью деградации или моделью выживания.

Размер ячейки, используемый для определения срока службы для вычислений pdfRUL, указанная как пара, разделенная запятыми, состоящая из 'BinSize' и либо положительный скаляр, либо duration объект. Этот аргумент применяется, когда mdl является моделью деградации или моделью выживания надежности.

Метод преобразования функции выживания для генерации функции плотности вероятности ковариатной модели выживания, указанной как пара, разделенная запятыми, состоящая из 'Method' и одно из следующих:

  • 'empirical' - Генерировать pdfRUL путем нахождения градиента эмпирической кумулятивной функции распределения. Кумулятивная функция распределения - 1-S (t), где S (t) - функция выживания.

  • 'weibull' - Генерировать pdfRUL подгонкой распределения Вейбулла к функции выживания.

Дополнительные сведения о функциях выживания см. в разделе covariateSurvivalModel.

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

свернуть все

Расчетный оставшийся срок службы компонента, возвращаемый как скаляр. Возвращенное значение находится в единицах переменной жизненного времени, как указано LifeTimeUnit имущество mdl.

Доверительный интервал, связанный с estRUL, возвращаемый как двухэлементный вектор строки. Укажите процентиль для доверительного интервала с помощью Alpha.

Функция плотности вероятности RUL, возвращенная как timetable если переменная времени жизни mdl зависит от времени или как table в противном случае.

Срок службы, используемый predictRUL при вычислении функции плотности вероятности зависит от типа заданной модели RUL. Если mdl является:

  • Модель деградации, затем продолжительность жизни составляет [usageTime usageTime+BinSize*NumBins].

  • Модель выживания надежности, затем срок службы составляет [T T+BinSize*NumBins], где T - время использования, указанное в usageTime.

  • Ковариатная модель выживания, тогда продолжительность жизни составляет linspace(T1,T2,NumBins), где [T1,T2] - диапазон срока службы компонентов, определяемый BaslineCumulativeHazard имущество mdl.

  • Модель подобия, то продолжительность жизни зависит от продолжительности жизни ближайших соседей, найденных алгоритмом поиска. Например, если the NumNearestNeighbors имущество mdl является 10 и 10 ближайших соседей имеют время жизни в диапазоне от 10 месяцев до трех лет, затем гистограмма времен отказа находится в этом диапазоне. predictRUL затем подгоняет функцию плотности вероятности к необработанным данным гистограммы с использованием подхода сглаживания ядра.

Необработанные оценки подобия для графика гистограммы, возвращенные как timetable если переменная времени жизни mdl зависит от времени или как table в противном случае. histRUL имеет следующие переменные:

  • 'RUL' - Остаточные значения срока службы исторических компонентов, используемых для соответствия параметрам mdl.

  • 'NormalizedDistanceScore' - Оценки подобия, полученные путем сравнения тестового компонента с историческими компонентами, используемыми для соответствия параметрам mdl.

Гистограмма данных в histRUL является неподписанной версией pdfRUL. Для построения гистограммы в командной строке MATLAB ® введите:

bar(histRUL.RUL,histRUL.NormalizedDistanceScore)

histRUL возвращается, когда mdl является hashSimilarityModel, pairwiseSimilarityModel, или residualSimilarityModel объект.

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2018b

Расширенные возможности

.
Представлен в R2018a