polyest

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

Синтаксис

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

Описание

sys = polyest(data,[na nb nc nd nf nk]) оценивает полиномиальную модель, sys, используя данные временной или частотной области, data.

sys имеет вид

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

A (<reservedrangesplaceholder11>), B (<reservedrangesplaceholder9>), F (<reservedrangesplaceholder7>), C (<reservedrangesplaceholder5>) и D (<reservedrangesplaceholder3>) являются многочленными матрицами. u (t) является входом, и nk - это вход задержка. y (t) является выходом, а e (t) - нарушение порядка сигналом. na , nb, nc, nd и nf порядки A (<reservedrangesplaceholder8>), B (<reservedrangesplaceholder6>), C (<reservedrangesplaceholder4>), D (<reservedrangesplaceholder2>) и F (<reservedrangesplaceholder0>) полиномы, соответственно.

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

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

sys = polyest(___, opt) оценивает полиномиальную модель, используя набор опций, opt, для определения поведения оценки.

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

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

data

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

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

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

Для оценки частотного диапазона, data может быть одним из следующих:

  • Зарегистрированные данные частотной характеристики (frd (Control System Toolbox) или idfrd)

  • iddata объект со свойствами, заданными следующим образом:

    • InputData - Фурье-преобразование входного сигнала

    • OutputData - Фурье-преобразование выходного сигнала

    • Domain - «Частота»

    Это может быть удобнее в использовании oe или tfest для оценки модели для данных частотного диапазона.

na

Порядок полинома A (q).

na является Ny -by - Ny матрицей неотрицательных целых чисел. Ny - количество выходов, а Nu - количество входов.

na должен быть нулем, если вы оцениваете модель, используя данные частотного диапазона.

nb

Порядок полинома B (q) + 1.

nb является Ny -by - Nu матрицей неотрицательных целых чисел. Ny - количество выходов, а Nu - количество входов.

nc

Порядок полинома C (q).

nc - вектор-столбец из неотрицательных целых чисел длины Ny. Ny - количество выходов.

nc должен быть нулем, если вы оцениваете модель, используя данные частотного диапазона.

nd

Порядок полинома D (q).

nd - вектор-столбец из неотрицательных целых чисел длины Ny. Ny - количество выходов.

nd должен быть нулем, если вы оцениваете модель, используя данные частотного диапазона.

nf

Порядок полинома F (q).

nf является Ny -by - Nu матрицей неотрицательных целых чисел. Ny - количество выходов, а Nu - количество входов.

nk

Входная задержка в количестве выборок, выраженная как фиксированные начальные нули B полинома.

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

nk должен быть нулем при оценке модели в непрерывном времени.

opt

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

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

  • Цель оценки

  • Обработка начальных условий

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

init_sys

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

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

Если init_sys является idpoly модель, polyest использует параметры и ограничения, определенные в init_sys как исходное предположение для оценки sys.

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

  • Чтобы задать начальное предположение для 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 не является idpoly модель, программное обеспечение сначала преобразует init_sys в полиномиальную модель. polyest использует параметры получившейся модели в качестве начального предположения для оценки.

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

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

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

'IODelay'

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

Для систем непрерывного времени задайте задержки транспорта в модуле времени, сохраненной в TimeUnit свойство. Для систем в дискретном времени задайте задержки транспорта в целочисленных множителях шага расчета, Ts.

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

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

'InputDelay'

Входная задержка для каждого входного канала, заданная как скалярное значение или числовой вектор. Для систем непрерывного времени задайте задержки на входе в модуле времени, сохраненной в TimeUnit свойство. Для систем в дискретном времени задайте входные задержки в целочисленных множителях шага расчета Ts. Для примера, InputDelay = 3 означает задержку в три шагов расчета.

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

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

По умолчанию: 0

'IntegrateNoise'

Логический вектор, задающий интеграторы в канале шума.

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

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

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

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

Использование IntegrateNoise для создания модели ARIMAX.

Для примера,

load iddata1 z1;
z1 = iddata(cumsum(z1.y),cumsum(z1.u),z1.Ts,'InterSample','foh');
sys = polyest(z1, [2 2 2 0 0 1],'IntegrateNoise',true);

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

sys

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

Если data.Ts равен нулю, sys является моделью в непрерывном времени, представляющей:

Y(s)=B(s)F(s)U(s)+E(s)

Y (<reservedrangesplaceholder10>), U (<reservedrangesplaceholder8>) и E (<reservedrangesplaceholder6>) являются Преобразования Лапласа сигналов временной области y (<reservedrangesplaceholder4>), u (<reservedrangesplaceholder2>) и e (<reservedrangesplaceholder0>), соответственно.

