predictRUL

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

Описание

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

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

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

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

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

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

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

пример

estRUL = predictRUL(mdl,data) оценивает остающийся срок полезного использования для модели mdl подобия использования компонента и ухудшение показывает профили в 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(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)

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

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 isa hashSimilarityModel, pairwiseSimilarityModel, или residualSimilarityModelобъект.

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

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

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

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

Знак Theta свойство mdl указывает на направление роста ухудшения. Если Theta :

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

  • Отрицательный, затем threshold нижняя граница на функции ухудшения

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

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

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

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

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

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

Если ковариационные данные содержат закодированные переменные, то необходимо задать covariates использование a 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' и или положительная скалярная величина или a duration объект. Этот аргумент применяется когда mdl модель ухудшения или модель выживания надежности.

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

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

  • 'weibull' — Сгенерируйте pdfRUL путем подбора кривой распределению Weibull к функции выживания.

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

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

свернуть все

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

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

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

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

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

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

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

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

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

  • 'RUL' — Остающиеся значения срока полезного использования исторических компонентов раньше соответствовали параметрам mdl.

  • 'NormalizedDistanceScore' — Баллы подобия, полученные путем сравнения тестового компонента с историческими компонентами раньше, соответствовали параметрам mdl.

Гистограмма данных в histRUL неподходящая версия pdfRUL. Чтобы построить гистограмму, в командной строке MATLAB®, введите:

bar(histRUL.RUL,histRUL.NormalizedDistanceScore)

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

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

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

Не рекомендуемый запуск в R2018b

Введенный в R2018a