Recursive Least Squares Estimator

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

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

  • Recursive Least Squares Estimator block

Описание

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

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

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

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

  • Основанный на выборке или основанный на кадре формат данных - См. параметр Input Processing.

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

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

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

Для заданного временного шага t y (t) и H (t) соответствуют Output и Regressors входным портам блока Recursive Least Squares Estimator, соответственно. θ (t) соответствует выходу Parameters.

Например, предположим, что вы хотите оценить скалярный коэффициент усиления, θ, в системе y = h2θ. Здесь y линейна по отношению к θ. Можно использовать блок Recursive Least Squares Estimator для оценки θ. Задайте y и h2 как входы к Output и Regressor входным портам.

Порты

Вход

расширить все

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

  • Основанная на дискретизации вход параметров и N оценочные параметры - 1-бай- N вектор

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

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

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

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

  • Основанная на кадрах вход с M выборками на систему координат - M-на-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 и Initial Estimate к External.

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

Ковариации начальных параметров, подаваемые из внешнего источника в блок. Для получения дополнительной информации смотрите параметр Parameter Covariance Matrix. Блок использует этот входной порт в начале симуляции или когда вы запускаете сброс алгоритма с помощью Reset сигнала.

Зависимости

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

  • History с Infinite

  • Estimation Method с Forgetting Factor или Kalman Filter

  • Initial Estimate с External

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

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

Сигнал InitialRegressors управляет начальным поведением алгоритма. Блок использует этот входной порт в начале симуляции или всякий раз, когда запускается Reset сигнал.

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

Зависимости

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

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

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

Сигнал InitialOutputs управляет начальным поведением алгоритма. Блок использует этот входной порт в начале симуляции или всякий раз, когда запускается Reset сигнал.

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

Зависимости

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

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

Выход

расширить все

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

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

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

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

  • M вектор -by-1 - основанная на кадрах вход с M выборками на систему координат

Зависимости

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

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

Ковариационная P ошибки расчета параметра, возвращенная как N -by - N матрица, где N - количество параметров. Для получения дополнительной информации смотрите параметр Output Parameter Covariance Matrix.

Зависимости

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

  • Если History Infinite, установите Estimation Method равным Forgetting Factor или Kalman Filter.

  • Является ли History Infinite или Finite, выберите параметр Output parameter covariance matrix.

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

Параметры

расширить все

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

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

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

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

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

    Задайте Number of Parameters, а также, если History Infinite, Parameter Covariance Matrix.

  • Internal - Внутренне задайте начальные оценки параметров для блока

    • Если History Infinite, задайте Initial Parameter Values и Parameter Covariance Matrix параметры.

    • Если History Finite, задайте Number of Parameters, Initial Regressors и Initial Outputs параметры.

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

    Задайте параметр Number of Parameters. Ваша настройка параметра History определяет, какие дополнительные сигналы следует соединить с соответствующими портами:

    • Если History Infinite - InitialParameters и InitialCovariance

    • Если History Finite - InitialRegressors и InitialOutputs

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

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

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

Зависимости

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

  • History с Infinite и Initial Estimate к любому из None или External

  • History с Finite

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

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

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

Задайте Parameter Covariance Matrix как:

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

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

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

Здесь N количество параметров, которые будут оценены.

Зависимости

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

  • History с Infinite

  • Initial Estimate с None или Internal

  • Estimation Method с Forgetting Factor или Kalman Filter

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

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

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

Зависимости

Чтобы включить этот параметр, установите History равным Infinite и Initial Estimate к Internal.

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

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

Задайте начальные значения буфера регрессоров при использовании оценки конечной истории (скользящее окно). Параметр Window length W и параметр Number of Parameters N задать размерности буфера регрессоров, который равен W -by - N.

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

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

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

Зависимости

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

  • Regressors

  • Output

  • Error

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

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

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

Задайте шаг расчета данных, будь то отдельными выборками для обработки на основе выборки (ts) или систем координат для обработки на основе фрейма (tf = M ts), где M - длина системы координат. Когда вы устанавливаете Sample Time на его значение по умолчанию -1, блок наследует свою ts или tf на основе сигнала.

Задайте Sample Time как положительная скалярная величина, чтобы переопределить наследование.

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

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

Алгоритм и опции блоков

Опции алгоритма

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

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

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

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

    Выбор этой опции включает параметр Window Length, который размеры скользящего окна.

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

T0=11λ

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

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

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

Зависимости

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

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

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

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

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

  • Вектор реальных неотрицательных скаляров, [<reservedrangesplaceholder7> 1..., <reservedrangesplaceholder6> <reservedrangesplaceholder5>] - Ковариационная матрица N N диагональной матрицей, с [<reservedrangesplaceholder2> 1..., <reservedrangesplaceholder1> <reservedrangesplaceholder0>] как диагональные элементы.

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

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

Зависимости

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

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

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

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

Когда Estimation Method NormalizedGradient, Adaptation Gain должно быть меньше 2. С любым методом градиента, если ошибки растут во времени (другими словами, оценка расходится), или оценки параметра часто скачут вокруг, рассмотрите уменьшение Adaptation Gain.

Зависимости

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

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

Толкование P зависит от подхода оценки, который вы указываете в History и Estimation Method следующим образом:

  • Если History Infinite, затем ваш Estimation Method выбор приводит к:

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

    • Kalman Filter<reservedrangesplaceholder1> <reservedrangesplaceholder0> - ковариационная матрица предполагаемых параметров, а R1/ R2 - ковариационная матрица изменений параметров. Здесь R1 является матрицей ковариации, которую вы задаете в Parameter Covariance Matrix.

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

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

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

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

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

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

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

    • Ваша система входит в режим, где значения параметров не изменяются во времени

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

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

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

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

Если блок отключен в t, и вы сбрасываете блок, блок выводит значения, указанные в Initial Estimate.

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

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

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

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

  • Either - Сброс триггера, когда сигнал управления поднимается или падает.

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

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

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

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

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

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

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

Ссылки

[1] Ljung, L. System Identification: Теория для пользователя. Upper Saddle River, NJ: Prentice-Hall PTR, 1999, pp. 363-369.

[2] Zhang, Q. «Некоторые аспекты реализации алгоритмов наименьших квадратов скользящего окна». Материалы IFAC. Том 33, Выпуск 15, 2000, стр. 763-768.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

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

.
Введенный в R2014a