Информация о результатах оценки и используемых опциях хранится в 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

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

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, см. Отчет по оценке.

ic

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

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

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

Если polyest возвращает ic значения 0 и вы знаете, что у вас ненулевые начальные условия, установите 'InitialCondition' опция в polyestOptions на 'estimate' и передайте обновленный набор опций в polyest. Для примера:

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

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

Примеры

свернуть все

Оцените модель с избыточной параметризацией. То есть модель со всеми полиномами (A, B, C, D, и F) активный.

Данные оценки нагрузки.

load iddata2 z2;

Задайте порядки модели и задержки.

na = 2; 
nb = 2; 
nc = 3; 
nd = 3; 
nf = 2; 
nk = 1;

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

sys = polyest(z2,[na nb nc nd nf nk]);

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

Данные оценки нагрузки.

load regularizationExampleData.mat m0simdata;

Оцените нерегулярную полиномиальную модель порядка 20.

m1 = polyest(m0simdata(1:150),[0 20 20 20 20 1]);

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

opt = polyestOptions;
opt.Regularization.Lambda = 1;
m2 = polyest(m0simdata(1:150),[0 20 20 20 20 1],opt);

Получите полиномиальную модель более низкого порядка путем преобразования регуляризованной модели ARX и уменьшения ее порядка. Использование arxregul для определения параметров регуляризации.

[L,R] = arxRegul(m0simdata(1:150),[30 30 1]);
opt1 = arxOptions;
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: 23.82%, m2: 26.09%, mr: 64.91%.

Загрузите входные/выходные данные и создайте совокупную сумму входа и выходные сигналы для оценки.

load iddata1 z1
data = iddata(cumsum(z1.y),cumsum(z1.u),z1.Ts,'InterSample','foh');

Задайте полиномиальные порядки модели. Установите порядки неактивных полиномов, D и F, в 0.

na = 2; 
nb = 2; 
nc = 2; 
nd = 0; 
nf = 0; 
nk = 1;

Идентифицируйте модель ARIMAX путем установки 'IntegrateNoise' опция для true.

sys = polyest(data,[na nb nc nd nf nk],'IntegrateNoise',true);

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

Данные оценки нагрузки.

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

data - набор данных с 2 входами и 2 выходами. Первый вход влияет только на первый выход. Точно так же второй вход влияет только на второй выход.

Задайте порядки модели и задержки. The F и D полиномы неактивны.

na = [2 2; 2 2]; 
nb = [2 2; 3 4]; 
nk = [1 1; 0 0]; 
nc = [2;2]; 
nd = [0;0]; 
nf = [0 0; 0 0];

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

sys = polyest(data,[na nb nc nd nf nk]);

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

Анализ результатов.

h = bodeplot(sys);
showConfidence(h,3)

Figure contains 8 axes. Axes 1 with title From: u1 contains an object of type line. This object represents sys. Axes 2 contains an object of type line. This object represents sys. Axes 3 contains an object of type line. This object represents sys. Axes 4 contains an object of type line. This object represents sys. Axes 5 with title From: u2 contains an object of type line. This object represents sys. Axes 6 contains an object of type line. This object represents sys. Axes 7 contains an object of type line. This object represents sys. Axes 8 contains an object of type line. This object represents sys.

Ответы от перекрестных терминов показывают большую неопределенность.

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

load iddata1ic z1i

Оцените полиномиальную модель sys и возвращает начальные условия в ic.

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

     A: [7x7 double]
    X0: [7x1 double]
     C: [0 0 0 0 0 0 1]
    Ts: 0.1000

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

Совет

  • В большинстве ситуаций все полиномы идентифицированной полиномиальной модели не являются одновременно активными. Установите один или несколько порядки na, nc, nd и nf для нуля упрощения структуры модели.

    Для примера можно оценить модель Output-Error (OE) путем определения na, nc и nd как нуль.

    Кроме того, можно использовать специальную функцию оценки для структуры упрощенной модели. Линейные полиномиальные функции оценки включают oe, bj, arx и armax.

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

  • Чтобы оценить полиномиальную модель с помощью данного timeseries, используйте ar.

  • Использовать polyest для оценки полинома произвольной структуры. Если структура предполагаемой полиномиальной модели известна, то есть вы знаете, какие полиномы будут активны, то используйте соответствующую специальную функцию оценки. Для примеров, для модели ARX, используйте arx. Другие функции оценки полиномиальной модели включают, oe, armax, и bj.

  • Чтобы оценить передаточную функцию в непрерывном времени, используйте tfest. Вы также можете использовать oe, но только с данными частотного частотного диапазона в непрерывном времени.

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

Введенный в R2012a