подгонка

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

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

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

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

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

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

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

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

Синтаксис

fit(mdl,data)
fit(mdl,data,lifeTimeVariable)
fit(mdl,data,lifeTimeVariable,dataVariables)
fit(mdl,data,lifeTimeVariable,dataVariables,censorVariable)
fit(mdl,data,lifeTimeVariable,dataVariables,censorVariable,encodedVariables)

Описание

пример

fit(mdl,data) соответствует параметрам остающейся модели mdl срока полезного использования с помощью исторических данных в data. Этот синтаксис применяется только, когда data не содержит данные timetable или table.

пример

fit(mdl,data,lifeTimeVariable) соответствует параметрам mdl с помощью переменной lifeTimeVariable времени и устанавливает свойство LifeTimeVariable mdl. Этот синтаксис применяется только, когда data содержит:

  • Нетабличные данные

  • Табличные данные и mdl не используют переменные данных

fit(mdl,data,lifeTimeVariable,dataVariables) соответствует параметрам mdl с помощью переменных данных в dataVariables и устанавливает свойство DataVariables mdl.

пример

fit(mdl,data,lifeTimeVariable,dataVariables,censorVariable) задает переменную цензора для модели выживания и устанавливает свойство CensorVariable mdl. Переменная цензора указывает, какие пожизненные измерения в data не являются значениями конца жизненного цикла. Этот синтаксис применяется только, когда mdl является моделью выживания, и data содержит табличные данные.

пример

fit(mdl,data,lifeTimeVariable,dataVariables,censorVariable,encodedVariables) задает закодированные переменные для ковариационной модели выживания и устанавливает свойство EncodedVariables mdl. Закодированные переменные являются обычно нечисловыми категориальными функциями, которые fit преобразовывает в числовые векторы перед подбором кривой. Этот синтаксис применяется только, когда mdl является объектом covariateSurvivalModel, и data содержит табличные данные.

Примеры

свернуть все

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

load('linTrainVectors.mat')

Данные тренировки являются массивом ячеек вектор-столбцов. Каждый вектор-столбец является профилем функции ухудшения для компонента.

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

mdl = linearDegradationModel;

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

fit(mdl,linTrainVectors)

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

load('reliabilityData.mat')

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

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

mdl = reliabilitySurvivalModel;

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

fit(mdl,reliabilityData,"hours")

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

load('hashTrainTables.mat')

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

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

mdl = hashSimilarityModel('Method',@(x) [mean(x),std(x),kurtosis(x),median(x)]);

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

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

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

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)

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

свернуть все

Остающаяся модель прогноза срока полезного использования, заданная как одна из этих моделей. fit обновляет параметры этой модели с помощью исторических данных в data.

Группы модели RULМодель прогноза
Модели ухудшенияlinearDegradationModel
exponentialDegradationModel
Модели выживанияreliabilitySurvivalModel
covariateSurvivalModel
Модели подобияhashSimilarityModel
pairwiseSimilarityModel
residualSimilarityModel

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

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

Если ваши исторические данные хранятся в объекте datastore ансамбля, необходимо сначала преобразовать его в table прежде, чем оценить параметры модели. Для получения дополнительной информации смотрите Ансамбли Данных для Мониторинга состояния и Прогнозирующего Обслуживания.

Формат data зависит от типа модели RUL, которую вы задаете в mdl.

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

