exponenta event banner

recursiveAR

Создание объекта System для оперативной оценки параметров модели 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 создает объект System для оперативной оценки параметров одиночных выходных AR-моделей с использованием рекурсивного алгоритма оценки.

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

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

С интерактивными объектами системы оценки в Toolbox™ Идентификация системы можно использовать следующие команды:

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

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

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

release

Разблокируйте объект System. Эта команда используется для включения настройки неперестраиваемых параметров.

reset

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

clone

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

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

isLocked

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

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

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

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

Примеры

свернуть все

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

obj = recursiveAR;

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

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

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;

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

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

Укажите исходный параметр ковариации.

obj.InitialParameterCovariance = 0.1;

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

Создайте объект System, использующий алгоритм нормализованного градиента для оперативной оценки параметров модели 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') создает объект System для оценки модели AR с помощью 'Gradient' алгоритм рекурсивной оценки.

Свойства

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

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

obj = recursiveAR;
obj.ForgettingFactor = 0.99;

A

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

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

InitialA

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

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

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

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

InitialOutputs

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

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

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

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

Определить InitialOutputs только когда History является Finite.

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

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

ParameterCovariance

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

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

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

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

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

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

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

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

InitialParameterCovariance

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

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

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

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

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

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

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

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

EstimationMethod

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

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

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

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

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

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

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

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

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

ForgettingFactor

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

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

T0 = 11 − λ

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

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

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

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

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

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

EnableAdapation

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

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

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

    Примечание

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

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

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

DataType

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

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

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

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

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

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

ProcessNoiseCovariance

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

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

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

  • N-на-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 свойство, с помощью которого задается алгоритм.

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

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

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

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

WindowLength

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

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

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

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

WindowLength является неперестраиваемым свойством. Его можно задать только во время построения объекта с помощью 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 является неперестраиваемым свойством. Его можно задать только во время построения объекта с помощью Name,Value аргументы и не могут быть изменены впоследствии.

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

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

свернуть все

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

Подробнее

свернуть все

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

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

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

где,

A (q) = 1 + a1q 1 +... + anaq − na

Здесь,

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

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

  • e (t) - Значение возмущения белого шума в момент времени t.

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

Совет

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

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

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