exponenta event banner

arx

Оценка параметров модели ARX, ARIX, AR или ARI

Описание

пример

sys = arx(data,[na nb nk]) оценивает параметры AR модели ARX или idpoly sys с использованием метода наименьших квадратов и порядков многочленов, указанных в [na nb nk]. Свойства модели включают ковариации (неопределенности параметров) и достоверность соответствия между оцененными и измеренными данными.

пример

sys = arx(data,[na nb nk],Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Например, использование аргумента пара имя-значение 'IntegrateNoise',1 оценивает модель структуры ARIX или ARI, которая полезна для систем с нестационарными нарушениями.

пример

sys = arx(data,[na nb nk],___,opt) задает параметры оценки с помощью набора опций opt. Определить opt после всех других входных аргументов.

пример

[sys,ic] = arx(___) возвращает оцененные начальные условия в виде initialCondition объект. Используйте этот синтаксис, если планируется смоделировать или спрогнозировать отклик модели с использованием тех же входных данных оценки, а затем сравнить отклик с теми же выходными данными оценки. Включение начальных условий дает лучшее совпадение во время первой части моделирования.

Примеры

свернуть все

Создание выходных данных на основе указанной модели ARX и использование выходных данных для оценки модели.

Задание полиномиальной модели sys0 со структурой ARX. Модель включает входную задержку одной выборки, выраженную как ведущий ноль в B полином.

A = [1  -1.5  0.7];
B = [0 1 0.5];
sys0 = idpoly(A,B);

Формирование измеренного входного сигнала u который содержит случайный двоичный шум и сигнал ошибки e который содержит нормально распределенный шум. С помощью этих сигналов смоделировать измеренный выходной сигнал y из sys0.

u = iddata([],idinput(300,'rbs'));
e = iddata([],randn(300,1));
y = sim(sys0,[u e]);

Объединиться y и u в один iddata объект z. Оценка новой модели ARX с помощью z и те же полиномиальные порядки и задержка ввода, что и исходная модель.

z = [y,u];
sys = arx(z,[2 2 1])
sys =
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)
  A(z) = 1 - 1.524 z^-1 + 0.7134 z^-2              
                                                   
  B(z) = z^-1 + 0.4748 z^-2                        
                                                   
Sample time: 1 seconds
  
Parameterization:
   Polynomial orders:   na=2   nb=2   nk=1
   Number of free coefficients: 4
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                          
Estimated using ARX on time domain data "z".     
Fit to estimation data: 81.36% (prediction focus)
FPE: 1.025, MSE: 0.9846                          

На выходе отображается полином, содержащий оцененные параметры наряду с другими деталями оценки. Под Status, Fit to estimation data показывает, что оценочная модель имеет точность прогнозирования на 1 шаг вперед выше 80%.

Оценка модели AR временного ряда с использованием arx функция. Модель AR не имеет измеренных входных данных.

Загрузите данные, содержащие временные ряды. z9 с шумом.

load iddata9 z9

Оцените модель AR четвертого порядка, указав только na заказ в [na nb nk].

sys = arx(z9,4);

Проверьте оцененные параметры полинома А и соответствие оценки данным.

param = sys.Report.Parameters.ParVector
param = 4×1

   -0.7923
   -0.4780
   -0.0921
    0.4698

fit = sys.Report.Fit.FitPercent
fit = 79.4835

Оцените параметры модели ARIX. Модель ARIX - это модель ARX со встроенным шумом.

Задание полиномиальной модели sys0 со структурой ARX. Модель включает в себя входную задержку одной выборки, выраженную в виде начального нуля в B.

A = [1  -1.5  0.7];
B = [0 1 0.5];
sys0 = idpoly(A,B);

Смоделировать выходной сигнал sys0 использование случайного двоичного входного сигнала u и нормально распределенный сигнал ошибки e.

u = iddata([],idinput(300,'rbs'));
e = iddata([],randn(300,1));
y = sim(sys0,[u e]);

Интеграция выходного сигнала и сохранение результата yi в iddata объект zi.

yi = iddata(cumsum(y.y),[]);
zi = [yi,u];

Оценка модели ARIX по zi. Задать аргумент пары имя-значение 'IntegrateNoise' кому true.

sys = arx(zi,[2 2 1],'IntegrateNoise',true);

