armax

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

Описание

пример

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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

  • Ny- 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

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

Для методов оценки, которые не требуют числовой оптимизации поиска, 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

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