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 = 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 имя аргумента и 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) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент.

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

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

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