Прогнозирование выходных данных модели с использованием 5-ступенчатого прогнозирования и сравнение результата с yi.

compare(zi,sys,5)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent zi (y1), sys: 76.25%.

Использовать arxRegul для автоматического определения констант регуляризации и использования значений для оценки модели FIR с порядком 50.

Получить lambda и R значения.

load regularizationExampleData eData;
orders = [0 50 0];
[lambda,R] = arxRegul(eData,orders);

Использовать возвращенный lambda и R значения для оценки регуляризованной модели ARX.

opt = arxOptions;
opt.Regularization.Lambda = lambda;
opt.Regularization.R = R;
sys = arx(eData,orders,opt);

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

load iddata1ic z1i

Оценка модели ARX второго порядка sys и вернуть начальные условия в ic.

na = 2;
nb = 2;
nk = 1;
[sys,ic] = arx(z1i,[na nb nk]);
ic
ic = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [0 2]
    Ts: 0.1000

ic является initialCondition объект, инкапсулирующий свободный ответ sys, в форме state-space, к вектору начального состояния в X0. Вы можете включить ic при моделировании sys с z1i входной сигнал и сравнить отклик с z1i выходной сигнал.

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

свернуть все

Оценочные данные, указанные как iddata объект, frd(Панель инструментов системы управления) или idfrd частотно-ответный объект. Для моделей временных рядов AR и ARI входной канал в data должно быть пустым.

Полиномиальные порядки и задержки для модели, заданные как вектор 1 на 3 или вектор матриц [na nb nk]. Порядок многочленов равен числу коэффициентов для оценки в этом многочлене.

Для модели временных рядов AR или ARI, не имеющей входных данных, установите [na nb nk] в скаляр na. Пример см. в разделе Модель AR.

Для модели с Ny выходами и Nu входами:

  • na - порядок многочлена A (q), заданного как матрица Ny-by-Ny неотрицательных целых чисел.

  • nb - порядок многочлена B (q) + 1, заданного как матрица Ny-by-Nu неотрицательных целых чисел.

  • nk - задержка ввода-вывода, также известная как транспортная задержка, заданная как матрица Ny-by-Nu неотрицательных целых чисел. nk представлен в ARX-моделях фиксированными ведущими нулями в многочлене B.

    Например, предположим, что без задержек транспортировки sys.b является [5 6].

    • Поскольку sys.b + 1 - многочлен второго порядка, nb = 2.

    • Укажите задержку транспортировки, равную nk = 3. Указание этой задержки добавляет три начальных нуля к sys.b чтобы sys.b сейчас [0 0 0 5 6], пока nb остается равным 2.

    • Эти коэффициенты представляют полином B (q) = 5 q-3 + 6q-4.

    Можно также реализовать транспортные задержки с помощью аргумента пары «имя-значение». 'IODelay'.

.

Пример: arx(data,[2 1 1]) вычисления, из iddata объект, модель ARX второго порядка с одним входным каналом, который имеет задержку ввода одной выборки.

Опции оценки для идентификации модели ARX, указанные как arOptions набор опций. Параметры, указанные opt включают следующее:

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

  • Смещения входных и выходных данных - используйте эти опции для удаления смещений из данных временной области во время оценки.

  • Регуляризация - эта опция используется для управления компромиссом между погрешностями смещения и дисперсии в процессе оценки.

Дополнительные сведения см. в разделе arxOptions. Пример см. в разделе Модель ARX с регуляризацией.

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

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

Пример: 'IntegrateNoise',true добавляет интегратор в источник шума s

Входные задержки, выраженные как целые кратные времени выборки, указанные как пара, разделенная запятыми, состоящая из 'InputDelay' и одно из следующих:

  • Вектор Nu-by-1, где Nu - количество входов - каждый вход является числовым значением, представляющим входную задержку для соответствующего входного канала.

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

Пример: arx(data,[2 1 3],'InputDelay',1) оценивает модель ARX второго порядка с одним входным каналом, который имеет входную задержку в три выборки.

