exponenta event banner

bj

Оценка модели полинома Бокса-Дженкинса с использованием данных временной области

Синтаксис

sys = bj(data, [nb nc nd nf nk])
sys = bj(data,[nb nc nd nf nk], Name,Value)
sys = bj(data, init_sys)
sys = bj(data, ___, opt)
[sys,ic] = bj(___)

Описание

sys = bj(data, [nb nc nd nf nk]) оценивает полиномиальную модель Бокса-Дженкинса, sys, используя данные временной области, data. [nb nc nd nf nk] определить порядок многочленов, используемых для оценки.

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

sys = bj(data, init_sys) оценивает полином Бокса (Box) - Дженкинса (Jenkins) с использованием полиномиальной модели init_sys для конфигурирования начальной параметризации sys.

sys = bj(data, ___, opt) оценивает полином Бокса - Дженкинса, используя набор опций, opt, чтобы задать поведение оценки.

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

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

data

Оценочные данные.

data является iddata объект, содержащий значения входных и выходных сигналов временной области.

Нельзя использовать данные частотной области для оценки моделей Бокса-Дженкинса.

[nb nc nd nf nk]

Вектор матриц, содержащий порядки и задержки модели Бокса-Дженкинса. Матрицы должны содержать неотрицательные целые числа.

  • nb - порядок многочлена B плюс 1 (матрица Ny-by-Nu)

  • nc - порядок многочлена C плюс 1 (матрица Ny-by-1)

  • nd - порядок многочлена D плюс 1 (матрица Ny-by-1)

  • nf - порядок полинома F плюс 1 (матрица Ny-by-Nu)

  • nk - входная задержка (в количестве отсчетов, матрица Ny-by-Nu), где Nu - количество входов, а Ny - количество выходов.

opt

Варианты оценки.

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

  • цель оценки

  • исходные условия

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

Использовать bjOptions для создания набора опций.

init_sys

Полиномиальная модель, которая настраивает начальную параметризацию sys.

init_sys должно быть idpoly модель со структурой Бокса-Дженкинса, в которой активны только многочлены B, C, D и F. bj использует параметры и ограничения, определенные в init_sys в качестве начального предположения для оценки sys.

Используйте Structure имущество init_sys для конфигурирования исходных предположений и ограничений для B (q), F (q), C (q) и D (q).

Чтобы указать начальное предположение для, скажем, C (q) члена init_sys, комплект init_sys.Structure.C.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) свободны для оценки

Можно также задать начальное предположение и ограничения для других многочленов.

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

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

'InputDelay'

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

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

По умолчанию: 0 для всех входных каналов

'IODelay'

Задержки в транспортировке. IODelay - числовой массив, задающий отдельную задержку передачи для каждой пары вход/выход.

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

Для системы MIMO с Ny результаты и Nu входы, комплект IODelay в Nyоколо-Nu массив, где каждая запись является числовым значением, представляющим задержку передачи для соответствующей пары вход/выход. Также можно задать IODelay скалярное значение для применения одинаковой задержки ко всем парам ввода/вывода.

По умолчанию: 0 для всех пар вход/выход

'IntegrateNoise'

Логическое определение интеграторов в шумовом канале.

IntegrateNoise - логический вектор длины Ny, где Ny - количество выходов.

Настройка IntegrateNoise кому true для определенных выходных результатов в модели:

y (t) = B (q) F (q) u (t nk) + C (q) D (q) e (t) 1 − q − 1

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

По умолчанию: false(Ny,1)(Ny - количество выходов)

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

sys

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

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

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

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

Method

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

InitialCondition

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

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

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

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

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

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

RandState

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

DataUsed

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

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

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

Type

Тип данных.

Length

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

Ts

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

InterSample

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

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

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

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

InputOffset

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

OutputOffset

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

Termination

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

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

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

Iterations

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

FirstOrderOptimality

∞-norm вектора поиска градиента при завершении алгоритма поиска.

FcnCount

Число вызовов целевой функции.

UpdateNorm

Норма вектора поиска градиента в последней итерации. Опущено, когда метод поиска 'lsqnonlin' или 'fmincon'.

LastImprovement

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

Algorithm

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

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

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

[nb nc nd nf nk]

Вектор матриц, содержащий порядки и задержки модели Бокса-Дженкинса. Матрицы должны содержать неотрицательные целые числа.

  • nb - порядок многочлена B плюс 1 (матрица Ny-by-Nu)

  • nc - порядок многочлена C плюс 1 (матрица Ny-by-1)

  • nd - порядок многочлена D плюс 1 (матрица Ny-by-1)

  • nf - порядок полинома F плюс 1 (матрица Ny-by-Nu)

  • nk - входная задержка (в количестве отсчетов, матрица Ny-by-Nu), где Nu - количество входов, а Ny - количество выходов.

ic

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

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

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

Если bj прибыль ic значения 0 и вы знаете, что у вас есть ненулевые начальные условия, установите 'InitialCondition' опция в bjOptions кому 'estimate' и передать обновленный набор опций в bj. Например:

