exponenta event banner

Рекурсивный оценщик наименьших квадратов

Оценка коэффициентов модели с использованием алгоритма рекурсивных наименьших квадратов (RLS)

  • Библиотека:
  • Набор средств идентификации системы/оценщики

  • Recursive Least Squares Estimator block

Описание

Модуль оценки рекурсивных наименьших квадратов оценивает параметры системы с использованием модели, которая является линейной в этих параметрах. Такая система имеет следующий вид:

y (t) = H (t) (t).

y и H - это известные величины, которые вы предоставляете в блок для оценки Блок может предоставлять как бесконечную историю [1], так и конечную историю [2] (также известную как скользящее окно), оценки для Дополнительные сведения об этих методах см. в разделе Рекурсивные алгоритмы для оценки параметров в режиме онлайн.

Блок поддерживает несколько методов оценки и форматов ввода данных. Конфигурируемые опции в блоке:

  • Формат данных на основе образцов или кадров - см. параметр «Обработка входных данных».

  • Бесконечная история или конечная оценка истории - см. параметр История.

  • Несколько методов оценки с бесконечной историей - см. параметр метода оценки.

  • Начальные условия, флаг включения и триггер сброса - см. параметры Initial Estimate, Add enable port и External Reset.

Для данного временного шага t, y (t) и H (t) соответствуют входам выходных и регрессоров блока оценки рекурсивных наименьших квадратов соответственно. (t) соответствует выходу параметров.

Например, предположим, что вы хотите оценить скалярный коэффициент усиления В данном случае y является линейным по отношению к λ. Можно использовать блок «Оценка рекурсивных наименьших квадратов» (Recursive Least Squares Estimator), чтобы оценить Укажите y и h2 в качестве входных данных для ввода выходных данных и данных регрессора.

Порты

Вход

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

Входной сигнал H (t) регрессоров. Параметры Input Processing и Number of Parameters определяют размеры сигнала:

  • Выборочная обработка входных данных и N оцененных параметров - вектор 1-by-N

  • Обработка входных данных на основе кадра с M выборок на кадр и N оцененных параметров - матрица M-by-N

Типы данных: single | double

Измеренный выходной сигнал y (t). Параметр Input Processing определяет размеры сигнала:

  • Обработка входных данных на основе образцов - скалярная

  • Обработка входных данных на основе кадра с M выборок на кадр - вектор M-by-1

Типы данных: single | double

Внешний сигнал, позволяющий включать и отключать обновления оценки. Если значение сигнала:

  • true - Оцените и выведите значения параметров для временного шага.

  • false - Не оценивайте значения параметров и выводите самое последнее ранее оцененное значение.

Зависимости

Чтобы включить этот порт, выберите параметр Add enable port.

Типы данных: single | double | Boolean | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32

Сбросить оценку параметров на исходные условия. Тип триггера определяется значением параметра External reset. Тип триггера определяет, происходит ли сброс для сигнала, который поднимается, падает, поднимается или падает, уровень или при удержании уровня.

Зависимости

Чтобы включить этот порт, выберите любой параметр, кроме None в раскрывающемся списке External reset.

Типы данных: single | double | Boolean | int8 | int16 | int32 | uint8 | uint16 | uint32

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

Параметр Number of Parameters определяет размеры сигнала. При наличии N параметров сигнал N-by-1.

Зависимости

Чтобы включить этот порт, установите для параметра History значение Infinite и Первоначальная оценка External.

Типы данных: single | double

Начальные ковариации параметров, поступающие от внешнего по отношению к блоку источника. Дополнительные сведения см. в разделе Параметр матрицы ковариации. Блок использует этот ввод в начале моделирования или при запуске сброса алгоритма с помощью сигнала Reset.

Зависимости

Чтобы включить этот порт, установите следующие параметры:

  • История в Infinite

  • Метод оценки для Forgetting Factor или Kalman Filter

  • Первоначальная оценка External

Типы данных: single | double

Начальные значения регрессоров в окне исходных данных при использовании оценки с конечной историей (скользящее окно), поступающие из внешнего источника. Параметр Длина окна W и параметр Количество параметров N определяют размеры этого сигнала, который является W-by-N.