Транспортные задержки для каждой пары «вход-выход», выраженные как целые кратные времени выборки и указанные как пара, разделенная запятыми, состоящая из 'IODelay' и одно из следующих:

  • Матрица Ny-by-Nu, где Ny - количество выходов, а Nu - количество входов - Каждая запись представляет целое значение, представляющее задержку передачи для соответствующей пары вход-выход.

  • Скалярное значение (Scalar value) - применить такую же задержку ко всем парам «вход-выход». Этот подход полезен, когда параметр задержки ввода-вывода nk приводит к большому количеству фиксированных нулей начала в многочлене B. Вы можете факторизировать max(nk-1,0) lags, перемещая эти lags от nk в 'IODelay' значение.

    Например, предположим, что у вас есть система с двумя входами, где первый вход имеет задержку три выборки, а второй вход имеет задержку шесть выборок. Также предположим, что многочлены B для этих входов имеют порядок n. Эти задержки можно выразить следующим образом:

    • nk = [3 6] - Это приводит к B многочленов [0 0 0 b11 ... b1n] и [0 0 0 0 0 0 b21 ... b2n].

    • nk = [3 6] и 'IODelay',3 - Это приводит к B многочленов [b11 ... b1n] и [0 0 0 b21 ... b2n].

Добавление интеграторов в шумовой канал, определяемый как разделенная запятыми пара, состоящая из 'IntegrateNoise' и логический вектор длины Ny, где Ny - количество выходов.

Настройка 'IntegrateNoise' кому true для конкретного выхода создает модель ARIX или ARI для этого канала. Интеграция шума полезна в случаях, когда возмущение является нестационарным.

При использовании 'IntegrateNoise', также необходимо интегрировать данные выходного канала. Пример см. в разделе Модель ARIX.

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

свернуть все

Модель ARX, которая соответствует данным оценки, возвращается как дискретное время idpoly объект. Эта модель создается с использованием указанных заказов модели, задержек и опций оценки.

Информация о результатах оценки и используемых опциях хранится в Report свойство модели. Report имеет следующие поля.

Поле отчетаОписание
Status

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

Method

Используется команда оценки.

InitialCondition

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

  • 'zero' - Исходные условия были установлены на ноль.

  • 'estimate' - Исходные условия рассматривались как независимые оценочные параметры.

Это поле особенно полезно для просмотра того, как обрабатывались начальные условия при InitialCondition опция в наборе опций оценки 'auto'.

Fit

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

ОбластьОписание
FitPercent

Нормализованная среднеквадратическая ошибка (NRMSE) измерения того, насколько хорошо отклик модели соответствует данным оценки, выраженным в процентах fit = 100 (1-NRMSE).

LossFcn

Значение функции потерь после завершения оценки.

MSE

Показатель среднеквадратичной ошибки (MSE) того, насколько хорошо отклик модели соответствует данным оценки.

FPE

Ошибка окончательного прогноза для модели.

AIC

Показатель качества модели Raw Akaike Information Criteria (AIC).

AICc

Небольшой размер выборки, скорректированный AIC.

nAIC

Нормализованная AIC.

BIC

Байесовские информационные критерии (BIC).

Parameters

Оценочные значения параметров модели.

OptionsUsed

Набор опций, используемый для оценки. Если пользовательские параметры не были настроены, это набор параметров по умолчанию. Посмотрите arxOptions для получения дополнительной информации.

RandState

Состояние потока случайных чисел в начале оценки. Пустое, [], если рандомизация не использовалась во время оценки. Дополнительные сведения см. в разделе rng.

DataUsed

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

ОбластьОписание
Name

Имя набора данных.

Type

Тип данных.

Length

Количество выборок данных.

Ts

Время выборки.

InterSample

Поведение ввода между образцами, возвращаемое как одно из следующих значений:

  • 'zoh' - Удержание нулевого порядка поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' - Удержание первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' - Поведение с ограниченной полосой указывает, что входной сигнал непрерывного времени имеет нулевую мощность выше частоты Найквиста.

InputOffset

Смещение удалено из входных данных временной области во время оценки. Для нелинейных моделей это [].

OutputOffset

Смещение удалено из выходных данных временной области во время оценки. Для нелинейных моделей это [].

Дополнительные сведения об использовании Report, см. Отчет по оценке.

