armax

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

Синтаксис

sys = armax(data,[na nb nc nk])
sys = armax(data,[na nb nc nk],Name,Value)
sys = armax(data,init_sys)
sys = armax(data,___,opt)

Описание

пример

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

пример

sys = armax(data,[na nb nc nk],Name,Value) возвращает модель idpoly, sys, с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

пример

sys = armax(data,init_sys) оценивает полиномиальную модель с помощью дискретного времени линейная модель init_sys, чтобы сконфигурировать начальную параметризацию.

пример

sys = armax(data,___,opt) указывает, что опции оценки с помощью опции устанавливают opt.

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

свернуть все

Данные об оценке временного интервала, заданные как объект iddata. Вы не можете использовать данные частотного диапазона для оценки моделей ARMAX.

Полиномиальные порядки Модели ARMAX, заданной как вектор 1 на 4, [na nb nc nk].

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

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

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

  • nc является порядком полиномиального C (q), заданный как вектор-столбец неотрицательных целых чисел длины Ny.

  • nk является задержкой ввода - вывода, выраженной как зафиксированные начальные нули полинома B.

    Задайте nk как Ny-by-Nu матрица неотрицательных целых чисел.

Система для конфигурирования начальной параметризации sys, заданного как дискретное время линейная модель. Вы получаете init_sys или выполнением оценки с помощью результатов измерений или прямой конструкцией с помощью команд, таких как idpoly и idss.

Если init_sys является моделью ARMAX, armax использует значения параметров init_sys как исходное предположение для оценки. Чтобы сконфигурировать исходные предположения и ограничения для A (q), B (q) и C (q), использует свойство Structure init_sys. Например:

  • Чтобы задать исходное предположение для A (q) термин init_sys, установите init_sys.Structure.A.Value как исходное предположение.

  • Задавать ограничения для B (q) термин init_sys:

    • установите init_sys.Structure.B.Minimum на минимальный B (q) содействующие значения.

    • установите init_sys.Structure.B.Maximum на максимальный B (q) содействующие значения.

    • установите init_sys.Structure.B.Free указывать, который B (q) коэффициенты свободны для оценки.

Если init_sys не является полиномиальной моделью структуры ARMAX, программное обеспечение сначала преобразовывает init_sys в модель ARMAX. armax использует параметры получившейся модели как исходное предположение для оценки sys.

Если opt не задан, и init_sys был получен оценкой, то опции оценки от init_sys.Report.OptionsUsed используются.

Установлены опции оценки для идентификации модели ARMAX, заданной как опция armaxOptions.

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

  • Nu-by-1 вектор, где Nu является количеством входных параметров — Каждая запись, является численным значением, представляющим входную задержку соответствующего входного канала. Задайте входные задержки как целочисленные множители шага расчета Ts. Например, InputDelay = 3 означает задержку трех периодов выборки.

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

Транспортные задержки каждой пары ввода/вывода, заданной как пара, разделенная запятой, состоящая из 'IODelay' и одно из следующего:

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

  • Скалярное значение — та же задержка применяется ко всем парам ввода/вывода.

'IODelay' полезен как замена для порядка nk. Можно факторизовать задержки max(nk-1,0) как значение IODelay. Для nk> 1, armax(na,nb,nk) эквивалентен armax(na,nb,1,'IODelay',nk-1).

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

Установка IntegrateNoise к true для конкретного вывода приводит к модели:

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

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

Используйте IntegrateNoise, чтобы создать модели ARIMA или ARIMAX.

Например,

load iddata9 z9;
z9.y = cumsum(z9.y); % integrated data
sys = armax(z9,[4 1],'IntegrateNoise',true);
compare(z9,sys,10) % 10-step ahead prediction

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

свернуть все

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

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

Сообщите о полеОписание
Status

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

Method

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

InitialCondition

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

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

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

  • 'backcast' — Начальные условия были оценены с помощью лучшего метода наименьших квадратов.

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

Fit

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

Поле Описание
FitPercent

Мера по нормированной среднеквадратической ошибке (NRMSE) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент.

LossFcn

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

MSE

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

FPE

