exponentialDegradationModel

Экспоненциальная модель ухудшения для оценки остающегося срока полезного использования

Описание

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

Чтобы сконфигурировать объект exponentialDegradationModel для определенного типа компонента, вы можете:

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

  • Задайте параметры модели, когда вы создадите основанное на модели на своем знании процесса ухудшения компонента.

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

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

Создание

Синтаксис

mdl = exponentialDegradationModel
mdl = exponentialDegradationModel(Name,Value)

Описание

пример

mdl = exponentialDegradationModel создает экспоненциальную модель ухудшения для оценки RUL и инициализирует модель с настройками по умолчанию.

пример

mdl = exponentialDegradationModel(Name,Value) задает устанавливаемые пользователем образцовые свойства с помощью пар "имя-значение". Например, exponentialDegradationModel('NoiseVariance',0.5) создает экспоненциальную модель ухудшения с образцовым шумовым отклонением 0.5. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

Свойства

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

Это свойство доступно только для чтения.

Текущее среднее значение параметра θ в модели ухудшения, заданной как скаляр. Для получения дополнительной информации о модели ухудшения см. Экспоненциальную Модель Ухудшения.

Можно задать Theta с помощью аргумента пары "имя-значение" когда вы:

  • Создайте модель.

  • Сбросьте модель с помощью функции restart.

В противном случае значение Theta изменяется, когда вы используете функцию update.

Это свойство доступно только для чтения.

Текущее отклонение параметра θ в модели ухудшения, заданной как неотрицательный скаляр. Для получения дополнительной информации о модели ухудшения см. Экспоненциальную Модель Ухудшения.

Можно задать ThetaVariance с помощью аргумента пары "имя-значение" когда вы:

  • Создайте модель.

  • Сбросьте модель с помощью функции restart.

В противном случае значение ThetaVariance изменяется, когда вы используете функцию update.

Это свойство доступно только для чтения.

Текущее среднее значение параметра β в модели ухудшения, заданной как скаляр. Для получения дополнительной информации о модели ухудшения см. Экспоненциальную Модель Ухудшения.

Можно задать Beta с помощью аргумента пары "имя-значение" когда вы:

  • Создайте модель.

  • Сбросьте модель с помощью функции restart.

В противном случае значение Beta изменяется, когда вы используете функцию update.

Это свойство доступно только для чтения.

Текущее отклонение параметра β в модели ухудшения, заданной как неотрицательный скаляр. Для получения дополнительной информации о модели ухудшения см. Экспоненциальную Модель Ухудшения.

Можно задать BetaVariance с помощью аргумента пары "имя-значение" когда вы:

  • Создайте модель.

  • Сбросьте модель с помощью функции restart.

В противном случае значение BetaVariance изменяется, когда вы используете функцию update.

Это свойство доступно только для чтения.

Текущая корреляция между θ и β, заданным как скалярное значение в области значений [-1,1]. Для получения дополнительной информации о модели ухудшения см. Экспоненциальную Модель Ухудшения.

Можно задать Rho с помощью аргумента пары "имя-значение" когда вы:

  • Создайте модель.

  • Сбросьте модель с помощью функции restart.

В противном случае значение Rho изменяется, когда вы используете функцию update.

Текущее значение прерывания ϕ в модели ухудшения, заданной как скаляр. Для получения дополнительной информации о модели ухудшения см. Экспоненциальную Модель Ухудшения.

Можно задать Phi с помощью аргумента пары "имя-значение", когда вы создаете модель. В противном случае значение Phi изменяется, когда вы оцениваете образцовое предшествующее использование функции fit.

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

  • Theta — Среднее значение θ

  • ThetaVariance — Отклонение θ

  • \beta Среднее значение β

  • BetaVariance — Отклонение β

  • \rho Корреляция между θ и β.

Можно задать поля Prior:

  • Когда вы создаете модель. Когда вы задаете Theta, ThetaVariance, Beta, BetaVariance или Rho при образцовом создании с помощью пар "имя-значение", соответствующее поле Prior также установлено.

  • Используя функцию fit. В этом случае предшествующие значения получены на данные, используемые, чтобы соответствовать модели.

  • Используя функцию restart. В этом случае текущие значения Theta, ThetaVariance, Beta, BetaVariance и Rho копируются в соответствующие поля Prior.

  • Используя запись через точку после образцового создания.

Для получения дополнительной информации о модели ухудшения см. Экспоненциальную Модель Ухудшения.

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

Можно задать NoiseVariance:

  • Используя пару "имя-значение", когда вы создаете модель

  • Используя пару "имя-значение" с функцией restart

  • Используя запись через точку после образцового создания

Наклонный уровень обнаружения для определения запуска процесса ухудшения, заданного как скаляр в области значений [0,1]. Это значение соответствует альфа-значению в t-тесте наклонного значения.