Предполагаемые начальные условия, возвращенные в виде initialCondition объект или массив объектов initialCondition значения.

  • Для набора данных одного эксперимента: ic представляет в форме state-space свободный отклик модели передаточной функции (матрицы A и C) на оцененные начальные состояния (x0).

  • Для набора данных нескольких экспериментов с экспериментами Ne, ic - массив объектов длиной Ne, содержащий один набор initialCondition значения для каждого эксперимента.

Дополнительные сведения см. в разделе initialCondition. Пример использования этого аргумента см. в разделе Получение начальных условий.

Подробнее

свернуть все

Структура ARX

Имя модели ARX расшифровывается как Autoregressive with Extra Input, поскольку, в отличие от модели AR, модель ARX включает входной член. ARX также известен как Авторегрессия с экзогенными переменными, где экзогенная переменная является входным термином. Структура модели ARX задается следующим уравнением:

y (t) + a1y (t 1) +... + anay (t na) = b1u (t nk) +... + bnbu (t − nb − nk + 1) + e (t)

Параметры na и nb являются порядками модели ARX, а nk - задержкой.

  • y (t) - Выход в момент времени t

  • na - Количество полюсов

  • nb - количество нулей

  • nk - количество входных выборок, которые возникают до того, как вход влияет на выход, также называемое мертвым временем в системе;

  • y (t 1)... y (t − na) - предыдущие выходы, от которых зависит токовый выход

  • u (t nk)... u (t nk − nb + 1) - Предыдущие и задержанные входы, от которых зависит токовый выход

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

Более компактным способом записи уравнения разности является

A (q) y (t) = B (q) u (t − nk) + e (t)

q - оператор задержки. В частности,

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

B (q) = b1 + b2q 1 +... + bnbq − nb + 1

Модель ARIX

Модель ARIX (Autoregressive Integrated with Extra Input) - модель ARX с интегратором в шумовом канале. Структура модели ARIX задается следующим уравнением:

A (q) y (t) = B (q) u (t nk) + 11 − q − 1e (t)

где 11 q − 1 - интегратор в шумовом канале, e (t).

Модели временных рядов AR

Для данных временного ряда, не содержащих входных данных, одного выходного сигнала и полинома A порядка na, модель имеет структуру AR порядка na.

Структура AR (авторегрессионной) модели задается следующим уравнением:

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

Модель ARI

Модель ARI (Autoregressive Integrated) - модель AR с интегратором в шумовом канале. Структура модели ARI задается следующим уравнением:

A (q) y (t) = 11 q − 1e (t)

Модели с несколькими входами и одним выходом

Для систем с множеством входов и одним выходом (MISO) с nu входами nb и nk являются векторами строк, где i-й элемент соответствует порядку и задержке, связанным с i-м входом в векторе столбца u (t). Аналогично, коэффициенты многочлена B являются векторами строк. Структура MISO ARX задается следующим уравнением :

A (q) y (t) = B1 (q) u1 (t nkn1) + B2 (q) u2 (t nk2) +⋯+Bnu (q) unu (t − nknu)

Модели с несколькими входами и несколькими выходами

Для систем с несколькими входами и несколькими выходами, na, nb, и nk содержат по одной строке для каждого выходного сигнала.

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

∑t=1NeT (t) e (t)

Преобразование этой нормы в произвольную квадратичную норму с помощью матрицы взвешивания Lambda

∑t=1NeT (t) Λ 1e (t)

используйте следующий синтаксис:

opt = arxOptions('OutputWeight',inv(lambda))
m = arx(data,orders,opt)

Начальные условия

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

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

Установите 'InitialCondition' вариант оценки (см. arxOptions) к одному из следующих значений:

  • 'zero' - Без регулировки

  • 'estimate' - Произвести подгонку данных по исходным условиям, поддерживающим круговую свертку

  • 'auto' - Автоматически выбрать 'zero' или 'estimate' на основе данных

Алгоритмы

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

Без регуляризации, вектор параметров модели ARX (модель ARX) оценивается путем решения нормального уравнения

(JTJ) λ = JTy

где J - матрица-регрессор, а y - измеренный выходной сигнал. Поэтому

λ = (JTJ) 1JTy

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

λ = (JTJ + λ R) − 1JTy

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

Когда матрица регрессии больше, чем MaxSize указано в arxOptionsданные сегментируются, и QR-факторизация выполняется итеративно на сегментах данных.

Представлен до R2006a