fit

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

Описание

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

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

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

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

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

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

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

пример

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

пример

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. Переменная censor указывает, какие измерения в течение жизни в 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(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.

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

свернуть все

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

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

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

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

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

Формат data зависит от типа модели RUL, заданной в mdl.

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

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

  • Массивы с двумя столбцами, где каждая строка содержит время использования в первом столбце и соответствующее измерение функций во втором столбце. В этом случае столбец времени использования должен содержать числовые значения; то есть не может использовать, например, 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 который содержит переменную цензора. Переменная censor является двоичной переменной, которая 1 когда соответствующее измерение срока службы не является значением конца срока службы. Выберите переменную цензора используя censorVariable.

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

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

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

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

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

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

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

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

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

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

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

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

Переменные данных функций, заданные как строковые или строковые массивы. Если data является:

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

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

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

Если data является:

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

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

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

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

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

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

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

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

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

Введенный в R2018a