recursiveAR

Создайте Системный объект для онлайн-оценки параметров модели AR

Синтаксис

obj = recursiveAR
obj = recursiveAR(na)
obj = recursiveAR(na,A0)
obj = recursiveAR(___,Name,Value)

Описание

Используйте recursiveAR команда для оценки параметра с данными в реальном времени. Если все данные, необходимые для оценки, доступны сразу, и вы оцениваете инвариантную по времени модель, используйте команду offline estimation, ar.

obj = recursiveAR создает Системный object™ для онлайн-оценки параметров одинарного выхода AR по умолчанию структуры модели. Структура модели по умолчанию имеет полином порядка 1 и начальное значение полиномиального коэффициента eps.

После создания объекта используйте step команда для обновления оценок параметров модели с помощью рекурсивных алгоритмов оценки и данных в реальном времени.

obj = recursiveAR(na) задает полином порядка AR, который будет оценен.

obj = recursiveAR(na,A0) задает полиномиальный порядок и начальные значения полиномиальных коэффициентов.

obj = recursiveAR(___,Name,Value) задает дополнительные атрибуты структуры модели AR и алгоритма рекурсивной оценки с помощью одного или нескольких Name,Value аргументы в виде пар.

Описание объекта

recursiveAR создает Системный объект для онлайн-оценки параметров одиночного выхода AR моделей с помощью рекурсивного алгоритма оценки.

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

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

Можно использовать следующие команды с онлайновыми Системными объектами оценки в System Identification Toolbox™:

КомандаОписание
step

Обновите оценки параметров модели с помощью рекурсивных алгоритмов оценки и данных в реальном времени.

step переводит объект в заблокированное состояние. В заблокированном состоянии вы не можете изменить какие-либо нетронутые свойства или входные спецификации, такие как порядок модели, тип данных или алгоритм оценки. Во время выполнения можно только изменить настраиваемые свойства.

release

Разблокируйте Системный объект. Используйте эту команду, чтобы включить настройку нетронутых параметров.

reset

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

clone

Создайте другой Системный объект с теми же значениями свойств объекта.

Не создавать дополнительные объекты с помощью синтаксиса obj2 = obj. Любые изменения, внесенные в свойства нового объекта, созданные таким образом (obj2) также измените свойства исходного объекта (obj).

isLocked

Запросите заблокированное состояние для атрибутов входа и нетронутых свойств Системного объекта.

Используйте recursiveAR команда для создания оперативного системного объекта оценки. Затем оцените параметр модели, A, и выход с помощью step команда с выходными данными y.

[A,EstimatedOutput] = step(obj,y)

Для recursiveAR свойства объекта, см. Свойства.

Примеры

свернуть все

Создайте Системную object™ для онлайн-оценки параметров AR- модели с помощью рекурсивных алгоритмов оценки.

obj = recursiveAR;

Модель AR имеет структуру по умолчанию с полиномом порядка 1 и начальными значениями полиномиальных коэффициентов, eps.

Загрузите данные оценки timeseries. В этом примере используйте статический набор данных для рисунка.

load iddata9 z9;
output = z9.y;

Оцените параметры модели AR-модели онлайн с помощью step.

for i = 1:numel(output)
[A,EstimatedOutput] = step(obj,output(i));
end

Просмотрите текущие оцененные значения полинома A коэффициенты.

obj.A
ans = 1×2

    1.0000   -0.9592

Посмотрите текущую ковариационную оценку параметров.

obj.ParameterCovariance
ans = 1.6204e-04

Просмотрите предполагаемый ток выхода.

EstimatedOutput
EstimatedOutput = 0.7830

Задайте полином модели AR порядок.

na = 2;

Создайте Системную object™ для онлайн-оценки AR- модели с заданным полиномиальным порядком.

obj = recursiveAR(na);

Задайте порядок модели AR.

na = 2;

Создайте Системный объект для онлайн-оценки AR- модели с известными начальными полиномиальными коэффициентами.

A0 = [1 0.5 0.3];
obj = recursiveAR(na,A0);

Задайте начальный параметр ковариации.

obj.InitialParameterCovariance = 0.1;

InitialParameterCovariance представляет неопределенность в вашем предположении для начальных параметров. Как правило, значение по умолчанию InitialParameterCovariance (10000) слишком велик относительно значений параметров. Это приводит к тому, что начальные предположения придаются меньшее значение во время оценки. Если у вас есть доверие в начальных предположениях параметра, задайте меньшую ковариацию начального параметра.

Создайте Системный объект, который использует нормированный алгоритм градиента для онлайн-оценки параметра AR- модели.

obj = recursiveAR(2,'EstimationMethod','NormalizedGradient');

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