Сигнал InitureRegressors управляет начальным поведением алгоритма. Блок использует этот ввод в начале моделирования или при каждом срабатывании сигнала сброса.

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

Зависимости

Чтобы включить этот порт, установите для параметра History значение Finite и Первоначальная оценка External.

Типы данных: single | double

Начальный набор выходных измерений при использовании оценки с конечной историей (скользящее окно), поступающий из внешнего источника. Сигнал для этого порта должен быть вектором W-by-1, где W - длина окна.

Сигнал InitureOutputs управляет начальным поведением алгоритма. Блок использует этот ввод в начале моделирования или при каждом срабатывании сигнала сброса.

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

Зависимости

Чтобы включить этот порт, установите для параметра History значение Finiteи Первоначальная оценка External.

Типы данных: single | double

Продукция

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

Оцененные параметры start( t), возвращаемые в виде вектора N-by-1, где N - количество параметров.

Типы данных: single | double

Ошибка оценки, возвращенная как:

  • Скаляр - выборочная обработка входных данных

  • M-by-1 vector - Обработка входных данных на основе кадра с M отсчетов на кадр

Зависимости

Чтобы включить этот порт, выберите параметр Output estimation error.

Типы данных: single | double

Ковариация P ошибки оценки параметра, возвращаемая в виде матрицы N-на-N, где N - количество параметров. Дополнительные сведения см. в разделе Параметр Covariance Matrix выходного параметра.

Зависимости

Чтобы включить этот порт:

  • Если история Infinite, задайте для метода оценки значение Forgetting Factor или Kalman Filter.

  • Является ли история Infinite или Finiteвыберите параметр ковариационной матрицы выходного параметра.

Типы данных: single | double

Параметры

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

Параметры модели

Укажите, как предоставлять начальные оценки параметров блоку:

  • None - Не уточняйте первоначальные оценки.

    • Если история Infinite, блок использует 1 в качестве начальной оценки параметра.

    • Если история Finiteблок вычисляет начальные оценки параметров из исходных сигналов регрессоров и выходных сигналов.

    Укажите количество параметров, а также, если значение параметра History равно Infinite, матрица ковариации параметров.

  • Internal - Укажите начальные оценки параметров для блока

    • Если история Infinite, укажите параметры «Начальные значения параметров» и «Матрица ковариации параметров».

    • Если история Finite, укажите количество параметров, начальные регрессоры и начальные выходы.

  • External - Укажите начальные оценки параметров в качестве входного сигнала для блока.

    Укажите параметр «Количество параметров». Настройка параметра History определяет, какие дополнительные сигналы следует подключить к соответствующим портам:

    • Если история Infinite - Параметры ввода и ковариация ввода

    • Если история Finite - InitialRegressors и InitialOutputs

Программное использование

Параметр блока: InitialEstimateSource
Тип: символьный вектор, строка
Значения: 'None', 'Internal', 'External'
По умолчанию: 'None'

Укажите количество параметров для оценки в модели, равное количеству элементов в векторе параметра (t).

Зависимости

Чтобы включить этот параметр, установите один из следующих параметров:

  • История в Infinite и Первоначальная оценка None или External

  • История в Finite

Альтернативным способом определения количества параметров N для оценки является использование параметра Начальные значения параметров, для которого определяется начальный вектор оценки с N элементами. Этот подход охватывает одну оставшуюся комбинацию, где история Infinite и Первоначальная оценка Internal. Дополнительные сведения см. в разделе Начальные значения параметров.

Программное использование

Параметр блока: InitialParameterData
Тип: положительное целое число
По умолчанию: 2

Укажите матрицу ковариации параметров как:

  • Вещественный положительный скаляр, α - ковариационная матрица - диагональная матрица N-на-N, с α в качестве диагональных элементов.

  • Вектор действительных положительных скаляров, [α1,...,αN] - ковариационная матрица - диагональная матрица N-на-N, с [α1,...,αN] в качестве диагональных элементов.

  • N-на-N симметричная положительно-определенная матрица.

Здесь N - количество параметров, подлежащих оценке.

Зависимости

Чтобы включить этот параметр, установите следующие параметры:

  • История в Infinite

  • Первоначальная оценка None или Internal

  • Метод оценки для Forgetting Factor или Kalman Filter

