predictRUL

Оценка оставшегося срока службы для тестового компонента

Описание

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

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

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

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

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

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

Для получения общей информации о прогнозировании оставшегося срока полезного использования с использованием этих моделей, смотрите оценку RUL с использованием моделей RUL Estimator.

пример

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) -by - 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 объект.

Текущее время использования компонента, заданное как скалярное значение или a 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, возвращенная как a 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