свернуть все

Порядок модели полиномиального A (q) AR-модели, заданный как положительное целое число.

Начальное значение коэффициентов полинома A (q), заданное как 1-by- (na+1) вектор-строка вещественных значений с 1 в качестве первого элемента. Задайте коэффициенты в порядке возрастания степеней q-1.

Определение как [], использует значение по умолчанию eps для полиномиальных коэффициентов.

Примечание

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Использование Name,Value аргументы для задания свойств, доступных для записи recursiveAR Системный объект во время создания объекта. Для примера, obj = recursiveAR(2,'EstimationMethod','Gradient') создает Системный объект для оценки AR- модели с помощью 'Gradient' рекурсивный алгоритм оценки.

Свойства

recursiveAR Свойства системного объекта состоят из свойств, доступных только для чтения и записи. Свойства, доступные для записи, являются свойствами, настраиваемыми и нетронутыми. Нетронутые свойства не могут быть изменены, когда объект заблокирован, то есть после того, как вы используете step команда.

Использование Name,Value аргументы для задания свойств, доступных для записи recursiveAR объекты во время создания объекта. После создания объекта используйте запись через точку для изменения настраиваемых свойств.

obj = recursiveAR;
obj.ForgettingFactor = 0.99;

A

Оценочные коэффициенты полинома A (q), возвращенные как вектор-строка действительных значений, заданных в порядке возрастания степеней q-1.

A является свойством только для чтения и первоначально пуст после создания объекта. Он заполняется после того, как вы используете step команда для оценки оперативного параметра.

InitialA

Начальные значения коэффициентов полинома A (q) порядка <reservedrangesplaceholder0>, заданный как вектор-строка длины na+1, с 1 в качестве первого элемента. Задайте коэффициенты в порядке возрастания степеней q-1.

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

InitialA является настраиваемым свойством. Вы можете изменить его, когда объект находится в заблокированном состоянии.

По умолчанию: [1 eps]

InitialOutputs

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

The InitialOutputs свойство предоставляет средство управления начальным поведением алгоритма.

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

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

Задайте InitialOutputs только когда History является Finite.

InitialOutputs является настраиваемым свойством. Можно изменить InitialOutputs когда объект находится в заблокированном состоянии.

По умолчанию: 0

ParameterCovariance

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

ParameterCovariance применяется только тогда, когда EstimationMethod является 'ForgettingFactor' или 'KalmanFilter' или когда History является Finite.

Толкование P зависит от ваших настроек для History и EstimationMethod свойства.

  • Если History является Infinite, затем ваш EstimationMethod результаты выбора одного из следующих:

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

    • 'KalmanFilter'<reservedrangesplaceholder1> <reservedrangesplaceholder0> - ковариационная матрица предполагаемых параметров, а R1/ R2 - ковариационная матрица изменений параметров. Здесь R1 является матрицей ковариации, в которой вы задаете ProcessNoiseCovariance.

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

ParameterCovariance является свойством только для чтения и первоначально пуст после создания объекта. Он заполняется после того, как вы используете step команда для оценки оперативного параметра.

InitialParameterCovariance

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

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

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

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

InitialParameterCovariance представляет неопределенность в начальных оценках параметров. Для больших значений InitialParameterCovariance, меньшее значение придается начальным значениям параметров и больше - измеренным данным во время начала оценки с помощью step.

Используйте только тогда, когда EstimationMethod является 'ForgettingFactor' или 'KalmanFilter'.

InitialParameterCovariance является настраиваемым свойством. Вы можете изменить его, когда объект находится в заблокированном состоянии.

По умолчанию: 10000

EstimationMethod

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

  • 'ForgettingFactor' - Алгоритм, используемый для оценки параметра

  • 'KalmanFilter' - Алгоритм, используемый для оценки параметра

  • 'NormalizedGradient' - Алгоритм, используемый для оценки параметра

  • 'Gradient' - Ненормализованный алгоритм градиента, используемый для оценки параметра

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

Все эти методы используют бесконечную историю данных и доступны только при History является 'Infinite'.

EstimationMethod является свойством nontunable. Вы не можете изменить его во время выполнения, то есть после того, как объект заблокирован с помощью step команда.

По умолчанию: Forgetting Factor

ForgettingFactor

Коэффициент забывания, λ, релевантный для оценки параметра, заданный как скаляр в области значений (0,1].

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

T0=11λ

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

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

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

Используйте только тогда, когда EstimationMethod является 'ForgettingFactor'.

ForgettingFactor является настраиваемым свойством. Вы можете изменить его, когда объект находится в заблокированном состоянии.

По умолчанию: 1

EnableAdapation