Программное использование

Параметр блока: P0
Тип: скаляр, вектор или матрица
По умолчанию: 1e4

Укажите начальные значения параметров как вектор длины N, где N - количество параметров для оценки.

Зависимости

Чтобы включить этот параметр, установите для параметра History значение Infinite и Первоначальная оценка Internal.

Программное использование

Параметр блока: InitialParameterData
Текст: вещественный вектор
По умолчанию: [1 1]

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

Параметр Initial Regressors управляет начальным поведением алгоритма. Блок использует этот параметр в начале моделирования или при каждом срабатывании сигнала сброса.

Если начальное значение равно 0блок заполняет буфер нулями.

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

Зависимости

Чтобы включить этот параметр, установите для параметра History значение Finite и Первоначальная оценка Internal.

Программное использование

Параметр блока: InitialRegressors
Тип: вещественная матрица
По умолчанию: 0

Укажите начальные значения измеряемого выходного буфера при использовании оценки с конечной историей (скользящее окно). Этот параметр является вектором W-by-1, где W - длина окна.

Если начальное значение равно 0блок заполняет буфер нулями.

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

Параметр Initial Outputs управляет начальным поведением алгоритма. Блок использует этот параметр в начале моделирования или при каждом срабатывании сигнала сброса.

Зависимости

Чтобы включить этот параметр, установите для параметра History значение Finite и Первоначальная оценка Internal .

Программное использование

Параметр блока: InitialOutputs
Текст: вещественный вектор
По умолчанию: 0
Обработка входных данных и время выборки
  • Sample-based обработка работает с сигналами, передаваемыми по одной выборке за раз.

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

Указание данных на основе кадров добавляет дополнительное измерение M к некоторым вводам и выводам данных, где M - количество временных шагов в кадре. К этим портам относятся:

  • Регрессоры

  • Продукция

  • Ошибка

Для получения дополнительной информации см. описание портов в разделе Порты.

Программное использование

Параметр блока: InputProcessing
Тип: символьный вектор, строка
Значения: 'Sample-based', 'Frame-based'
По умолчанию: 'Sample-based'

Укажите время выборки данных по отдельным выборкам для обработки на основе выборки (ts) или по кадрам для обработки на основе кадра (tf = Mts), где M - длина кадра. Если для параметра «Время выборки» задано значение по умолчанию -1, блок наследует значения ts или tf на основе сигнала.

Укажите значение параметра «Время выборки» в качестве положительного скаляра для переопределения наследования.

Программное использование

Параметр блока: Ts
Тип: вещественный скаляр
По умолчанию: -1

Параметры алгоритма и блока

Параметры алгоритма

Параметр History определяет тип используемого рекурсивного алгоритма:

  • Infinite - Алгоритмы в этой категории направлены на получение оценок параметров, которые объясняют все данные с начала моделирования. Эти алгоритмы сохраняют историю в сводке данных. Блок поддерживает эту сводку в пределах фиксированного объема памяти, который со временем не увеличивается.

    Блок предоставляет несколько алгоритмов Infinite тип. При выборе этой опции включается параметр метода оценки, с помощью которого задается алгоритм.

  • Finite - Алгоритмы в этой категории направлены на получение оценок параметров, которые объясняют только конечное число прошлых выборок данных. Блок использует все данные в пределах конечного окна и отбрасывает данные, как только эти данные больше не находятся в границах окна. Этот метод также называется оценкой скользящего окна.

    При выборе этой опции включается параметр «Длина окна», определяющий размер скользящего окна.

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

Программное использование

Параметр блока: History
Тип: символьный вектор, строка
Значения: 'Infinite', 'Finite'
По умолчанию: 'Infinite'

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

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

Подходящая длина окна не зависит от того, используется ли обработка ввода на основе выборки или кадра. Однако при использовании обработки на основе кадра длина окна должна быть больше или равна количеству выборок (временных шагов), содержащихся в кадре.

Зависимости

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

Программное использование

Параметр блока: WindowLength
Тип: положительное целое число
По умолчанию: 200

Укажите алгоритм оценки при выполнении оценки с бесконечной историей. При выборе любого из этих методов блок включает дополнительные связанные параметры.

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

