predictRUL

Оцените остающийся срок полезного использования для тестового компонента

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

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

  • Модели ухудшения

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

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

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

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

Синтаксис

estRUL = predictRUL(mdl,data)
estRUL = predictRUL(mdl,data,bounds)
estRUL = predictRUL(mdl,threshold)
estRUL = predictRUL(mdl,usageTime)
estRUL = predictRUL(mdl,covariates)
estRUL = predictRUL(___,Name,Value)
[estRUL,ciRUL] = predictRUL(___)
[estRUL,ciRUL,pdfRUL] = predictRUL(___)
[estRUL,ciRUL,pdfRUL,histRUL] = predictRUL(___)

Описание

пример

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 о часах 60, который указывает на общую предсказанную продолжительность жизни часов 110.

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

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.63 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(TestBatteryLoad,TestAmbientTemperature,"B",'RowTimes',hours(30));
TestData.Properties.VariableNames = {'Temperature','Load','Manufacturer'};
TestData.Properties.DimensionNames{1} = 'DischargeTime';

Предскажите RUL для батареи.

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

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

plot(mdl,TestData)

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

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]))

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

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

Предскажите 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]))

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

свернуть все

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

Группы модели 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 th функция, 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.

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

  • Модель Similarity, затем продолжительность жизни зависит от продолжительностей жизни самых близких соседей, найденных алгоритмом поиска. Например, если свойством 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