Включите или отключите оценку параметра, заданную как одно из следующего:

  • true или 1- The step команда оценивает значения параметров для того временного шага и обновляет значения параметров.

  • false или 0 - The step команда не обновляет параметры для этого временного шага и вместо этого выводит последнее оцененное значение. Можно использовать эту опцию, когда система входит в режим, где значения параметров не изменяются со временем.

    Примечание

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

EnableAdapation является настраиваемым свойством. Вы можете изменить его, когда объект находится в заблокированном состоянии.

По умолчанию: true

DataType

Точность параметров с плавающей точкой, заданная как одно из следующих значений:

  • 'double' - Плавающая точка двойной точности

  • 'single' - Одинарная точность с плавающей точкой

Настройка DataType на 'single' сохраняет память, но приводит к потере точности. Задайте DataType исходя из точности, требуемой целевым процессором, на котором будет развернут сгенерированный код.

DataType является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 'double'

ProcessNoiseCovariance

Ковариационная матрица изменений параметров, заданная как одно из следующего:

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

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

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

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

ProcessNoiseCovariance применяется, когда EstimationMethod является 'KalmanFilter'.

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

ProcessNoiseCovariance является настраиваемым свойством. Вы можете изменить его, когда объект находится в заблокированном состоянии.

По умолчанию: 0.1

AdaptationGain

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

AdaptationGain применяется, когда EstimationMethod является 'Gradient' или 'NormalizedGradient'.

Задайте большое значение для AdaptationGain когда ваши измерения имеют высокое отношение сигнал/шум.

AdaptationGain является настраиваемым свойством. Вы можете изменить его, когда объект находится в заблокированном состоянии.

По умолчанию: 1

NormalizationBias

Смещение при масштабировании коэффициента усиления адаптации, используемое в 'NormalizedGradient' метод, заданный как неотрицательный скаляр.

NormalizationBias применяется, когда EstimationMethod является 'NormalizedGradient'.

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

NormalizationBias является настраиваемым свойством. Вы можете изменить его, когда объект находится в заблокированном состоянии.

По умолчанию: eps

History

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

  • 'Infinite' - Используйте алгоритм, который направлен на минимизацию ошибки между наблюдаемым и предсказанным выходами для всех временных шагов от начала симуляции.

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

Алгоритмы с бесконечной историей стремятся создать оценки параметров, которые объясняют все данные с начала симуляции. Эти алгоритмы все еще используют фиксированный объем памяти, который не растет с течением времени. Объект предоставляет несколько алгоритмов 'Infinite' History тип. Установка этой опции активирует EstimationMethod свойство, с которым вы задаете алгоритм.

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

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

History является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 'Infinite'

WindowLength

Размер окна, определяющий количество временных выборок, используемых для метода оценки скользящего окна, заданный как положительное целое число. Задайте WindowLength только когда History является Finite.

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

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

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

WindowLength является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 200

InputProcessing

Опция для обработки входа на основе сэмплирования или фрейма, заданная как вектор символов или строка.

  • Sample-based обработка действует на сигналы, передаваемые потоком по одной выборке за раз.

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

Ваши InputProcessing спецификация влияет на размерности для сигналов входа и выхода при использовании step команда:

[theta,EstimatedOutput] = step(obj,y)

  • Sample-based

    • y и EstimatedOutput являются скалярами.

    • Frame-based с M выборками на систему координат

      • y и EstimatedOutput M векторы -by-1.

InputProcessing является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 'Sample-based'

Выходные аргументы

свернуть все

Системный объект для онлайн-оценки параметров AR модели, возвращаемый как recursiveAR Системный объект. Этот объект создается с использованием заданных порядков и свойств модели. Использовать step команда для оценки коэффициентов многочленов AR модели. Затем можно получить доступ к предполагаемым коэффициентам и ковариации параметров с помощью записи через точку. Для примера введите obj.A чтобы просмотреть оцененные A полиномиальные коэффициенты.

Подробнее о

свернуть все

Структура модели AR

Структура модели AR:

A(q)y(t)=e(t)

где,

A(q)=1+a1q1++anaqna

Вот,

  • y(t) - Выход в момент t. Данные являются временными рядами, которая не имеет входа каналов и одного выхода канала.

  • na - Количество A полиномиальных коэффициентов.

  • e(t) - Значение нарушения порядка белого шума в t времени.

  • q-1 - Оператор сдвига во времени.

Совет

  • Начиная с R2016b, вместо использования step команду для обновления оценок параметров модели можно вызвать системный объект с входными параметрами, как если бы это была функция. Для примера, [A,EstimatedOutput] = step(obj,y) и [A,EstimatedOutput] = obj(y) выполнять эквивалентные операции.

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

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