Программное использование

Параметр блока: EstimationMethod
Тип: символьный вектор, строка
Значения: 'Forgetting Factor','Kalman Filter','Normalized Gradient','Gradient'
По умолчанию: 'Forgetting Factor'

Коэффициент забывания λ определяет, дисконтируются ли в оценке старые данные и сколько. Предположим, что система остается приблизительно постоянной на протяжении T0 выборок. Можно выбрать λ так, что:

T0 = 11 − λ

  • Установка λ = 1 соответствует «без забывания» и оценке постоянных коэффициентов.

  • Установка λ < 1 подразумевает, что прошлые измерения менее значимы для оценки параметров и могут быть «забыты». Установите λ < 1 для оценки изменяющихся во времени коэффициентов.

Типичные варианты λ находятся в диапазоне [0,98 0,995].

Зависимости

Чтобы включить этот параметр, установите для параметра History значение Infinite и метод оценки Forgetting Factor.

Программное использование

Параметр блока: AdaptationParameter
Тип: скаляр
Значения: (0 1] диапазон
По умолчанию: 1

Ковариация шума процесса предписывает элементы и структуру ковариационной матрицы шума для оценки фильтра Калмана. Используя N в качестве количества параметров для оценки, укажите ковариацию шума процесса как одно из следующих значений:

  • Вещественный неотрицательный скаляр, α - ковариационная матрица - диагональная матрица N-на-N, с α в качестве диагональных элементов.

  • Вектор действительных неотрицательных скаляров, [α1,...,αN] - ковариационная матрица - диагональная матрица N-на-N, с [α1,...,αN] в качестве диагональных элементов.

  • N-на-N симметричная положительная полуопределённая матрица.

Алгоритм фильтра Калмана рассматривает параметры как состояния динамической системы и оценивает эти параметры с помощью фильтра Калмана. Ковариация технологического шума - ковариация технологического шума, действующая на эти параметры. Нулевые значения в матрице ковариации шума соответствуют постоянным коэффициентам или параметрам. Значения больше 0 соответствуют изменяющимся во времени параметрам. Используйте большие значения для быстрого изменения параметров. Однако ожидайте, что большие значения приведут к более шумным оценкам параметров. Значение по умолчанию - 1.

Зависимости

Чтобы включить этот параметр, установите для параметра History значение Infinite и метод оценки Kalman Filter.

Программное использование

Параметр блока: AdaptationParameter
Тип: скаляр, вектор, матрица
По умолчанию: 1

Адаптивный коэффициент γ масштабирует влияние новых данных измерений на результаты оценки для методов градиента и нормализованного градиента. Если измерения заслуживают доверия или, другими словами, имеют высокое отношение сигнал/шум, укажите большее значение для γ. Однако установка слишком высокого значения γ может привести к расхождению оценок параметров. Это расхождение возможно, даже если измерения не содержат шума.

Когда метод оценки NormalizedGradient, Коэффициент адаптации должен быть меньше 2. При любом градиентном методе, если ошибки растут во времени (другими словами, оценка расходится), или оценки параметров часто прыгают, рассмотрите возможность снижения коэффициента усиления адаптации.

Зависимости

Чтобы включить этот параметр, установите для параметра History значение Infinite и метод оценки Normalized Gradient или в Gradient.

Программное использование

Параметр блока: AdaptationParameter
Тип: скаляр
По умолчанию: 1

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

Зависимости

Чтобы включить этот параметр, установите для параметра History значение Infinite и метод оценки Normalized Gradient.

Программное использование

Параметр блока: NormalizationBias
Тип: скаляр
По умолчанию: eps
Параметры блока

Используйте сигнал Error outport для проверки оценки. Для данного временного шага t ошибка оценки e (t) вычисляется как:

e (t) = y (t) yest (t),

где y (t) - измеренный выходной сигнал, который вы предоставляете, и yest (t) - расчетный выходной сигнал с использованием регрессоров H (t) и оценок параметров (t-1).

Программное использование

Параметр блока: OutputError
Тип: символьный вектор, строка
Значения: 'off','on',
По умолчанию: 'off'