Если mdl является linearDegradationModel или exponentialDegradationModel, задайте data как массив ячеек профилей ухудшения компонента. Каждый элемент массива ячеек содержит профиль функции ухудшения через время жизни одного компонента. Может быть только одна функция ухудшения вашей модели. Можно задать data как массив ячеек:

  • Массивы 2D столбца, где каждая строка содержит время использования в первом столбце и соответствующее измерение функции во втором столбце. В этом случае столбец времени использования должен содержать числовые значения; то есть, это не может использовать, например, duration или значения timedate.

  • Объекты table. Выберите переменную из таблицы, которая содержит профиль ухудшения функции с помощью dataVariables, и выберите переменную времени использования, если есть с помощью lifeTimeVariable.

  • Объекты timetable. Выберите переменную из таблицы, которая содержит профиль ухудшения функции с помощью dataVariables, и выберите переменную времени использования использование lifeTimeVariable.

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

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

  • Вектор-столбец измерений продолжительности жизни — Этот случай применяется только, когда mdl является reliabilitySurvivalModel.

  • Массив — первый столбец содержит измерения продолжительности жизни, и остальные столбцы содержат ковариационные значения. Этот случай применяется только, когда mdl является covariateSurvivalModel.

  • table или timetable — В этом случае выберите переменную из таблицы, которая содержит измерения продолжительности жизни с помощью lifeTimeVariable. Для ковариационных моделей выживания выберите ковариационные переменные с помощью dataVariables. Для моделей выживания надежности fit игнорирует dataVariables.

По умолчанию fit принимает, что все измерения продолжительности жизни являются значениями конца жизненного цикла. Чтобы указать, что измерение продолжительности жизни не является значением конца жизненного цикла, используйте цензурирование. Для этого задайте data как table или timetable, который содержит переменную цензора. Переменная цензора является бинарной переменной, которая является 1, когда соответствующее измерение продолжительности жизни не является значением конца жизненного цикла. Выберите переменную цензора использование censorVariable.

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

Если mdl является hashSimilarityModel, pairwiseSimilarityModel или residualSimilarityModel, задайте data как массив ячеек профилей ухудшения. Каждый элемент массива ячеек содержит профили функции ухудшения через время жизни один компонент. Для моделей подобия можно задать несколько функций ухудшения, где каждой функцией является медицинский индикатор для компонента. Можно задать data как массив ячеек:

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

  • Объекты table. Выберите переменные из таблицы, которые содержат профили ухудшения функции с помощью dataVariables и выбирают соответствующую переменную времени использования, если есть с помощью lifeTimeVariable.

  • Объекты timetable. Выберите переменные из таблицы, которые содержат профили ухудшения функции с помощью dataVariables и выбирают соответствующую переменную времени использования использование lifeTimeVariable.

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

Пожизненная переменная, заданная как строка. Если data является a:

  • table, затем lifeTimeVariable должен совпадать с одними из имен переменных в таблице.

  • timetable, затем lifeTimeVariable одни из имен переменных в таблице или имени размерности переменной времени, data.Properties.DimensionNames{1}.

table или timetable, затем lifeTimeVariable должен совпадать с одними из имен переменных в таблице. Если нет никакой пожизненной переменной в таблице или если data является нетабличным, то можно не использовать lifeTimeVariable.

lifeTimeVariable должен быть "" или допустимым именем переменной MATLAB®, и не должен совпадать ни с одной из строк в dataVariables.

fit хранит lifeTimeVariable в свойстве LifeTimeVariable модели.

Покажите переменные данных, заданные как массив строк или массив строк. Если data является a:

  • Модель Degradation, затем dataVariables должен быть строкой

  • Модель Similarity или ковариационная модель выживания, затем dataVariables должен быть массивом строк

  • Модель выживания надежности, затем fit игнорирует dataVariables

Если data:

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

  • Нетабличный, затем dataVariables должен быть "" или содержать то же количество строк, когда существуют столбцы данных в data. Строки в dataVariables должны быть допустимыми именами переменной MATLAB.

fit хранит dataVariables в свойстве DataVariables модели.

Переменная Censor для моделей выживания, заданных как строка. Переменная цензора является бинарной переменной, которая указывает, какие пожизненные измерения в data не являются значениями конца жизненного цикла. Чтобы использовать цензурирование, data должен быть table или timetable.

Если вы задаете censorVariable, строка должна совпадать с одними из имен переменных в data и не должна совпадать ни с одной из строк в dataVariables или lifeTimeVariable.

fit хранит censorVariable в свойстве CensorVariable модели.

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

Строки в encodedVariables должны быть подмножеством строк в dataVariables.

fit хранит encodedVariables в свойстве EncodedVariables модели.

Введенный в R2018a