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 (q), B (q), F (q), C (q) и D (q) является полиномиальными матрицами. u (t) является входом и nk входная задержка. y (t) является выход, и e (t) является сигналом воздействия. na , nb, nc, nd и nf порядки A (q), B (q), C (q), D (q) и F (q) полиномы, соответственно.

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 (q), B (q), F (q), C (q) и D (q). Например:

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

IODelay

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

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

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

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

InputDelay

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

Для системы с Nu входные параметры, набор InputDelay к Nu- 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 (s), U (s) и E (s) являются Преобразования Лапласа сигналов временной области y (t), u (t) и e (t), соответственно.

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

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

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

Method

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

InitialCondition

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

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

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

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

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

Fit

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

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

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

LossFcn

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

MSE

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

FPE

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

AIC

Необработанная мера по Критериям информации о Akaike (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

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

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]);

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

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 object. The axes object 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 выходными параметрами. Первый вход влияет только на первый выход. Точно так же второй вход влияет только на второй выход.

Задайте порядки модели и задержки. 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 objects. Axes object 1 with title From: u1 contains an object of type line. This object represents sys. Axes object 2 contains an object of type line. This object represents sys. Axes object 3 contains an object of type line. This object represents sys. Axes object 4 contains an object of type line. This object represents sys. Axes object 5 with title From: u2 contains an object of type line. This object represents sys. Axes object 6 contains an object of type line. This object represents sys. Axes object 7 contains an object of type line. This object represents sys. Axes object 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