hashSimilarityModel

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

Описание

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

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

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

Создание

Синтаксис

mdl = hashSimilarityModel
mdl = hashSimilarityModel(initModel)
mdl = hashSimilarityModel(___,Name,Value)

Описание

пример

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

mdl = hashSimilarityModel(initModel) создает модель подобия хешированной функции и инициализирует параметры модели с помощью существующего объекта hashSimilarityModel initModel.

пример

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

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

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

Модель подобия хешированной функции, заданная как объект hashSimilarityModel.

Свойства

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

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

Хешированные значения функции, сгенерированные функцией fit, заданной как N-by-M массив, где M является количеством членов ансамбля и N, являются количеством хешированных функций. HashTable(i,j) содержит хешированное значение функции j th функция, вычисленная для i th элемент данных.

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

Точки останова для разделения исторических данных в несколько режимов, заданных как вектор - строка из двойных значений, объектов duration или объектов datetime. Вектор - строка из точек останова должен:

  • Будьте в увеличивающемся порядке

  • Имейте модули и формат, который совместим с данными тренировки, используемыми с функцией fit

Чтобы использовать один режим, задайте RegimeSplit как [].

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

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

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

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

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

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

Количество самых близких соседей к оценке RUL, заданной как Inf или конечное положительное целое число. Если NumNearestNeighbors является Inf, то predictRUL использует всех членов ансамбля во время оценки.

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

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

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

Хешированный метод вычисления функции, заданный как одно из следующего:

  • "minmaxstd" — Извлеките минимум, максимум и стандартное отклонение данных. Эта опция не использует наблюдения, которые содержат NaN. Когда вы используете этот метод, HashTable является M-by-3, где M является количеством членов ансамбля.

  • Указатель на функцию — Использование пользовательская функция, которая берет данные об ухудшении в качестве вектор-столбца, table или timetable, и возвращает вектор - строку из функций. Например:

    mdl.Method = @(x) [mean(x),std(x),kurtosis(x),median(x)]

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

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

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

Метод вычисления расстояния, заданный как одно из следующего:

  • "euclidian" — Используйте 2-норму различия между векторами хеша.

  • "absolute" — Используйте 1 норму различия между векторами хеша.

  • Указатель на функцию — Использование пользовательская функция формы:

    D = distanceFunction(xTest,xEnsemble)

    Здесь,

    • xTest является вектор-столбцом длины N, который содержит хешированные функции компонента теста, где N является количеством хешированных функций.

    • xEnsemble является M-by-N, массив компонента ансамбля хешировал функции, где M является количеством компонентов ансамбля. xEnsemble(i,:) содержит хешированные функции i th член ансамбля.

    • D является вектором - строкой из длины M, где D(i) является расстоянием между тестовым характеристическим вектором и характеристическим вектором i th член ансамбля.

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

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

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

Отметьте, чтобы включать связи, заданные как true или false. Когда IncludeTies является true, модель включает всех соседей, расстояние которых до тестовых данных о компоненте является меньше, чем K th наименьшее расстояние, где K равен NumNearestNeigbors.

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

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

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

Отметьте для стандартизации данных о функции прежде, чем сгенерировать хешированные функции, заданные как true или false. То, когда Standardize является true, данные о функции стандартизированы таким образом, которые показывают X, становится (X-mean(X))/std(X).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

load('hashTrainVectors.mat')

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

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

mdl = hashSimilarityModel;

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

fit(mdl,hashTrainVectors)

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

load('hashTrainTables.mat')

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

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

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

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

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

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

load('hashTrainTables.mat')

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

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

  • Среднее значение

  • Стандартное отклонение

  • Эксцесс

  • Медиана

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

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

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

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

load('hashTestData.mat')

Предскажите RUL тестового компонента использование обученной модели подобия.

estRUL = predictRUL(mdl,hashTestData)
estRUL = duration
   175.69 hr

Предполагаемый RUL для компонента составляет приблизительно 176 часов.

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

Введенный в R2018a