Чтобы отключить наклонный тест обнаружения, установите SlopeDetectionLevel на [].

Можно задать SlopeDetectionLevel:

  • Используя пару "имя-значение", когда вы создаете модель

  • Используя пару "имя-значение" с функцией restart

  • Используя запись через точку после образцового создания

Это свойство доступно только для чтения.

Наклонное время обнаружения, которое является моментом, когда значительный наклон обнаружен, задан как скаляр. Функция update устанавливает это значение, когда SlopeDetectionLevel не пуст.

Это свойство доступно только для чтения.

Последнее значение функции ухудшения предоставляется функции update, заданной как скаляр.

Это свойство доступно только для чтения.

Начальное пожизненное значение переменных, когда функция update сначала вызвана на модели, задало как скаляр.

Когда модель обнаруживает наклон, значение InitialLifeTime изменяется, чтобы совпадать со значением SlopeDetectionInstant.

Это свойство доступно только для чтения.

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

Пожизненная переменная, заданная как строка, которая содержит допустимое имя переменной MATLAB® или "".

Когда вы обучаете модель с помощью функции fit, если данные тренировки являются a:

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

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

Можно задать LifeTimeVariable:

  • Используя пару "имя-значение", когда вы создаете модель

  • В качестве аргумента, когда вы вызываете функцию fit

  • Используя запись через точку после образцового создания

Пожизненные переменные модули, заданные как строка.

Модули пожизненной переменной не должны быть основаны на времени. Жизнь тестового компонента может быть измерена с точки зрения переменной использования, такой как расстояние переместился (мили) или топливо, использованное (галлоны).

Имя переменной ухудшения, заданное как строка, которая содержит допустимое имя переменной MATLAB. Модели ухудшения имеют только одну переменную данных.

Можно задать DataVariables:

  • Используя пару "имя-значение", когда вы создаете модель

  • В качестве аргумента, когда вы вызываете функцию fit

  • Используя запись через точку после образцового создания

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

Можно задать UseParallel:

  • Используя пару "имя-значение", когда вы создаете модель

  • Используя пару "имя-значение" с функцией restart

  • Используя запись через точку после образцового создания

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

Можно задать UserData:

  • Используя пару "имя-значение", когда вы создаете модель

  • Используя запись через точку после образцового создания

Функции объекта

fitОцените параметры остающейся модели срока полезного использования, использующей исторические данные
predictRULОцените остающийся срок полезного использования для тестового компонента
updateОбновите следующее распределение параметра ухудшения, остающегося модель срока полезного использования
restartСбросьте остающуюся модель ухудшения срока полезного использования

Примеры

свернуть все

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

load('expTrainVectors.mat')

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

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

mdl = exponentialDegradationModel;

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

fit(mdl,expTrainVectors)

Создайте экспоненциальную модель ухудшения и сконфигурируйте ее с известным предшествующим распределением.

mdl = exponentialDegradationModel('Theta',0.5,'ThetaVariance',0.003,...
                                  'Beta',0.3,'BetaVariance',0.002,...
                                  'Rho',0.1);

Заданные предшествующие параметры распределения хранятся в свойстве Prior модели.

mdl.Prior
ans = struct with fields:
            Theta: 0.5000
    ThetaVariance: 0.0030
             Beta: 0.3000
     BetaVariance: 0.0020
              Rho: 0.1000

Текущее апостериорное распределение модели также собирается совпадать с заданным предшествующим распределением. Например, проверяйте следующее значение параметра корреляции.

mdl.Rho 
ans = 0.1000

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

load('expTrainTables.mat')

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

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

mdl = exponentialDegradationModel;

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

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

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

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('expTestData.mat')

В данном примере примите, что данные тренировки не являются историческими данными, а скорее наблюдениями в реальном времени за условием компонента.

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

threshold = 500;

Создайте экспоненциальную модель ухудшения произвольные предшествующие данные о распределении и заданное шумовое отклонение. Кроме того, задайте время жизни и имена переменной данных для данных о наблюдении.

mdl = exponentialDegradationModel('Theta',1,'ThetaVariance',1e6,...
                                  'Beta',1,'BetaVariance',1e6,...
                                  'NoiseVariance',0.003,...
                                  'LifeTimeVariable',"Time",'DataVariables',"Condition",...
                                  'LifeTimeUnit',"hours");

Наблюдайте условие компонента в течение часов 100, обновляя модель ухудшения после каждого наблюдения.

for i=1:100
    update(mdl,expTestData(i,:));
end

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

estRUL = predictRUL(mdl,threshold)
estRUL = duration
   221.38 hr

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

Алгоритмы

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

Расширенные возможности

Введенный в R2018a

Для просмотра документации необходимо авторизоваться на сайте