Используйте выходной сигнал ковариации для проверки неопределенности оценки параметров. Программное обеспечение вычисляет ковариацию параметров P предполагая, что остатки, e (t), являются белым шумом, и дисперсия этих остатков равна 1 .

Толкование P зависит от подхода к оценке, указанного в разделе История и метод оценки, следующим образом:

  • Если история Infinite, то выбор метода оценки приводит к:

    • Forgetting Factor — (R2/2)P приблизительно равна ковариационной матрице оцененных параметров, где R2 - истинная дисперсия остатков. Блок выводит остатки в порту Error.

    • Kalman FilterR2P - ковариационная матрица оцененных параметров, а R1/ R2 - ковариационная матрица изменений параметров. Здесь R1 - это ковариационная матрица, указанная в параметре ковариационная матрица.

    • Normalized Gradient или Gradient - Ковариация P недоступна.

  • Если история Finite (оценка скользящего окна) - R2 Р - ковариация оцениваемых параметров. Алгоритм скользящего окна не использует эту ковариацию в процессе оценки параметров. Однако алгоритм вычисляет ковариацию для вывода, чтобы можно было использовать ее для статистической оценки.

Программное использование

Параметр блока: OutputP
Тип: символьный вектор, строка
Значения: 'off','on'
По умолчанию: 'off'

Используйте сигнал Enable для предоставления управляющего сигнала, который включает или отключает оценку параметров. Блок оценивает значения параметров для каждого временного шага, когда оценка параметров включена. При отключении оценки параметров на данном шаге t программное обеспечение не обновляет параметры для этого временного шага. Вместо этого блок выводит последние оцененные значения параметров.

  • Эту опцию можно использовать, например, когда или если:

    • Регрессоры или выходной сигнал становятся слишком шумными или не содержат информацию на некоторых этапах

    • Система переходит в режим, в котором значения параметров не изменяются во времени.

Программное использование

Параметр блока: AddEnablePort
Тип: символьный вектор, строка
Значения: 'off','on'
По умолчанию: 'off'

Установите параметр External reset, чтобы добавить входной порт Reset и указать условие входного сигнала, которое запускает сброс состояний алгоритма до заданных начальных значений. Сбросьте оценку, например, если ковариация параметра становится слишком большой из-за отсутствия либо достаточного возбуждения, либо информации в измеряемых сигналах.

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

Если блок отключен при t и выполняется сброс блока, блок выводит значения, указанные в начальной оценке.

Укажите эту опцию как одну из следующих:

  • None - Состояния алгоритма и расчетные параметры не сбрасываются.

  • Rising - Сброс триггера при повышении управляющего сигнала с отрицательного или нулевого значения до положительного. Если начальное значение является отрицательным, переход к нулю приводит к сбросу.

  • Falling - Сброс триггера при падении управляющего сигнала с положительного или нулевого значения на отрицательное. Если начальное значение положительное, падение до нуля запускает сброс.

  • Either - Сброс триггера при повышении или падении управляющего сигнала.

  • Level - Сброс триггера в любом из следующих случаев:

    • Управляющий сигнал ненулевой на текущем временном шаге.

    • Управляющий сигнал изменяется с ненулевого значения на предыдущем временном шаге на нулевое значение на текущем временном шаге.

  • Level hold - Сброс триггера при ненулевом управляющем сигнале на текущем шаге времени.

При выборе любого варианта, отличного от None, программа добавляет входной порт сброса в блок. Входной сигнал управления сбросом подается на этот вход.

Программное использование

Параметр блока: ExternalReset
Тип: символьный вектор, строка
Значения: 'None','Rising','Falling', 'Either', 'Level', 'Level hold'
По умолчанию: 'None'

Ссылки

[1] Люнг, Л. Идентификация системы: теория для пользователя. Река Верхнее Седло, Нью-Джерси: Prentice-Hall PTR, 1999, стр. 363-369.

[2] Чжан, В. «Некоторые аспекты реализации алгоритмов наименьших квадратов скользящего окна». Процедуры ИФАК. Том 33, выпуск 15, 2000, стр. 763-768.

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

Создание кода ПЛК
Создание структурированного текстового кода с помощью Coder™ Simulink ® PLC

.
Представлен в R2014a