полиоценка

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

Синтаксис

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 = 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, чтобы задать поведение оценки.

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

data

Данные об оценке.

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

Можно оценить только модели дискретного времени с помощью данных временного интервала. Для оценки непрерывно-разовых моделей с помощью данных временного интервала смотрите tfest.

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

  • Записанные данные о частотной характеристике (frd или 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 (s), U (s) и E (s) являются Преобразования Лапласа сигналов временного интервала y (t), u (t) и e (t), соответственно.

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

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

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

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

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

Для получения дополнительной информации об использовании Report см. Отчет Оценки.

Примеры

свернуть все

Оцените модель с избыточной параметризацией. Таким образом, модель со всеми полиномами (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);

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

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)

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

Советы

  • В большинстве ситуаций все полиномы идентифицированной полиномиальной модели не одновременно активны. Установите один или несколько порядков 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