Итоговая ошибка прогноза для модели.

AIC

Необработанная мера по Критериям информации о Akaike (AIC) образцового качества.

AICc

Маленький объем выборки исправил AIC.

nAIC

Нормированный AIC.

BIC

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

Parameters

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

OptionsUsed

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

RandState

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

DataUsed

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

Поле Описание
Name

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

Type

Тип данных.

Length

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

Ts

'SampleTime' .

InterSample

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

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

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

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

InputOffset

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

OutputOffset

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

Termination

Условия завершения для итеративного поиска используются для ошибочной минимизации прогноза. Структура со следующими полями:

Поле Описание
WhyStop

Причина завершения числового поиска.

Iterations

Количество поисковых итераций выполняется алгоритмом оценки.

FirstOrderOptimality

- норма вектора просмотра градиента, когда алгоритм поиска останавливается.

FcnCount

Число раз целевая функция было названо.

UpdateNorm

Норма вектора просмотра градиента в последней итерации. Не использованный, когда методом поиска является 'lsqnonlin' или 'fmincon'.

LastImprovement

Улучшение критерия последней итерации, выраженной как процент. Не использованный, когда методом поиска является 'lsqnonlin' или 'fmincon'.

Algorithm

Алгоритм используется методом поиска 'fmincon' или 'lsqnonlin'. Не использованный, когда другие методы поиска используются.

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

Для получения дополнительной информации об использовании Report см. Отчет Оценки.

Примеры

свернуть все

Оцените упорядоченную модель ARMAX путем преобразования упорядоченной модели ARX.

Загрузка данных.

load regularizationExampleData.mat m0simdata;

Оцените неупорядоченную модель ARMAX порядка 15.

m1 = armax(m0simdata(1:150),[30 30 30 1]);

Оцените упорядоченную модель ARMAX путем определения значения Lambda методом проб и ошибок.

opt = armaxOptions;
opt.Regularization.Lambda = 1;
m2 = armax(m0simdata(1:150),[30 30 30 1],opt);

Получите модель ARMAX более низкоуровневую путем преобразования упорядоченной модели ARX, сопровождаемой сокращением порядка.

opt1 = arxOptions;
[L,R] = arxRegul(m0simdata(1:150),[30 30 1]);
opt1.Regularization.Lambda = L;
opt1.Regularization.R = R;
m0 = arx(m0simdata(1:150),[30 30 1],opt1);
mr = idpoly(balred(idss(m0),7));

Сравните образцовые выходные параметры с данными.

opt2 = compareOptions('InitialCondition','z');
compare(m0simdata(150:end),m1,m2,mr,opt2);

Оцените модель ARMAX от результатов измерений и задайте опции оценки.

Оцените модель ARMAX с особым вниманием симуляции, с помощью 'lm' в качестве метода поиска и максимального количества поискового набора итераций к 10.

load twotankdata;
z = iddata(y,u,0.2);
opt = armaxOptions;
opt.Focus = 'simulation';
opt.SearchMethod = 'lm';
opt.SearchOptions.MaxIterations = 10;
opt.Display = 'on';
sys = armax(z,[2 2 2 1],opt);

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

Чтобы улучшить результаты, повторно оцените модель с помощью большего значения для MaxIterations или продолжите итерации на ранее предполагаемой модели можно следующим образом:

sys2 = armax(z,sys);
compare(z,sys,sys2)

где sys2 совершенствовал параметры sys, чтобы улучшить подгонку к данным.

Оцените 4-й порядок модель ARIMA для одномерных данных timeseries.

load iddata9;
z9.y = cumsum(z9.y); % integrated data
model = armax(z9,[4 1],'IntegrateNoise',true); 
compare(z9,model,10) % 10-step ahead prediction

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

Оцените модели ARMAX порядков, отличающихся между 1 и 4 для данных о сушилке.

load dryer2;
z = iddata(y2,u2,0.08,'Tstart',0);
na = 2:4;
nc = 1:2;
nk = 0:2;
models = cell(1,18);
ct = 1;
for i = 1:3
    na_ = na(i);
    nb_ = na_;
    for j = 1:2
        nc_ = nc(j);
        for k = 1:3
            nk_ = nk(k); 
            models{ct} = armax(z,[na_ nb_ nc_ nk_]);
            ct = ct+1;
        end
    end