opt = bjOptions('InitialCondition,'estimate')
[sys,ic] = bj(data,[nb nc nd nf nk],opt)
Дефолт 'auto' установка 'InitialCondition' использует 'zero' способ, когда исходные условия оказывают незначительное влияние на общий процесс минимизации ошибок оценки. Определение 'estimate' гарантирует, что программное обеспечение оценивает значения для ic.

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

Примеры

свернуть все

Оцените параметры модели Бокса-Дженкинса с одним входом и одним выходом на основе измеренных данных.

load iddata1 z1;
nb = 2;
nc = 2;
nd = 2;
nf = 2;
nk = 1;
sys = bj(z1,[nb nc nd nf nk]);

sys является дискретным временем idpoly модель с оценочными коэффициентами. Порядок sys соответствует описанию nb, nc, nd, nf, и nk.

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

Оцените параметры модели Бокса-Дженкинса с несколькими входами и одним выходом на основе измеренных данных.

load iddata8
nb = [2 1 1];
nc = 1;
nd = 1;
nf = [2 1 2];
nk = [5 10 15];
sys = bj(z8,[nb nc nd nf nk]);

sys оценивает параметры модели с тремя входами и одним выходом. Каждый из входов имеет связанную с ним задержку.

Оценка регуляризованной модели BJ путем преобразования регуляризованной модели ARX.

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

load regularizationExampleData.mat m0simdata;

Оценка нерегулируемой модели BJ порядка 30.

m1 = bj(m0simdata(1:150),[15 15 15 15 1]);

Оценка регуляризованной модели BJ путем определения значения Лямбда методом проб и ошибок.

opt = bjOptions;
opt.Regularization.Lambda = 1;
m2 = bj(m0simdata(1:150),[15 15 15 15 1],opt);

Получение модели BJ более низкого порядка путем преобразования регуляризованной модели 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);

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Validation data (y1), m1: 52.83%, m2: 57.59%, mr: 64.91%.

Оцените параметры модели Бокса-Дженкинса с одним входом и одним выходом при настройке некоторых параметров оценки.

Создание оценочных данных.

B = [0 1 0.5];
C = [1 -1 0.2];
D = [1 1.5 0.7];
F = [1 -1.5 0.7];
sys0 = idpoly(1,B,C,D,F,0.1);
e = iddata([],randn(200,1));
u = iddata([],idinput(200)); 
y = sim(sys0,[u e]);
data = [y u];

data представляет собой набор данных с одним входом и одним выходом, созданный путем моделирования известной модели.

Оценка начальной модели Бокса-Дженкинса.

nb = 2;
nc = 2;
nd = 2;
nf = 2;
nk = 1;
init_sys = bj(data,[2 2 2 2 1]);

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

opt = bjOptions;
opt.Display = 'on';
opt.SearchOptions.MaxIterations = 50;

opt - набор опций оценки, который конфигурирует оценку для итерации максимум 50 раз и отображения хода выполнения оценки.

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

sys = bj(data,init_sys,opt);

sys оценивается с использованием init_sys для начальной параметризации полиномиальных коэффициентов.

Для просмотра результата оценки введите sys.Report.

Оценка модели Бокса-Дженкинса с несколькими входами и несколькими выходами на основе оценочных данных.

Данные измерения нагрузки.

load iddata1 z1
load iddata2 z2
data = [z1 z2(1:300)];

data содержит измеренные данные для двух входов и двух выходов.

Оцените модель.

 nb = [2 2; 3 4];  
 nc = [2;2]; 
 nd = [2;2]; 
 nf = [1 0; 2 2];
 nk = [1 1; 0 0];
 sys = bj(data,[nb nc nd nf nk]);

Коэффициенты полиномиального порядка содержат по одной строке для каждого выходного сигнала.

sys является дискретным временем idpoly модель с двумя входами и двумя выходами.

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

load iddata1ic z1i

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

nb = 2;
nc = 2;
nd = 2;
nf = 2;
nk = 1;
[sys,ic] = bj(z1i,[nb nc nd nf nk]);
ic
ic = 
  initialCondition with properties:

     A: [4x4 double]
    X0: [4x1 double]
     C: [0.8744 0.5426 0.4647 -0.5285]
    Ts: 0.1000

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

Подробнее

свернуть все

Структура модели Бокса-Дженкинса

Общая структура модели Бокса-Дженкинса:

y (t) =∑i=1nuBi (q) Fi (q) ui (t nki) + C (q) D (q) e (t)

где nu - количество входных каналов.

Порядки модели Бокса-Дженкинса определяются следующим образом:

nb:  B (q) = b1 + b2q 1 +... + bnbq  − nb + 1nc: C (q) = 1 + c1q −  1 + + cncq nnd: D (q) =  1 + d1q 1 + + dndq ndnf: F (q) = 1 + f1q − 1 +... + fnfq

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

Чтобы оценить модель непрерывного времени, используйте:

  • tfest - возвращает модель передаточной функции

  • ssest - возвращает модель state-space

  • bj сначала оценить модель дискретного времени и преобразовать ее в модель непрерывного времени с использованием d2c.

Ссылки

[1] Ljung, L. System Identification: Theory for the User, Upper Saddle River, NJ, Prentice-Hall PTR, 1999.

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

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