arx

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

Описание

пример

sys = arx(data,[na nb nk]) оценивает параметры модели ARX или AR idpolysys с использованием метода наименьших квадратов и полиномиальных порядков, заданных в [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%.

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

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

load iddata9 z9

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

sys = arx(z9,4);

Исследуйте оцененные полиномиальные параметры A и подгонку оценки данным.

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

Получите ambda l и R значения.

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

Используйте возвращенный l ambda и 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, в форме пространство состояний, в вектор начального состояния в X0. Можно включать ic когда вы симулируете sys с z1i входной сигнал и сравните ответ с z1i выходной сигнал.

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

свернуть все

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

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

Для модели AR или ARI с timeseries, которая не имеет входов, установите [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 - количество входов - каждая запись является целым значением, представляющим транспортную задержку для соответствующей пары вход-выход.

  • Скалярное значение - Применить ту же задержку применяется ко всем парам вход-выход. Этот подход полезен, когда параметр задержки ввода-вывода nk приводит к большому количеству фиксированных начальных нулей в B полиноме. Можно выявлять max(nk-1,0) отстает путем перемещения этих лагов от 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

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

InitialCondition

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

  • 'zero' - Начальные условия были обнулены.

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

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

Fit

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

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

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

LossFcn

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

MSE

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

FPE

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

AIC

Необработанная мера качества модели 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 представляет в форме пространства состояний свободный ответ модели передаточной функции (A и C матрицы) на предполагаемые начальные состояния (x0).

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

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

Подробнее о

свернуть все

Структура ARX

Модель ARX имени обозначает Autoregressive with Extra Input, потому что, в отличие от модели AR, модель ARX включает в себя вход термин. ARX также известен как Autoregressive with Exogenous Variables, где экзогенная переменная является входом термином. Структура модели ARX задается следующим уравнением:

y(t)+a1y(t1)+...+anay(tna)=b1u(tnk)+...+bnbu(tnbnk+1)+e(t)

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

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

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

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

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

  • y(t1)y(tna) - Предыдущие выходы, от которых зависит выходной ток

  • u(tnk)u(tnknb+1) - Предыдущие и отложенные входы, от которых зависит токовый выход

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

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

A(q)y(t)=B(q)u(tnk)+e(t)

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

A(q)=1+a1q1++anaqna

B(q)=b1+b2q1++bnbqnb+1

Модель ARIX

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

A(q)y(t)=B(q)u(tnk)+11q1e(t)

где 11q1 является интегратором в канале шума, e (t).

Timeseries AR

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

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

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

Модель ARI

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

A(q)y(t)=11q1e(t)

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

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

A(q)y(t)=B1(q)u1(tnk1)+B2(q)u2(tnk2)++Bnu(q)unu(tnknu)

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

Для систем с несколькими входами, несколькими выходами, 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 оценен путем решения нормального уравнения

(JTJ)θ=JTy

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

θ=(JTJ)1JTy

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

θ=(JTJ+λR)1JTy

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

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

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