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) оценивает полином Бокса-Дженкинса, используя полиномиальную модель init_sys чтобы сконфигурировать начальную параметризацию sys.

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

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

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

data

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

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

Вы не можете использовать данные частотного диапазона для оценки моделей Box-Jenkins.

[nb nc nd nf nk]

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

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

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

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

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

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

opt

Опции оценки.

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

  • цель оценки

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

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

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

init_sys

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

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

Используйте Structure свойство init_sys настроить начальные предположения и ограничения для B (<reservedrangesplaceholder6>), F (<reservedrangesplaceholder4>), C (<reservedrangesplaceholder2>) и D (<reservedrangesplaceholder0>).

Чтобы задать начальное предположение, скажем, 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-by-1 вектор, где каждая запись является числовым значением, представляющим входную задержку для соответствующего входного канала. Можно также задать InputDelay к скалярному значению, чтобы применить ту же задержку ко всем каналам.

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

'IODelay'

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

Задайте задержки транспорта как целые числа, обозначающие задержку, кратную шага расчета Ts.

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

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

'IntegrateNoise'

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

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

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

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

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

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

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

sys

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

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

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

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

Method

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

InitialCondition

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

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

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

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

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

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

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

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

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

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

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

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

ic

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

  • Для одного набора данных эксперимента, ic представляет в форме пространства состояний свободный ответ модели передаточной функции (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. Пример использования этого аргумента см. в разделе Получение начальных условий.

Примеры

свернуть все

Оцените параметры модели Box-Jenkins с одним входом, с одним выходом на основе измеренных данных.

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

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

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

Оцените параметры модели Box-Jenkins с мультивходами, с одним выходом на основе измеренных данных.

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%.

Оцените параметры модели Box-Jenkins с одним входом, с одним выходом, при конфигурировании некоторых опций оценки.

Сгенерируйте данные оценки.

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

Подробнее о

свернуть все

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

Общая структура модели Box-Jenkins:

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

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

Порядки модели Box-Jenkins определяются следующим образом:

nb:   B(q)=b1+b2q1+...+bnbqnb+1nc:   C(q)=1+c1q1+...+cncqncnd:   D(q)=1+d1q1+...+dndqndnf:   F(q)=1+f1q1+...+fnfqnf

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

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

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

  • ssest - возвращает модель пространства состояний

  • bj для первой оценки модели в дискретном времени и преобразования ее в модель в непрерывном времени с помощью d2c.

Ссылки

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

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

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