end

Сложите предполагаемые модели и сравните их моделируемые ответы на данные об оценке z.

models = stack(1,models{:});
compare(z,models)

Загрузите данные об оценке.

load iddata2 z2

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

sys0 = n4sid(z2,3);

Оцените модель ARMAX с помощью ранее предполагаемой модели в пространстве состояний в качестве исходного предположения.

sys = armax(z2,sys0);

Больше о

свернуть все

Модель ARMAX

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

y(t)+a1y(t1)++anay(tna)=     b1u(tnk)++bnbu(tnknb+1)+             c1e(t1)++cnce(tnc)+e(t)

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

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

где,

  • y(t)— Выведите во время t.

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

  • nb — Количество обнуляет плюс 1.

  • nc — Количество коэффициентов C.

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

  • y(t1)y(tna) — Предыдущие выходные параметры, от которых зависит текущая производительность.

  • u(tnk)u(tnknb+1) — Предыдущие и задержанные входные параметры, от которых зависит текущая производительность.

  • e(t1)e(tnc) — Бело-шумовое значение воздействия.

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

A(q)=1+a1q1++anaqna

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

C(q)=1+c1q1++cncqnc

Если data является временными рядами, которые не имеют никаких входных каналов и одного выходного канала, то armax вычисляет модель ARMA для временных рядов

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

В этом случае,

orders = [na nc]

Модель ARIMAX

Структура модели ARIMAX подобна ARMAX, за исключением того, что это содержит интегратор в источнике шума e(t):

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

Если нет никаких входных параметров, структура уменьшает до модели ARIMA:

A(q)y(t)=C(q)(1q1)e(t)

Советы

  • Используйте свойство IntegrateNoise добавить интеграторы в источник шума.

Алгоритмы

Итеративный алгоритм поиска минимизирует robustified квадратичный ошибочный критерий прогноза. Итерации отключены, когда любое следующее верно:

  • Максимальное количество итераций достигнуто.

  • Ожидаемое улучшение является меньше, чем заданный допуск.

  • Нижнее значение критерия не может быть найдено.

Можно получить информацию о критерии остановки с помощью sys.Report.Termination.

Используйте набор опции armaxOptions, чтобы создать и сконфигурировать опции, влияющие на результаты оценки. В частности, установите атрибуты алгоритма поиска, такие как MaxIterations и Tolerance, с помощью свойства 'SearchOptions'.

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

Значение сокращения для robustification основано на опции оценки Advanced.ErrorThreshold и на предполагаемом стандартном отклонении невязок от начальной оценки параметра. Это не повторно вычисляется во время минимизации. По умолчанию никакой robustification не выполняется; значение по умолчанию опции ErrorThreshold 0.

Чтобы гарантировать, что только модели, соответствующие стабильным предикторам, тестируются, алгоритм выполняет тест устойчивости предиктора. Обычно оба C(q) и F(q) (если применимо) должен иметь все нули в модульном кругу.

Информация о минимизации отображена на экране, когда опцией оценки 'Display' является 'On' или 'Full'. С 'Display' ='Full' и ток и предыдущие оценки параметра отображены в форме вектор-столбца, перечислив параметры в алфавитном порядке. Кроме того, значения оценочной функции (стоимость) даны, и вектор Ньютона Гаусса и его норма также отображены. С 'Display' = 'On' только отображены значения критерия.

Альтернативы

armax не поддерживает непрерывно-разовую образцовую оценку. Используйте tfest, чтобы оценить, что непрерывно-разовая модель передаточной функции или ssest оценивает непрерывно-разовую модель в пространстве состояний.

armax поддерживает только данные временного интервала. Для данных частотного диапазона используйте oe, чтобы оценить модель Output-Error (OE).

Ссылки

Ljung, L. System Identification: Теория для Пользователя, Верхнего Сэддл-Ривер, NJ: PTR Prentice Hall, 1999. См. главу о вычислении оценки.

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

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