exponentialDegradationModel

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

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 часы.

Алгоритмы

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

Ссылки

[1] Gebraeel, Nagi. "Сенсорно обновленные Остаточные Жизненные Распределения для Компонентов с Экспоненциальными Шаблонами Ухудшения". Транзакции IEEE на Науке Автоматизации и Разработке. Издание 3, Номер 4, 2006, стр 382–393.

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

Введенный в R2018a