linearDegradationModel

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

Описание

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

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

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

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

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

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

Создание

Синтаксис

mdl = linearDegradationModel
mdl = linearDegradationModel(Name,Value)

Описание

пример

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Theta — Среднее значение наклонного параметра

  • ThetaVariance — Отклонение наклонного параметра

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

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

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

  • Используя функцию restart. В этом случае текущие значения Theta и ThetaVariance копируются в соответствующие поля 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('linTrainVectors.mat')

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

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

mdl = linearDegradationModel;

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

fit(mdl,linTrainVectors)

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

mdl = linearDegradationModel('Theta',0.25,'ThetaVariance',0.002);

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

mdl.Prior
ans = struct with fields:
            Theta: 0.2500
    ThetaVariance: 0.0020

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

mdl.ThetaVariance
ans = 0.0020

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

load('linTrainTables.mat')

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

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

mdl = linearDegradationModel;

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

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

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

load('linTrainTables.mat')

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

Создайте линейную модель ухудшения, задав пожизненные переменные модули.

mdl = linearDegradationModel('LifeTimeUnit',"hours");

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

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

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

load('linTestData.mat','linTestData1')

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

threshold = 60;

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

estRUL = predictRUL(mdl,linTestData1(48,:),threshold)
estRUL = duration
   113.5 hr

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

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

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.

Алгоритмы

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

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

Введенный в R2018a